オプションフック
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` フックが呼び出されたときに呼び出されます。