大家都熟悉useEffect hook,有時候useLayoutEffect比較適合。
用過useInsertionEffect的人並不多,我們來探索一下。
hook 的 API 和 useEffect 非常相似,需要在 setup 函數、依賴陣列中加入程式碼,並且可以傳回一個清理函數。
React 文件給了這個描述。
useInsertionEffect 適用於 CSS-in-JS 函式庫作者。
它可用於其他目的,主要是在元件安裝時執行一些程式碼,例如將事件偵聽器新增至視窗。
React.useInsertionEffect(() => { initShiki().then((highlight) => { setHtml(highlight(content)); }); }, [content]);
useInsertionEffect(() => { const popCb = () => { const newVal = parse(filterUnknownParamsClient(defaultState)); state.current = newVal }; window.addEventListener(popstateEv, popCb); return () => { window.removeEventListener(popstateEv, popCb); }; }, []);
useInsertionEffect(() => { const cb = () => { _setState(stateMap.get(stateShape.current) || stateShape.current); }; const unsub = subscribers.add(stateShape.current, cb); return () => { unsub(); }; }, []);
以上是`useInsertionEffect` React hook 的用例的詳細內容。更多資訊請關注PHP中文網其他相關文章!