Dam*_*oux 9 reactjs immutable.js redux
我是ImmutableJS的新手.我的应用程序实现了大型Redux Store和多个反应组件.
如我错了请纠正我:
shouldComponentUpdate()必须实现.这个功能的最佳实现是什么?
我已经找到了它的几个实现,都使用了shallowEqual()并进行了一些修改:
is()功能被ImmutableJS给出的功能所取代.第一个平等也是不同的.有人知道我应该在我的案例中使用哪种实现方式?或者没有具体实施shouldComponentUpdate()?我在这一点上略有不知所措
非常感谢你的帮助!!
我知道Immutable的好处是保护Flux Store并避免在组件上不必要的vDom渲染变得不变的道具.
这与Immutable并不真正相关(如果你的意思是库).例如,你可以使用普通的对象和数组与终极版,但由于终极版要求你永远不会发生变异他们,你几乎在大多数情况下,同样的好处.因此,不可变的库可以提供一成不变的东西更新一个更好的API,但如果不发生变异平原对象或数组它不需要性能优化.
要使用ImmutableJS获得更好的渲染性能,必须实现shouldComponentUpdate().
同样,与ImmutableJS并不真正相关,但是,要从道具的不变性中受益,您需要实施shouldComponentUpdate().但是,如果您使用Redux,您可能已经使用connect()了React Redux软件包,该软件包shouldComponentUpdate()适用于大多数情况.因此,您不需要手动编写任何connect()ed组件.
有人知道我应该在我的案例中使用哪种实现方式?或者没有实现具体的shouldComponentUpdate()?我在这一点上略有不知所措
如果您没有性能问题,请不要使用它们.在大多数情况下,React本身是相当高效的,并且connect()在它之上将添加一个很好的默认实现shouldComponentUpdate().
对于未connect()编辑但仍经常更新的组件,我建议您使用react-addons-shallow-compare.它在PureRenderMixin内部使用,但由于mixins并未真正用于现代React API,因此单独的功能可以更方便.
如果您需要特殊支持Immutable.is,您确实可以使用类似的东西shallowEqualImmutable.它更好地理解不可变集合,因为它认为相同值的列表是相同的.此时,您最好针对您的应用分析不同的实现,因为具体情况可能因您的使用情况而异.
不要过早优化,在解决之前确保这是一个实际问题.
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |