ヘルプ
サポート

オプションフック

Preact のレンダリングを変更できるプラグイン用のコールバック。

Preact は、レンダリングプロセスの各段階を観察または変更するために使用できる多くの異なるコールバックをサポートしており、一般的に「オプションフック」(フック と混同しないでください) と呼ばれています。これらは、Preact 自体の機能セットを拡張したり、特殊なテストツールを作成するために頻繁に使用されます。`preact/hooks`、`preact/compat`、およびデベロッパーツール拡張機能などのすべてのアドオンは、これらのコールバックに基づいています。

この API は、主に Preact を拡張したいツールまたはライブラリの作成者を対象としています。



バージョン管理とサポート

オプションフックは Preact に同梱されており、セマンティック バージョン管理されています。ただし、同じ廃止ポリシーは適用されません。つまり、メジャーバージョンでは、リリース前の長期的な告知期間なしに API を変更できます。これは、`VNode` オブジェクトなど、オプションフックを通じて公開される内部 API の構造にも当てはまります。

オプションフックの設定

エクスポートされた `options` オブジェクトを変更することで、Preact でオプションフックを設定できます。

フックを定義する際には、以前に定義された同名のフックがあれば必ず呼び出してください。これを行わないと、呼び出しチェーンが中断し、以前にインストールされたフックに依存するコードが中断し、`preact/hooks` やデベロッパーツールなどのアドオンが機能しなくなります。特別な理由がない限り、元のフックにも同じ引数を渡してください。

import { options } from 'preact';

// Store previous hook
const oldHook = options.vnode;

// Set our own options hook
options.vnode = vnode => {
  console.log("Hey I'm a vnode", vnode);

  // Call previously defined hook if there was any
  if (oldHook) {
    oldHook(vnode);
  }
}

`options.event` を除く現在使用可能なフックには戻り値がないため、元のフックからの戻り値を処理する必要はありません。

使用可能なオプションフック

options.vnode

シグネチャ: (vnode: VNode) => void

最も一般的なオプションフックである `vnode` は、VNode オブジェクトが作成されるたびに呼び出されます。VNode は、Preact の仮想 DOM 要素の表現であり、一般的に「JSX 要素」と考えられています。

options.unmount

シグネチャ: (vnode: VNode) => void

vnode がアンマウントされる直前、その DOM 表現がまだアタッチされているときに呼び出されます。

options.diffed

シグネチャ: (vnode: VNode) => void

vnode がレンダリングされた直後、その DOM 表現が構築された後、または正しい状態に変換された後に呼び出されます。

options.event

シグネチャ: (event: Event) => any

DOM イベントが関連付けられた仮想 DOM リスナーによって処理される直前に呼び出されます。`options.event` が設定されている場合、イベントリスナーの引数であるイベントは、`options.event` の戻り値で置き換えられます。

options.requestAnimationFrame

シグネチャ: (callback: () => void) => void

preact/hooks の効果と効果ベースの機能のスケジューリングを制御します。

options.debounceRendering

シグネチャ: (callback: () => void) => void

グローバルコンポーネントレンダリングキューの更新処理のバッチ処理に使用されるタイミング「延期」関数です。

デフォルトでは、Preact はゼロ期間の `setTimeout` を使用します。

options.useDebugValue

シグネチャ: (value: string | number) => void

preact/hooks で `useDebugValue` フックが呼び出されたときに呼び出されます。