Ale*_*195 3 performance reactjs redux react-redux reselect
我在React Redux应用程序中使用重新选择时遇到有关性能的问题。
Reselect库用作记忆层,用于缓存为提高性能而进行的计算,但是如果您不需要执行任何计算/逻辑怎么办?
将选择器用于单个数据是否更高效?还是应该只使用标准的connect方法?
正如toomuchdesign所说。如果确实没有计算/逻辑,并且选择器仅返回对对象或状态树中某个位置存在的值的引用。则无需记忆选择器,因为将由进行浅层相等性检查connect。
因此,在决定使用普通选择器还是使用createSelector一个很好的问题时,要问的是:选择器返回的此对象,数组或函数的引用每次执行时都会不同吗?
人为的例子:
const getSelectedItems = state => state.items.filter(i => i.selected)
Run Code Online (Sandbox Code Playgroud)
每次调用选择器时,将导致一个不同的数组。
鉴于:
const getFullName = createSelector(
state => state.items,
items => items.filter(i => i.selected)
)
Run Code Online (Sandbox Code Playgroud)
如果items数组更改,则只会返回一个新数组。
因此,虽然很可能会将选择器计算的复杂性视为决策的基础,但引用的缓存是实现的性能优势的关键因素,reselect因为它将减少不必要的渲染。因此,选择器本身的记忆可以带来性能上的好处。不要忘记缓存引用本身可以带来的性能优势。
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |