假設我有一個CookingClass
組件,它可以像這樣初始化。更新道具是否應該重新渲染整個組件?
let teachers = makeTeachers(["Amber", "Jason", "Lily"])
let students = makeStudents(["Hopper"])
<CookingClass
teachers={teachers}
students={students}
/>
一位教師的退出:
let newTeachers = makeTeachers(["Amber", "Jason"])
<CookingClass
teachers={newTeachers}
/>
這將使整個組件重新渲染。我不確定React是否只計算差異並有效地重新渲染,或者我必須自己使用shouldComponentUpdate
來照顧它。
更真實的例子可能是實現一個Google地圖,其中有一百萬個標記,並且您想替換其中一個標記。
是的,你應該使用'shouldComponentUpdate',以儘量減少重新渲染,並使用'key's以保證回收利用。 – Kujira
看看使用react-redux。它爲你解決了這個問題http://redux.js.org/docs/basics/UsageWithReact.html –