オプティマイザー

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++;
};

`$` の出現はすべて、新しい遅延読み込み可能なシンボルになります。

シリアライゼーション

シリアライゼーション を参照して、シリアライズ可能なものについて説明します。

貢献者

このドキュメントの改善に貢献してくださったすべての貢献者の方々に感謝いたします!

  • the-r3aper7
  • manucorporat
  • adamdbradley
  • mhevery
  • mrhoodz
  • thejackshelton
  • wtlin1228