パフォーマンス

このページでは、パッケージがバンドルサイズと実行時のコストに与える影響と、大量のアイコンをレンダリングする方法を説明します。

アイコンの読み込みと実行の仕組み

  • アイコンごとに 1 モジュール。 アイコンのモジュールには副作用がないため、バンドラーはインポートしていないアイコンを取り除きます。圧縮して gzip をかけると、最初の React または Vue アイコンは共有ランタイムを含めて約 4 KB、以降のアイコンは 1 つあたり約 0.6 KB 増えます。
  • 事前レンダリング済みのマークアップ。 静止状態は文字列として含まれているので、サーバーでもブラウザーでも、最初の描画前に計算は不要です。
  • 必要なときだけ動く。 モーションのコードはアイコンが動いている間だけ実行され、終わると止まります。
  • 共通コード。 すべてのアイコンが 1 つのジオメトリモジュールを、すべてのアニメーションアイコンが 1 つのランタイムを共有するため、ブラウザーや CDN はそのコードを 1 回だけキャッシュします。
  • CSS の色。 ページ内のアイコンの色は、CSS を 1 か所変えるだけで切り替えられ、再レンダリングも発生しません。

大量のアイコン

各アイコンは、影とハイライトに SVG フィルターを使っています。何百ものアイコンを表示する場合は、見えている行だけをレンダリングするか、ブラウザーが 1 度だけラスタライズする <img> タグで静的 SVG ファイルを使ってください。

ディープインポート

開発サーバーは、パッケージのインデックス全体を読み込むことがあり、そのインデックスはすべてのアイコンを参照しています。これを避けるには、各アイコンをそのファイルからインポートします。

ts
import Folder from "kubai-icons-react/icons/folder";

Kubai Icons は無料で使えます プロジェクトを支援する