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

React のカスタムフック (のような) マクロ?

私は最近になって、Lisp コンテキストにおけるマクロが何であるかを理解し始めました。私の理解では、基本的にコードは 2 つのパスで実行されます。最初のパスでは、インタープリタはマクロの呼び出しを識別し、マクロの呼び出しをその戻り値に置き換えます。次に、コードが通常どおり実行されます。

これは、React のカスタム フックで何が起こるかのように見えます。たとえば、useOnlineStatus フックがある場合:

リーリー

これはマクロのようなものです。 useOnlineStatus フックを次のように使用する場合:

リーリー

これはマクロの呼び出しに似ています。したがって、次のような場合:

リーリー

最初のパスの後、次のように変換されます:

リーリー

その後、2 回目のパスでは正常に実行されます。これはカスタム フックで何が起こるかの正確なモデルですか?

P粉393030917P粉393030917224日前429

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

  • P粉647504283

    P粉6475042832024-04-03 09:28:01

    目を細めると少し似ていますが、いくつかの点があります:

    1. ブラウザは JavaScript を解析して実行するために複数のパスを実行しますが、フックの呼び出しはこの例ではありません。したがって、コンポーネントの実行には、1 行ずつ実行し、命令が見つかったときに関数にステップインする 1 つのパスだけが必要です。

    2. 同じメンタル モデルを すべての 関数呼び出しに適用できます。電話をかけるとき:

    リーリー

    これは、Math.max 内のコードを解凍し、それを main 関数に組み込むことと考えることができます。しかし、実際はそうではありません。

    返事
    0
  • キャンセル返事