<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### redux三大原則 1. 單一數據流 整個應用state都被儲存在一個store里面 構成一個Object tree 2. State是只讀的 唯一改變state的方法就是觸發action, action是一個用于描述已發生事件的普通對象 3. 使用純函數來執行修改 為了描述action如何改變state tree, 你需要編寫reducers 把reducer設計成純函數,可以實現時間旅行,記錄/回放或者熱加載 首先你得看看文檔怎么說reducer的作用的,‘**接收舊的 state 和 action,返回新的 state**’,您可得瞧好咯,他就是起一個對數據做簡單處理后返回state的作用,為什么只起這個作用,這時用設計這個詞回答這個問題才恰當,**因為redux把reducer設計成只負責這個作用**。很白癡的問答對吧,所以題目的答案也就簡單了,reducer的職責不允許有副作用,副作用簡單來說就是不確定性,如果reducer有副作用,那么返回的state就不確定,**舉個例子**,你的reducer就做了一個value = value + 1這個邏輯,然后返回state為{value},ok,這個過程太jr純了,然后你可能覺得要加個請求來取得value后再加1,那么你的邏輯就是value = getValue() + 1, getValue是個請求函數,返回一個值,這種情況,退一萬步講,如果你的網絡請求這次出錯,那么getValue就返回的不是一個數值,value就不確定了,所以return的state你也不確定了,前端UI拿到的數據也不確定了,所以就是這個環節引入了副作用,redux設計好的規范就被你破壞了,redux就沒卵用了。 最后我回答下如何解決這個副作用,實際上也很白癡的問題,這里的請求可以放在reducer之前,你先請求,該做出錯處理的就做出錯處理,等拿到實際數據后在發送action來調用reducer。這樣通過前移副作用的方式,使reducer變得純潔。 ## 摘自 [ 第 62 題:redux 為什么要把 reducer 設計成純函數](https://muyiy.cn/question/frame/62.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看