親要素からcomponent(コンポーネント)を読み込むときの手順を、復習。
まずは子componentを作成
コンポーネントはキャメルケース。
component/ChildComponent.vue
<template>
<div class="child_component">
<h2>This is child component</h2>
</div>
</template>
読み込む親要素で<script>
内にimportし、componentを記載する。
script内もキャメルケース。
views/Parent.vue
<script>
import ChildComponent from '@/components/ChildComponent.vue'
export default {
name: 'parent',
components: {
ChildComponent,
},
}
</script>
読み込む親要素で描画箇所を記述
描画箇所はスネークケース
<template>
<div class="parent">
<h1>Parent page</h1>
<child-component></child-component>
</div>
</template>
トラブルシューティング
親のパスは通っていますか?
router/index.jsに親を登録していないと、/parentのuriでページが見られません。
import { createRouter, createWebHistory } from 'vue-router'
import Parent from '../views/Parent.vue'
const routes = [
{
path: '/parent',
name: 'parent',
component: Parent,
},
]
const router = createRouter({
history: createWebHistory(),
routes,
})
export default router
viteを使っていますか?
Viteを使用し、@でパスの指定をしたい場合は、別途設定が必要です。
vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
})