検索

ホームページ  >  に質問  >  本文

これは反応の useEffectEvent の正確なポリフィルですか?

これは React の今後の useEffectEvent フックを正確に埋めるものですか?潜在的な問題はありますか?

私がよくわからないのは、返された関数が他の効果に使用される前に参照が更新されることが保証されているかどうかです。コード内の他の場所でかなり難解な useInsertionEffect を使用しない限り、これで問題ないと思いますが、確認したかったのです。

リーリー


P粉251903163P粉251903163377日前478

全員に返信(1)返信します

  • P粉186904731

    P粉1869047312024-01-07 10:10:29

    React チームは useEffectEvent の公式ポリフィルを提案していないと思います (少なくとも私はまだ見ていません)。

    そうは言っても、元々は、useEvent の現在は廃止された RFC に対して、useLayoutEffect を使用できます。 イベントとエフェクトの分離 の初期バージョンで、Dan Abramov は次のような更新バージョンを示しました (ドキュメントには表示されなくなりました):

    リーリー

    このポリフィルは useInsertionEffect を使用します。この選択の理由は、 挿入エフェクトが (useLayoutEffectuseEffect と比較して) 最初に実行される であるためだと思います。したがって、他のエフェクトが実行される前に参照が更新されると想定するのが非常に安全です。

    その後、useEvent の RFC は棚上げされ 、ドキュメント に示されているように useEffectEvent が開始されました。それにもかかわらず、公開された動作は同じであるため、同じポリフィルを再利用して useEffectEvent を実装できます。

    このポリフィルを使用すると、フックは安定した関数を返すことに注意してください (

    useCallback(..., []) のおかげで)。これは必要ないかもしれませんが、(念のため) より簡単です。コンシューマーが、返された関数をエフェクトの依存関係に誤って追加しました)。

    ポリフィルについて詳しく知りたいのですが、これについてはすでにブログに書きました。

    新しい React ドキュメントの useEvent ポリフィル を確認してください。

    返事
    0
  • キャンセル返事