加入有如下**;
settimeout(()=>,1000)
這裡每隔1 秒 就重新整理一次,這個時候 a 元件會每次重複diff 演算法,看是否該重新渲染,然後走render 方法
這樣效率太低,我們的設想就是,只要 data 資料不變,我們就不會渲染,這樣會節省很大的成本
所以這就有了純元件的概念:一種是class 的方式(通過繼承實現)
一種是 函式的方式,我們通過 函式包裝的方式實現
purecomponent
定製了shouldcomponentupdate後的component
class comp extends react.purecomponent
react.memo
react 16.6.0 使用 react.memo 讓函式式的元件也有purecomponent的功能
const joke = react.memo(() => (
)
只要通過這個兩種方式包裝後就會實現 顯示元件的屬性值的淺比較,這個時候
我們需要注意點,注意點,注意點::
就是給純元件傳遞值的時候,一定要是 值傳遞!
data=
// 這種方式不行,傳遞的是引用,指標,不是值傳遞
應當如下方式傳遞:
這種方式相當於
這種寫法見到了就行了! react簡單元件
如下 constructor props this.state 獲取原先的陣列 可以直接寫this.state.todos 效果一樣 todos.unshift todo 新增陣列 this.setstate 更新陣列值 render class add extends react.componen...
React 元件更新優化
3.react.memo 4.usememo shouldcomponentupdate和react.purecomponent是類元件中的優化方式,而react.memo是函式元件中的優化方式。class componentdiffpure extends purecomponent change...
react純函式元件useState更新頁面不重新整理
const textlist,settextlist usestate 原陣列 settextlist 新陣列 當修改原陣列時,如果原陣列是個深層陣列 不只一層 使用settextlist修改時,不會觸發頁面重新整理 這個涉及到可變物件he不可變物件的知識,在vue和react中,如果更新可變物件時...