-
通过modal的模式管理一个领域的模型 相当于在全局维护一个state
-
modal中会包含5个基本属性的对象
-
namespace:全局的state的key 当你在modal组件外引用时 需要加上此名称
-
state:默认的state值,为任意类型
-
reducers:负责接收action 改变state的位置(this.setState)通过dispatch的形式来调用action
-
dispatching function 是一个用于触发 action 的函数,action 是改变 State 的唯一途径,但是它只描述了一个行为,而 dipatch 可以看作是触发这个行为的方式,而 Reducer 则是描述如何改变数据的
-
在 dva 中,connect Model 的组件通过 props 可以访问到 dispatch,可以调用 Model 中的 Reducer 或者 Effects
-
action:为一个对象,其中包含两个基本值type、payload
- type:用来指明具体的行为 通过type指明的行为来调用reducer或effects中的行为或者说方法
- payload:用来传递信息
-
// dispatch内传递的对象就是action对象 dispatch({ type: 'user/add', // 如果在 model 外调用,需要添加 namespace payload: {}, // 需要传递的信息 });
-
-
effects:设计思想来源于
redux-saga框架 接收各类数据并返回给reducers 用来做state的相关修改-
可能使用到的比较多的函数---put
-
put用来发送action 而且其中的type也是相当于指明调用的行为 一般为re ducesr中的方法 reducers中的方法接收了action之后 修改相关state
-
由于在 redux-saga 的世界里,所有的任务都通用 yield Effects 来完成 所以将会使用yield put的形式
-
const response = yield (fetchGetPermissions(payload)) 类似于这种 yield put({ type: 'currentPermission', payload: response, })
-
-
-
-
connect Model 具体的还待确定
- dispatch 方法从哪里来?被 connect 的 Component 会自动在 props 中拥有 dispatch 方法
-