一開始沒想通的東西,所以記一下。
簡述
每當 Component 裡的 state 改變時,React 就會重新把這個 Component render 一遍(render 可以想成是畫面全部擦掉重畫,但實際上只有把改變的地方重畫而已)
不過要強調一下 render 的部分是:
- 以 component 為單位。
- 以 component 為單位。
- 以 component 為單位。
例如說 <App />
底下有 <Counter />
,這不代表當 <Counter />
的 state 改變時 <App />
也會重新 render。會重新 render 的只有 <Counter />
,因為那是它的 state,不是 <App />
的。
不過如果是 <App />
被重新 render 的話,那 <Counter />
也一定會被重新 render,因為它在 <App/>
底下,所以理所當然會被重新 render。
這個兩個差異要多想一下,可能有點抽象,不過還是要分清楚它們的差別。