如果有錯誤,歡迎留言指教~ Q_Q
如果想要連續執行更新 state,你會發現看起來執行了三次,但最後卻只有執行一次!?
  const [date, setDate] = useState(0);
  const handleClick = () => {
    setDate(date + 10);
    setDate(date + 10);
    setDate(date + 10);
  };
  
  // data -> 10
當觸發 setState 時,並不會先馬上改變 state ,而是會把改變的 function 先放進 queue 裡,最後 React 才會統一處理 setState 去 re-render component。
這是 React 的 batching 的效能優化機制,讓 setState 呈現非同步的模樣,讓當下 state 並不會馬上被改變,只會在最後觸發 render
...
state 是當某個改變正在被應用時對 component state 的一個參考。它不應該直接被 mutate。
setState(updater, [callback])
setState((state, props) => {
  ...
});
Function 將接收先前的 state 作為第一個參數,並且將更新的 props 作為第二個參數:
    
  const [date, setDate] = useState(0);
  const handleClick = () => {
    setDate((preDate) => preDate + 10);
    setDate((preDate) => preDate + 10);
    setDate((preDate) => preDate + 10);
  };
  
  // data -> 30
然後,下篇待續囉~
我其實沒寫完鴨 XDDD