無心中發現react渲染執行兩次,開始覺得是代碼寫錯了,後來去網上查找發現原來並非一個bug。
React 在 開發環境下會刻意執行兩次渲染,以防止組件內有什麼 side effect 引發 bug,提早預防。
這裏官方github上有做出解釋:
react
從代碼中來看git
let a = 0 class App extends React.Component { render() { a = a + 1 console.log(`運行${a}次`) return ( <div></div> ) } }
控制檯顯示結果運行了兩次。
github