オプティマイザー
Qwik の哲学は、コードの読み込みをできるだけ遅らせることです。そのため、Qwik はオプティマイザーを使用してコードを並べ替え、遅延読み込みを実現します。オプティマイザーは、rollup の一部として実行されるコードレベルの変換です。
オプティマイザーは Rust で記述されており(WASM でも利用可能)、瞬時のパフォーマンスを実現します。
オプティマイザーは `$` を検索し、`$` の後に続く式を抽出し、遅延読み込み可能でインポート可能なシンボルに変換する変換を適用します。
簡単な `Counter` の例から始めましょう。
export const Counter = component$(() => {
const count = useSignal(0);
return <button onClick$={() => count.value++}>{count.value}</button>;
});
上記のコードは、開発者がコンポーネントを記述するために記述する内容を表しています。以下は、オプティマイザーがコードに適用する変換で、コードを遅延読み込み可能にします。
const Counter = component(qrl('./chunk-a.js', 'Counter_onMount'));
chunk-a.js
export const Counter_onMount = () => {
const count = useSignal(0);
return <button onClick$={qrl('./chunk-b.js', 'Counter_onClick', [count])}>{count.value}</button>;
};
chunk-b.js
const Counter_onClick = () => {
const [count] = useLexicalScope();
return count.value++;
};
`$` の出現はすべて、新しい遅延読み込み可能なシンボルになります。
シリアライゼーション
シリアライゼーション を参照して、シリアライズ可能なものについて説明します。