3)导致提供者及其所有后代重新渲染
尽管这是默认行为,但在实践中通常会更改此行为以提高性能。纯组件,实现shouldComponentUpdate的组件或使用React.memo的组件将导致重新渲染在遍历整个树之前停止。
例如:假设存在一个处于某种状态的顶层组件,该组件呈现一个具有的中层组件
shouldComponentUpdate() { return false;},该组件具有一个呈现底层状态的组件。在初始安装时,所有这三个都将渲染。但是,如果顶级组件更新其状态,则仅顶级组件将重新呈现。中级组件由于其shouldComponentUpdate而将被跳过,因此甚至从不考虑底层组件。
现在,我们在顶级组件中添加上下文提供程序,并在底层组件中添加上下文使用者。在初始安装时,它们将再次全部渲染。如果顶级组件更新其状态,它将重新呈现。由于其shouldComponentUpdate,中级组件仍将跳过其渲染。但是,只要上下文值发生变化,即使上级组件被保释,底层组件也将重新呈现。这就是该Blur所引用的功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)