redux 和 mobx
2023-06-16 10:06:46
redux
- 初始阶段,调用一次 reducer,传入的 state 作为初始 state,并创建好 store
- 更新阶段,调用 dispatch 把一个 action 发送到 store 中。 store 用之前的 state 和 action 中的数据再一次调用 reducer,并返回新的 state store 再去通知所有订阅过的 UI,UI 组件检查它们需要的 state 部分是否被更新 发现数据被更新的每个 UI 组件强制使用新数据重新渲染,紧接着更新页面
- redux 三大原则
- 单项数据流
- state 只读,在 Redux 中不能通过直接改变 state 来让状态发生变化,如果想要改变 state 就必须触发一次 action ,通过 action 执行每个 reducer
- 函数式编程 纯函数 无副作用
- 中间件思想
- redux 应用了前端领域为数不多的中间件 compose,那么 redux 的中间件是用来做什么的? 答案只有一个: 那就是强化 dispatch,Redux 提供了中间件机制,使用者可以根据需要来强化 dispatch 函数,传统的 dispatch 是不支持异步的,但是可以针对 Redux 做强化,于是有了 redux-thunk,redux-actions 等中间件
mobx
- 触发 actions,更改 state 的值,然后 Mobx 更改 state 的副作用就是更新 UI 看似比 Redux 的要简单很多,其实是 MobX 在背后默默的帮我们实现了
- mutable 可以直接更改状态,继而更改视图数据
- 面向对象编程 一个 store 就是一个对象