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:{}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容