问题描述:一个页面
setInterval(()=>this.setState({time: new Date()}), 1000)
<div>
<Count time={time} />
...others component
</div>
1秒钟更新一下时间,Count中显示更新的时间,由于父组件的state变化,导致子组件全部重新渲染,有什么办法,只让Count重新渲染,其他子组件不重新渲染呢?
问题描述:一个页面
setInterval(()=>this.setState({time: new Date()}), 1000)
<div>
<Count time={time} />
...others component
</div>
1秒钟更新一下时间,Count中显示更新的时间,由于父组件的state变化,导致子组件全部重新渲染,有什么办法,只让Count重新渲染,其他子组件不重新渲染呢?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
你这个场景下,如果其他组件没有依赖count,那一定不会重新渲染。
你说的重新渲染应该是指的组件代码重新执行吧?组件代码肯定会执行,但是不一定会引起页面元素重新渲染(是否需要重新渲染得看虚拟dom的diff结果,或者shouldUpdate生命周期)