You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
该函数执行返回结果是一个记忆函数,结合 redux 使用时,一般调用生成的 selector 函数的参数是 store。若 store 发生变化,会根据 dependency 值 来重新计算传入 createSelector 的 transform 函数返回值;若 store 不发生变化,直接返回上一个缓存的结果值。
相关工具 api
默认比较函数
functiondefaultEqualityCheck(a,b){returna===b}
默认记忆函数
exportfunctiondefaultMemoize(func,equalityCheck=defaultEqualityCheck){letlastArgs=nullletlastResult=null// we reference arguments instead of spreading them for performance reasonsreturnfunction(){if(!areArgumentsShallowlyEqual(equalityCheck,lastArgs,arguments)){// apply arguments instead of spreading for performance.lastResult=func.apply(null,arguments)}lastArgs=argumentsreturnlastResult}}
reselect 源码解读
源代码
源码比较短,加注释才100多行。
核心 api
createSelector
该函数执行返回结果是一个记忆函数,结合 redux 使用时,一般调用生成的 selector 函数的参数是 store。若 store 发生变化,会根据 dependency 值 来重新计算传入 createSelector 的 transform 函数返回值;若 store 不发生变化,直接返回上一个缓存的结果值。
相关工具 api
默认比较函数
默认记忆函数
可定制比较函数和记忆函数,参考
codesandbox demo
注意事项
The text was updated successfully, but these errors were encountered: