浅谈mobx状态管理

1.回忆redux

redux:   action,store,reducer        Component

action的触发:一般通过手工去触发,或通过组件去派发

store对象:store对象是通过redux的createStore创建的,拿到store对象后,做dispatch,去派发一个action

action包含两个数据,一个是action的类型,一个是payload(载荷)

action一旦被派发,注册在reducer中的store会自动运行

所以在创建store的时候,要搭一个reducer

reducer就是一个纯函数,用来返回一个新的状态

reducer需要返回什么状态需要action去告诉他

最后store要把action透明的给reducer,reducer返回一个新的state

还需要subscribe做一个订阅,才知道这个状态更新了

2.回忆vuex

vuex:   action,mutation,state     Component

通过组件去派发action,还是通过dispatch

action有个类型,类型有两种写法,一种是写个type,一种是通过函数的形式写个参数,还有载荷

action中间要做一件事就是commit,只有commit后才能调用mutation的那些方法

commit的操作是需要人工完成的,可以通过你的组件直接commit,也可以在action里面进行异步操作完了以后去commit

commit被触发后就会调用mutation,mutation就会修改原有的state

vue的响应式设计,state修改后,会自动render组件(必须给每个组件注入store)

3.mobx

4.@action @oservable  称之为装饰器,装饰器是为了增强原有的类或方法的能力

5.安装        yarn add mobx

启动项目    yarn start

6.mobx细节

observable   可观察的

数组

对象

ES6的map

variable

7.弹射

命令   yarn eject

yarn  add   @babel/plugin-proposal-decorators  --dev

yarn  add   @babel/preset-env  --dev

yarn add babel-plugin-transform-class-properties  --dev

8.(@)computed     既可以当做装饰器,又可以当成方法使用

计算属性作为装饰器的话,必须在前面加一个get

9.autorun

10.when

11.reaction

12.yarn add mobx-react

原文地址:https://www.cnblogs.com/jsjx-xtfh/p/10049009.html