Dva: model是否应该被多个view复用

Created on 25 Sep 2017  ·  7Comments  ·  Source: dvajs/dva

model是否应该是按照功能去划分的,相当于一个数据处理模板。这样做的话遇到了复用的model无法重新加载的问题,目前的做法通过监听history刷新model。
想请教下这个思路是否正确?或者说有什么更好的思路?

Most helpful comment

model在业务中会被抽象成 "用来处理列表的model","用来处理详情的model",所以可以被多个视图共用

推荐这么用,以业务维度去设计 model,而不是以以页面/视图维度。

All 7 comments

effects的方法也可以是组建的生命周期函数触发

effects的方法也可以是组建的生命周期函数触发 但是Dva不是没有生命周期这个东西么# #936
或者说用Dva去搭建前端,不应该使用复用model.js这种做法么?

我对model的理解是用来代表一种资源,一个视图可能用到多个model,当然也可以一个model用于多个视图。

@sorrycc 唔,我的意思不是指model的继承。model在业务中会被抽象成 "用来处理列表的model","用来处理详情的model",所以可以被多个视图共用

model在业务中会被抽象成 "用来处理列表的model","用来处理详情的model",所以可以被多个视图共用

推荐这么用,以业务维度去设计 model,而不是以以页面/视图维度。

@sorrycc 按业务设计的model都是可被继承的内部类,我还是按页面/containers的维度来开发路由的,觉得这样开发很顺呀,就像css和组件一起放一样,我会建立一个$后缀的model,专门放model
image
可以进一步划分,但是每一个container都包括这3部分,求建议!
ps:虽然state不宜设计的过深,但是我在model的粒度下又增加了一层domain,也是照应上面的文件划分方式,我使用这个工具https://github.com/yangbin1994/dva-model-combo

Was this page helpful?
0 / 5 - 0 ratings