dva中model的复用

dva是蚂蚁金服开源的一套基于react,redux,redux-saga,react-router技术栈的框架。也可以说是一种开发的解决方案。
本文是面对一些对对dva已经很了解的朋友。
我们都知道 dva是可以动态加载model的。用require.ensure.从这个角度看,model是可以由不同生命周期的,有些可以与视图伴随,有些可以贯穿整个生命周期。
从业务场景来看,有不少场景可以做全局model的。比如说,我们在路由之间前进后退,model可以用于在路由间共享数据。比较典型的,像列表页和详情页的互相跳转,就可以用一份model去共享他们的数据。
注意,如果当前应用中加载了不止一个model,在其中一个的effect里面做select操作。是可以获取另外一个effect的state的:

*foo(action,{select}){
  const { a,b} = yield select();
}

对于有些页面只是展示不同,页面逻辑都差不多,接口有差异的话。我们可以进行model的复用。把有差异的地方写成参数传入进去就行了。

export default {
  namespace: 'reusable',
  state: {},
  reducers: {},
  effects: {},
  subscriptions:{}
}

你可能感兴趣的:(dva中model的复用)