Vue.jsのフレームワークとして、いろいろあるが、今回はvue-cliとNuxt.jsについて比較してみたいと思う。
ファイル構成や標準で用意されてるものが異なるので、整理用の記事となります。
フレームワークを移行したい時にみていただけるといいかもしれません。
#ディレクトリやファイル構成
###vue-cli
ファイルパス | 役割 |
---|---|
./index.html | 静的ファイル |
./src/main.js | 静的ファイルのJS / Vueインスタンスの作成 |
./src/App.vue | 動的テーマ |
./src/components/Hello.vue | 動的部品 |
./src/router/index.js | ルーティング |
./src/store/index.js | 状態管理 |
./dist | 本番用のファイル群 |
###Nuxt.js
ディレクトリ | 格納するファイル | ファイル例 |
---|---|---|
assets | CSSや画像やフォントなど | headerImage.jpg |
components | コンポーネントファイル | Logo.vue(デフォルト)/ Header.vue / Footer.vue |
layouts | サイトの基盤となる全体共通のデザイン | default.vue |
pages | 切り替えたい画面 / ルーティングは自動で行われる | index.vue(/) / about.vue(/about) |
middleware | 画面を読み込む前に処理したい内容 | |
plugins | Vue.jsアプリをインスタンス化する前に実行したいJSファイル | axios.js |
static | 変更されない静的ファイル | favicon.ico |
store | 状態を格納してくれる機能(Vuexストア)のファイル | index.js |
最大の違いともいえるのが、Nuxt.jsは自動でルーティング設定を行ってくれるところ。
vue-cli | Nuxt.js | |
---|---|---|
ルーティング設定 | 手動 | 自動 |
ルーティングを司るファイル | router/index.js | .nuxt/router.js |
##プロジェクトを生成した時に必要なもの
必要なものは、挙げればキリがないのだが、とりあえず必要なのはルーティングするvue-routerと、状態管理するVuexをみていく。
###標準装備されているか。
vue-cli | Nuxt.js | |
---|---|---|
vue-router | × | ○ |
Vuex | × | ○ |