ということで、Vueファイルを分割する方法はないかと調べていたら、公式ドキュメントの1ページ目にあった。
Vueファイルを分割する
まず、以下のようにVueファイルを*.vue、*.html、*.css、*.jsに分割する
.
├── App.vue
└── components
└── MyComponent
├── MyComponent.vue
├── template.html
├── style.css
└── script.js
次に「MyComponent.vue」で以下のように読み込む
<!-- MyComponent.vue -->
<template src="./template.html"></template>
<style scoped src="./style.css"></style>
<script src="./script.js"></script>
これでVueファイルを分割できた。
ディレクトリ構成とファイル名について
前述のとおりに実装すると、App.vueでMyComponent.vueを読み込むときに、「import MyComponent from './MyComponent/MyComponent'」と冗長になってしまう。
また同名ファイルが複数生成されてしまうので、ファイル検索などが面倒になってしまう。
同名ファイルを回避するために、以下のようなディレクトリ階層にすると、ファイルが分散してしまう。
※同じディレクトリで同じ名前のVueファイルとjsファイルがある場合、vue-loaderがvueを読み込むのかjsを読み込むのかわからずエラーになるので注意
components
├── MyComponent.vue
├── template
│ └── myComponent.html
├── style
│ └── myComponent.css
└── script
└── myComponent.js
なんだかんだで、今回はじめに紹介したディレクトリ構成・ファイル名が良い気がする。(GitHubで検索したときに一番多くヒットした構成だし)
参考サイト
以上
written by @bc_rikko

0 件のコメント :
コメントを投稿