使用化简器钩子时的响应式方法



我已经开始玩反应钩子了。我正在研究各种useReducer的例子.我看到为了访问组件中的redux storedispatch事件,我们使用[state, dispatch] = useReducer(initState).我想知道,如何实现React的反应性方法,其中我们用来做mapStateToProps然后只有我们的组件用来反应的状态的选择性属性。如果用一个例子来回答这个问题,我将不胜感激。 根据我的理解,我们编写的所有组件[state, dispatch] = useReducer(initState),所有这些组件都会重新渲染,即使我们不想。

首先,useReducer与 Redux 无关。它只是useState的替代方法,在您的州具有复杂转换流的情况下会有所帮助。

React-Redux 提供了useSelectoruseStoreuseDispatch。一旦你使用useSelector它已经在后台进行了优化:

但是,当将操作调度到 Redux 存储时,useSelector(( 仅在选择器结果看起来与上一个结果不同时才强制重新渲染。从 v7.1.0-alpha.5 开始,默认比较是严格的 === 引用比较。这与 connect(( 不同,connect(( 对 mapState 调用的结果使用浅相等性检查来确定是否需要重新渲染。这对你应该如何使用 useSelector(( 有几个含义。

这就是为什么我们应该不惜一切代价避免useStore的主要原因(任何调度都会触发它的重新渲染(。

相关内容

  • 没有找到相关文章

最新更新