通过mobx抽象出一个viewModel层,把react变成存粹的view层。
父子组件不再通过props通信,由于子组件的viewModel在父组件中实例话,父组件天然拥有这个实例,父组件可以直接操作这个viewModel和获取viewModel状态。
子组件要获取上层状态的时候,也可以拿到父组件的实例。
纯粹的数据如用户信息,路由信息等等可以放到store下面,store不关心UI,只关系数据。
这么做主要的一个原因是,很多时候,子组件很多交互和父组件无关。但是又要获取子组件的部分状态来展示。导致得把数据和请求都放到父组件里面处理,然后再把状态用props流下去,而不能单纯作为组件容器,导致顶层组件各位膨胀。仓库地址
基于mobx,把react变成存粹的view层,希望大家讨论下这种方式的合理性
nodew
#1
1 Like
1、父组件这样的确会导致组件膨胀,我们可以抽离子组件,使用前端数据层集中化管理,(flux,redux,mobx)数据层的store 模块公用性能,没必要都从顶层传入。
nodew
#3
现在一个点就是去无关数据的集中化,在现有的很多实践里面,把loading状态什么的都放到了global的store里面,实际上只有组件自己才关心这个状态。如果组件依赖全局状态比如redux store,实际上这个组件是不可插拔也不可被复用的。
同时,代码分割也变得困难,我一个页面只用一部分状态,但是不得不引入一个全局store的,因为很多情况下store是不可分割的。 @ludan1107743896