dva 需要使用 immutable 吗
来源:7-9 使用 Immutable.js 来管理store中的数据
诺巴蒂
2019-12-24
-
如果用 dva 的脚手架开发,有必要再使用 immutable 提升性能吗,但是怎么使用 redux-immutable。
-
immutable 的作用是是什么,我理解就是:1、函数式编程;2、不会被误改;3、多层对象改变子对象一定返回新对象,不会误操作导致子组件不渲染;4、拷贝效率高;
但对于非扁平化 redux 减少渲染次数提高性能我一直没太理解
1、普通情况,immutable"深拷贝" 和 普通浅拷贝都会导致对象地址改变,父子组件重新渲染
2、在子组件使用 PureCompoent 的时候,如果引入的 “redux 子对象(非扁平)” 不改变 都不会引起重新渲染
所以用不用 immutable 没啥区别呀,这种情况用 PureCompoent 就好了 -
为啥dva 不需要 acitonCreator
我一直觉得 acitonCreator 就是为了语义化一些,constant 不好读,如果是 redux-thunk 还可以封装一下请求,还有其他作用吗。
而 constant 是为了防止 reducer 和 派发 action 时候的 type 书写不一致,报错不明显,dva 用的是 namespace/方法名,不需要constant,所以也不需要 acitonCreator,是这样理解吗
- 这里我觉得因为 dva 没有 constant,所以使用的时候也容易导致写错 namespace/方法名 而不报错呀
1回答
-
Dell
2019-12-28
又必要,你可以直接使用 imutalble 数据类型,没必要非要用 redux-immutable
第三点不就是间接降低了渲染次数吗?
你可以使用 actionCreator 把逻辑拆分的更精细,但小项目过度拆分,是不是过度设计
dva是个封装,和redux使用肯定是有区别的
182020-01-08
相似问题