react 簡單優化設計 純元件的優化

2021-10-07 16:42:42 字數 756 閱讀 2094

加入有如下**;

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中,如果更新可變物件時...