React,如何通过重新选择停止重新呈现应用程序?
React, how to stop re-render of the application with reselect?
代码如下:codepen。
问题是,当我添加一个新的待办事项或将待办事项状态更改为已完成时,其他待办事项也会重新呈现吗?
有什么方法可以阻止它吗?
如果您使用功能组件,则使用 React.memo,如果使用基于 class 的组件,则使用 React.PureComponent
React.memo: https://scotch.io/tutorials/react-166-reactmemo-for-functional-components-rendering-control
React.PureComponent: https://ozmoroz.com/2018/09/what-is-purecomponent/
这些背后的想法是检查组件的道具,只有在道具发生变化时才重新渲染。这些组件在内部使用生命周期方法 shouldComponentUpdate 并根据 prop 的变化,决定是否重新渲染组件。
不过有一个问题,React 仅对具有嵌套属性的对象和具有嵌套对象的数组执行浅层检查,因此可能会或可能不会发生重新渲染。
代码如下:codepen。 问题是,当我添加一个新的待办事项或将待办事项状态更改为已完成时,其他待办事项也会重新呈现吗?
有什么方法可以阻止它吗?
如果您使用功能组件,则使用 React.memo,如果使用基于 class 的组件,则使用 React.PureComponent
React.memo: https://scotch.io/tutorials/react-166-reactmemo-for-functional-components-rendering-control
React.PureComponent: https://ozmoroz.com/2018/09/what-is-purecomponent/
这些背后的想法是检查组件的道具,只有在道具发生变化时才重新渲染。这些组件在内部使用生命周期方法 shouldComponentUpdate 并根据 prop 的变化,决定是否重新渲染组件。
不过有一个问题,React 仅对具有嵌套属性的对象和具有嵌套对象的数组执行浅层检查,因此可能会或可能不会发生重新渲染。