看完官方的介绍反应文档 https://reactjs.org/docs,我遇到过this https://reactjs.org/docs/react-api.html#reactpurecomponent关于纯组件:
此外,React.PureComponent 的 shouldComponentUpdate() 会跳过 prop
整个组件子树的更新。确保所有的孩子
成分也是“纯粹的”。
为什么跳过整个子树的 props 更新意味着避免非纯组件? PureComponent 的组件子树中的非纯组件会产生什么后果(无论是一般情况还是在它未设计/不应该响应 props 更改的情况下)。
同一组输入 props 的纯组件将给出完全相同的结果,不仅对于它本身,而且对于整个 DOM 树。当你声明一个PureComponent
,你不仅需要考虑道具state
, 但是也context
. PureComponents
阻止任何上下文更改。考虑一个例子
<MyApp>
<Router> // react-router.
<App> // A PureComponent
<Switch> // react-router Switch
<Route ....>
</Switch>
</App>
</Router>
</MyApp>
React-router 的 Router 会将当前位置存储在 context 的 router props 中。 React-router 的 Switch 会读回它并选择一条 Route。但是自从App
是一种非常纯净的成分,并且will not反应context
更改路由器,因为它not using
重视并应该忽略它们。因此,当您拥有 PureComponent 时,您不仅应该考虑该组件,还应该考虑其嵌套的子组件。所以本质上你也会让你所有的孩子保持纯洁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)