先日、業務でVueとNuxtのバージョンアップをしようと調査したので、その内容をまとめておきます。
ぜひご覧ください。
読む人のメリット
vueのバージョンアップやNuxtのバージョンアップをしようとしてる方の調査をこの記事を読めば省略できます。
調査まとめ
やりたかったこと
- vue3.2アップグレード
- NuxtBridgeアップグレード
- OptionsAPIからcomposition APIに書き換え
注意事項
作業順序と所要期間
一旦、リポジトリ分けずPRを作成していく。
全部で大きく分けると4ステップ。
① vue3.2アップグレード(Nuxt2) - 期間 → 1日~数週間
② nuxt3アップグレード - 期間 → 1日 ~ 3日
③ OptionsAPIからcomposition APIに書き換え- 期間: 1週間 ~ 1ヶ月
これはこれでどこに導入するか、どこから変えていくかプランが必要だが初期はやらなくてもOK
制約
想定課題
- 移行コストが大きい(ビッグバンリリースになってしまう)
- ① vue3にアップグレードすると、全てのファイルをvue3対応しなければならない
- ② vue3とnuxt3をセットでバージョンアップさせないといけない
想定課題の解決方法
段階的にバージョンアップに伴う変更を行なっていく
CompositionAPIは複雑なコンポーネント(カレンダーとか)に適用すると便利
- Nuxt Bridgeを使う(Nuxt2でNuxt3の新機能を使える上位互換性レイヤー。公式が推奨) (→ ②)
今のバージョン
Nuxt3の新機能について
- Nitro Engineによる最大で75倍の高速化
- ISG(インクリメンタル・スタティック・ジェネレーション)などの高度なモードへの対応予定
- ナビゲーションの前後を問わず、どのコンポーネントでもデータを取得可
- Composition APIのネイティブサポート
- Nuxt CLI登場
- Nuxt Devtools登場予定
- Webpack 5に対応
- Vitaに対応
- Vue 3のネイティブサポート
- TypeScriptのネイティブサポート
- APIルートのサポート
vue3の新機能(変更)について
- IE11のサポート中止
- Composition API → 大規模・複雑なコンポーネントを作りやすくなる
- Teleportが使える → CSSを使わずmodalやtooltipを表示・非表示できる
- Fragments → 単一のdivで囲まなくてもOK
- Suspense → コンポーネント を作るまで表示できる
注目すべき新機能
Nuxt3導入後の変化
- vuexをやめてnuxt3のuseStateでグローバル管理する
合わせてインストールしておきたいもの
- Vite - Vueのビルドツール。VueCLIに比べると軽快。 → webpackより速いけど、typescriptの型チェックがない
- Volar - Vue3のVSCの拡張機能。VueでいうVetur