これは React の今後の useEffectEvent
フックを正確に埋めるものですか?潜在的な問題はありますか?
私がよくわからないのは、返された関数が他の効果に使用される前に参照が更新されることが保証されているかどうかです。コード内の他の場所でかなり難解な useInsertionEffect
を使用しない限り、これで問題ないと思いますが、確認したかったのです。
P粉1869047312024-01-07 10:10:29
React チームは useEffectEvent
の公式ポリフィルを提案していないと思います (少なくとも私はまだ見ていません)。
そうは言っても、元々は、useEvent の現在は廃止された RFC に対して、 で
useLayoutEffect
を使用できます。 イベントとエフェクトの分離 の初期バージョンで、Dan Abramov は次のような更新バージョンを示しました (ドキュメントには表示されなくなりました):
このポリフィルは useInsertionEffect
を使用します。この選択の理由は、 挿入エフェクトが (useLayoutEffect や
useEffect と比較して) 最初に実行される
であるためだと思います。したがって、他のエフェクトが実行される前に参照が更新されると想定するのが非常に安全です。
その後、useEvent
の RFC は棚上げされ 、ドキュメント に示されているように
useEffectEvent が開始されました。それにもかかわらず、公開された動作は同じであるため、同じポリフィルを再利用して useEffectEvent を実装できます。
useCallback(..., []) のおかげで)。これは必要ないかもしれませんが、(念のため) より簡単です。コンシューマーが、返された関数をエフェクトの依存関係に誤って追加しました)。
新しい React ドキュメントの useEvent ポリフィル を確認してください。