卡頌 從0實(shí)現(xiàn)React18
這里的異步任務(wù)就完成了自動(dòng)的批量更新,當(dāng)然在18版本要開(kāi)啟這個(gè)功能的話(huà),需要使用ReactDOM.createRoot去掛載我們的應(yīng)用,如果我們還是使用ReactDOM.render的話(huà),就不會(huì)啟用Automatic batching了。 Automatic batching看起來(lái)很香,但是如果在一些場(chǎng)景我不想用呢,官方也提供了解決辦法,請(qǐng)看例子:
import { flushSync } from 'react-dom'; // Note: react-dom, not reactfunction handleClick() {
?flushSync(() => {
? ?setCounter(c => c + 1);
?});
?// React has updated the DOM by now
?flushSync(() => {
? ?setFlag(f => !f);
?});
?// React has updated the DOM by now}復(fù)制代碼
標(biāo)簽: