Vue.jsの単一ファイルコンポーネント(SFC)をコンポーネントと定義します。 SFCはview(UI)とviewModel(ロジック)、そして装飾を1つのファイルで持つことができるからです。
大きく2つにわけられます。
- components.js
- /componentName
site.jsにインポートするため、コンポーネントをfunction
としてエクスポートします。
コンポーネント名ごとにディレクトリを作ります。 命名規則はVue.jsのスタイルガイドを基準とします。
props
を受け取るだけのviewコンポーネント単体の場合は、viewコンポーネントがディレクトリ名になります。
components
└── VButton
└── VButton.vue
emit
を受け取るviewModelコンポーネントとviewコンポーネントがある場合は、viewModelコンポーネントがディレクトリ名になります。
components
└── TheHeader
├── TheHeader.vue
├── TheHeaderLogo.vue
├── TheHeaderNav.vue
└── TheHeaderSearch.vue
一定以上の規模の場合や、viewコンポーネントを再利用していろいろなViewModelコンポーネントを作りたい場合は、large-scale-javascriptの分類を参考にしてください。
/componentName
がprojectになり、containerとui-kitが追加されるイメージです。
components
├── container
│ └── index
│ └── index.vue
├── project
│ └── TheHeader
│ ├── TheHeader.vue
│ ├── TheHeaderLogo.vue
│ ├── TheHeaderNav.vue
│ └── TheHeaderSearch.vue
└── ui
└── VButton
└── VButton.vue