ech*_*ech 10 reactjs react-redux
在 React 文档中,它说
\n\n\n默认情况下,当您的组件\xe2\x80\x99s状态或道具发生变化时,您的组件将重新渲染。
\n
我理解状态变化,但我不确定道具何时变化。据我所知,道具总是从父组件传递到子组件。当父组件重新渲染时(例如,由于状态更改),所有子组件也会重新渲染(忽略 shouldComponentUpdate)。所以在我看来,如果父组件重新渲染,所有子组件都会重新渲染,无论我是否向它们传递新的道具。如果我确实将新的道具传递给子组件,则子组件重新渲染的事实只是因为父组件正在重新渲染,而不是因为我传递了新的道具。
\n是否有这样的场景:父组件向子组件传递新的 props,导致子组件重新渲染,但又不是单纯由父组件重新渲染引起的?
是否有可能看到一个示例,其中组件将重新渲染,因为它收到新的道具,而不是因为父级正在重新渲染(或其自身的状态更改)?
\n抱歉,如果这是一个基本问题,我是 React 新手。
\n编辑:我看到 Redux 可以通过传递新的 props 来导致组件重新渲染,我很好奇 Redux 在幕后做了什么来实现这一点。
\n回答你最后提出的问题:
如果孩子是 aPureComponent或包裹在其中,则只有React.memo在 props 发生变化时才会重新渲染。如果父级重新渲染,则组件将比较它收到的道具,如果它们与之前传递的道具相同,则不会重新渲染。
如果子级不是a或PureComponent包裹在 中React.memo,那么它会在其父级重新渲染时重新渲染。
| 归档时间: |
|
| 查看次数: |
7798 次 |
| 最近记录: |