<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## react的生命周期分為三個階段,分別是mount, update, unmount ### 1. 裝載階段 - 在老的版本里面,會有 `getDefaultProps` 和 `getInitialState` 兩個方法 - 在新的版本里面,我們直接在 `constructor` 里面去初始化 `state`, 用靜態方法 `defaultProps` 初始化默認的 `props` - 接下來就會走到 `componentWillMount`, - 這是唯一一個可以直接修改 `state` 的地方,一般也不會常用這個東西,因為在react17以后會使用異步渲染,所以這個生命周期即將被廢棄掉,使用異步渲染后 `componentWillMount` 生命周期有可能不止執行多次,這是官網上說的。 - 一般來說很多人可能會想要在 `componenentWillMount` 里面做數據請求,以為這樣第一次 `render` 的數據就是最新的,但這樣的想法是錯的,因為ajax請求本身就是異步的。但實際上我們應該在 `componenentDidMount` 里面做數據請求,因為 `componenentWillMount` 和 `componenentDidMount` 之間的時間間隔很短,幾乎沒有 - `componentWillMount` 執行完了之后會執行 `render`, 在這里會合成虛擬 `dom` - 最后是 `componenentDidMount`, 這個時候才會把真實的 `dom` 節點掛載到瀏覽器里面,要使用真實的 `dom` 節點的話應該在 `componenentDidMount` 節點中做 ### 2. 更新階段(第二階段更新階段,更新階段分為幾種方式) - 第一種是 `falseUpdate`, 這個一般來說不建議使用。然后說說另外兩種方式 - 一個是 `setState` 之后,如果 `state` 有改變的話會走一個 `shouldStateUpdate` 的生命周期;另一個是當 `props` 有改變的話,會先走一個 `WillReceiveProps` 的生命周期,再去走 `shouldComponentUpdate`, `shouldComponentUpdate` 這個生命周期會 `return` 一個布爾值, 如返回 `true`, 就會繼續下面的生命周期,如果返回 false 就停留在上次的狀態。 - 說一下 `return true` 的情況,在這之后會執行 `componenentWillUpdate` 階段,然后再執行 `render` 和 `componenentDidUpdate` - 前面說到 `props` 發生改變之后 `WillReceiveProps` 會去執行,里面可以根據上一次的 props 來重新更改 `state`, 這個方法也即將被廢棄,于是我們可以使用一個靜態方法 `static getDerivedStateFromProps` 來替代,由于這是一個靜態方法,里面沒有 `this`, 直接 `return` 一個 `object`, 它的參數就是 `props` - 這就是更新階段。然后會進入到銷毀階段 ### 3. 銷毀階段 - 在銷毀階段會進入到一個 componenentWillUnmount 的生命周期,在這里可以進行一些清除定時器的操作
                  <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>

                              哎呀哎呀视频在线观看