重新渲染

一个组件在显示到屏幕上之前,需要经过 React 的渲染,这在之前的章节中已经多次提到了。React 将一个组件显示到屏幕上主要会经过三个步骤:触发渲染、渲染组件、将渲染后的组件提交到 DOM。

一旦组件完成了初次渲染,接下来的渲染就全部都是重新渲染的范畴了。那么 React 在何时会重新渲染组件,我们又可以如何利用重新渲染的机制来增加一些手动控制呢?

首先要明确的一点,React 只在必要的时候才会重新渲染组件,换句话说只在两次渲染之间组件必须确实发生了一些变化。而能代表这些变化的就是props和 State。

props和 State 组成了组件中的一张快照,代表了组件当前的状态。所以最浅显的一个操作:调用 State 的set函数就可以触发组件的重新渲染。在徐建正在被 React 渲染的时候,组件的props、事件处理函数、局部变量等都是根据组件当前的 State 计算出来的。所以组件会首先返回一个 JSX 快照,然后由 React 更新渲染以匹配返回的这个 JSX 快照。

在 React 处理过程中,State 实际上是位于函数组件之外的,因为我们所定义的组件实际上是 View,这个 View 加上 React 管理的 State,才是最终屏幕上展示出来的结果。

所以要手动完成组件重新渲染控制的核心,还是利用useState来定义能够被 React 管理的 State,然后利用 State 提供的set函数来触发 State 更新,使组件进入重新渲染。