javascript - immutable配合react提升性能?
问题描述
直接PureComponent那样浅比较不就完了吗;我觉得极少存在state引用改变而实际的值不发生改变
问题解答
回答1:我觉得immutable的好处是不可变,不会出现在其它地方被意外更改值的情况。还有可以快速比较,不需要一层一层的检查。
回答2:我觉得immutable的好处确实有,不可变、两对象比较都能在一定程度上提高性能。但是这种比较适合需要复杂数据结构同时频繁数据操作。如果对于一般的场景,只是增加了复杂度、文件大小。比如获取对象属性const obj = {a: 1, b: 2, c: 3}
普通方式:
const {a, b, c} = obj;
immutable:
const a = obj.get(’a’);const b = obj.get(’b’);const c = obj.get(’c’);
而且如果是复杂场景,我们会使用redux,因为redux本身数据处理就是不可变,所以immutable也不适用。
回答3:严格说起来immutable转换数据还会带来性能损耗。API很方便的可以对于非常深层数据的对比跟修改操作
reducer.js
[actions.UPDATE_PROJECT_LIST_AFTER_DELETE]: (state, { data }) => { let index = data.index return state.updateIn([’dataList’,index,’status’], () => ’Deleted’)}
相关文章:
1. 点字符“” 在MVC Web API 2中进行请求,例如api / people / STAFF.452872. 求大神指点js修改margintop导致无限下滑的问题3. javascript - node如何关闭主进程后 打开另一进程?4. php mail无法发送邮件5. mysql新建字段时 timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 报错6. web服务器 - ubuntu下布置apache加wsgi加python7. Mysql Begin End 语句报错8. mysql - sysbench cpu测试的结果看不懂,求解9. python3的各种库的官方文档中文版在哪儿可以找到10. python2.7为什么点击了"开始"按钮后,tkinter上的按钮,图中红色部分,再也点不动了?

网公网安备