vue3-best-practices について
vue3-best-practicesは、Vue 3の開発とコードレビュー向けのガイドスキルです。影響度別に8カテゴリ、45のルールをまとめ、リアクティビティ、コンポーネント、バンドル、状態管理、移行などを扱います。
主な機能
- 01優先度別に整理された45ルール
- 02リアクティビティとコンポーネントの最適化
- 03バンドルサイズと読み込みの改善
- 04Composition APIとテンプレートの指針
- 05状態管理とライフサイクルを網羅
活用シーン
- 01Vue 3のコンポーネントやcomposableの作成
- 02アプリのパフォーマンスレビューと最適化
- 03Vue 2からVue 3への移行
- 04バンドルサイズと読み込み時間の削減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ eva813/ skills-base --skill vue3-best-practicesインストール後、Claude Code で/vue3-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/bundle-lazy-loading.mdbundle-tree-shaking.mdcomponent-async-components.mdcomposition-script-setup.mdreactivity-computed-caching.mdreactivity-ref-vs-reactive.mdtemplate-performance.md詳細
Vue 3 のベストプラクティス
Vue 3 アプリケーション向けの包括的なパフォーマンス最適化および開発ガイドです。影響度に基づいて優先順位付けされた、8 カテゴリにわたる 45 のルールを収録し、自動リファクタリングとコード生成を支援します。
適用する場面
次のような場合に、これらのガイドラインを参照してください。
- 新しい Vue 3 コンポーネントまたはコンポーザブルを作成するとき
- リアクティブなデータや算出プロパティを実装するとき
- パフォーマンス上の問題がないかコードをレビューするとき
- Vue 2 から Vue 3 へリファクタリングするとき
- バンドルサイズや読み込み時間を最適化するとき
- 状態管理(Pinia/Vuex)を扱うとき
- コンポーネント内で非同期処理を実装するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | リアクティビティのパフォーマンス | CRITICAL | reactivity- |
| 2 | コンポーネントの最適化 | CRITICAL | component- |
| 3 | バンドルサイズと読み込み | HIGH | bundle- |
| 4 | Composition API | MEDIUM-HIGH | composition- |
| 5 | テンプレートのパフォーマンス | MEDIUM | template- |
| 6 | 状態管理 | MEDIUM | state- |
| 7 | ライフサイクルの最適化 | LOW-MEDIUM | lifecycle- |
| 8 | 高度なパターン | LOW | advanced- |
クイックリファレンス
1. リアクティビティのパフォーマンス(CRITICAL)
reactivity-ref-vs-reactive- プリミティブには ref、オブジェクトには reactive を使用しますreactivity-shallow-ref- 大きな不変オブジェクトには shallowRef を使用しますreactivity-computed-caching- 算出プロパティのキャッシュを活用しますreactivity-watch-vs-watcheffect- 適切なウォッチャーを選択しますreactivity-unref-performance- 処理負荷の高い箇所で unref の呼び出しを最小限に抑えますreactivity-readonly-immutable- 不変データには readonly を使用します
2. コンポーネントの最適化(CRITICAL)
component-async-components- 負荷の高いコンポーネントには defineAsyncComponent を使用しますcomponent-functional- シンプルな表示ロジックには関数型コンポーネントを使用しますcomponent-keep-alive- keep-alive で負荷の高いコンポーネントをキャッシュしますcomponent-lazy-hydration- 重要度の低いコンポーネントには遅延ハイドレーションを実装しますcomponent-prop-validation- 効率的な props 検証を使用しますcomponent-emit-performance- イベントの発行を最適化します
3. バンドルサイズと読み込み(HIGH)
bundle-tree-shaking- 最適なツリーシェイキングが行われるようインポートを構成しますbundle-dynamic-imports- コード分割には動的インポートを使用しますbundle-plugin-imports- DX を向上させるために unplugin-auto-import を使用しますbundle-lodash-imports- lodash の関数を個別にインポートしますbundle-moment-alternatives- moment.js の代わりに day.js を使用しますbundle-icons-optimization- アイコンのインポートと使用を最適化します
4. Composition API(MEDIUM-HIGH)
composition-script-setup- パフォーマンス向上のため、composition-composables-reuse- 再利用可能なロジックをコンポーザブルに切り出しますcomposition-provide-inject- 依存性注入には provide/inject を使用しますcomposition-expose-selectively- 必要なプロパティのみを公開しますcomposition-reactive-transform- 適切な場合はリアクティブ変換を使用しますcomposition-auto-import- DX を向上させるために自動インポートを設定します
5. テンプレートのパフォーマンス(MEDIUM)
template-v-once- 静的コンテンツには v-once を使用しますtemplate-v-memo- 負荷の高いリストのレンダリングには v-memo を使用しますtemplate-key-optimization- パフォーマンスのために v-for のキーを最適化しますtemplate-conditional-rendering- 状況に応じて v-if と v-show を使い分けますtemplate-slot-performance- スロットとスコープ付きスロットの使用を最適化しますtemplate-directive-optimization- 効率的なカスタムディレクティブを作成します
6. 状態管理(MEDIUM)
state-pinia-optimization- Pinia ストアの構造を最適化しますstate-store-composition- ストアの合成パターンを使用しますstate-persistence- 効率的な状態の永続化を実装しますstate-normalization- 複雑な状態構造を正規化しますstate-subscription- 状態のサブスクリプションを最適化しますstate-devtools- デバッグ用に devtools を設定します
7. ライフサイクルの最適化(低〜中)
lifecycle-cleanup- onUnmounted でリソースを適切にクリーンアップするlifecycle-async-setup- setup 内の非同期処理を処理するlifecycle-watchers-cleanup- ウォッチャーとエフェクトをクリーンアップするlifecycle-dom-access- ライフサイクルフック内で DOM に安全にアクセスするlifecycle-ssr-considerations- SSR のライフサイクルの違いに対処する
8. 高度なパターン(低)
advanced-teleport-usage- ポータルパターンに Teleport を使用するadvanced-suspense-async- 非同期コンポーネントで Suspense を実装するadvanced-custom-renderer- 必要に応じてカスタムレンダラーを作成するadvanced-compiler-macros- コンパイラーマクロを効果的に使用するadvanced-plugin-development- 効率的な Vue プラグインを開発する
フレームワークとの統合
Vite との統合
- Vite の高速な HMR とビルド最適化を活用する
- 適切なチャンク分割戦略を設定する
- Vue 固有の最適化には Vite プラグインを使用する
TypeScript との統合
- Vue 3 の強化された TypeScript サポートを活用する
- DX を向上させるため、適切な型定義を使用する
- 最適なビルドパフォーマンスが得られるよう TypeScript を設定する
テストとの統合
- Composition API で Vue Test Utils を使用する
- 効率的なコンポーネントテスト戦略を実装する
- テストのパフォーマンスと信頼性を最適化する
使用方法
詳しい説明とコード例については、各ルールファイルを参照してください。
rules/reactivity-ref-vs-reactive.md
rules/component-async-components.md
rules/composition-script-setup.md
各ルールファイルには以下が含まれています。
- 重要である理由の簡単な説明
- 説明付きの不適切な Vue 3 コード例
- 説明付きの適切な Vue 3 コード例
- パフォーマンスへの影響と測定結果
- 追加の背景情報と Vue 3 固有の考慮事項
Vue 2 からの移行
Vue 2 から移行する際の特別な考慮事項:
- Composition API と Options API のパターン
- リアクティビティシステムの変更と最適化
- コンポーネントの定義と登録の更新
- イベント処理とライフサイクルの変更
パフォーマンスのモニタリング
Vue 3 のパフォーマンスをモニタリングするためのツールと手法:
- Vue DevTools との統合
- ブラウザーツールによるパフォーマンスのプロファイリング
- バンドルの分析と最適化
- 実行時のパフォーマンスモニタリング
コメント
Markdown 対応