1. 程式人生 > 其它 >React setState詳解和React效能優化

React setState詳解和React效能優化

技術標籤:React學習reactjavascripthtmlreactjs

為什麼要使用setState修改資料

  • 原因就是希望通過修改了state之後,能夠使得React根據最新的state來重新渲染介面

setState非同步更新

  • setState修改值之後不能立即訪問,值的更新是非同步的;
  • 如果每次呼叫 setState都進行一次更新,那麼意味著render函式會被頻繁呼叫,介面重新渲染,這樣效率是很低的;
  • 最好的辦法應該是獲取到多個更新,之後進行批量更新
  • 如果同步更新了state,但是還沒有執行render函式,那麼state和props不能保持同步;
  • state和props不能保持一致性,會在開發中產生很多的問題;

setState之後如何立即獲取到值呢?

兩種方法:

  • 利用setState的回撥函式:
//方式一:獲取非同步更新後的資料
        //setState(要更新的state物件,回撥函式)
        this.setState({
            message: "2021的征途是星辰大海"
        },() => {
            console.log(this.state.message);
        })
  • 利用生命週期函式componetDidUpdate
componentDidUpdate() {
        console.
log("componentDidUpdate",this.state.message) }

React更新機制

在這裡插入圖片描述