1- class组件 使用不方便 使用成本高 hooks 直接就可以实现类似class组件的功能 (定义状态 设置状态 等)
2- 可以实现组件的复用
为什么要使用redux ? ---------------------->数据状态管理 ------> 更加方便的获取数据 修改数据
react框架适用于大型开发项目 组件和数据较多,且组件之间需要通信 会导致 数据 难以维护
数据是放在state中维护还是redux中维护?
多个组件都需要用到的数据 跨层级较多的 数据很分散 用redux来管理数据比较好。
redux-saga
redux-sage是什么
- redux的中间件, 可以控制异步请求流程,包括三种状态:开始/暂停/取消
redux-saga实现方案
- 基于es6 的迭代器、生成器
redux-saga执行流程
- 用户点击按钮->请求数据->中间件开启异步调用
目的
- 异步获取数据和UI解耦
- 数据相关的业务逻辑从action.js中和组件解耦
redux-saga是一个redux中间件,主要用来处理程序副作用,比如异步请求。它基于generator,使用同步代码的方式来控制复杂的异步流程,并且很方便测试。
和redux-thunk的区别在于,由于使用了generator,可以用同步的写法完成异步任务,而且方便测试。
参考 https://github.com/frontend9/fe9-library/issues/26