Vue グローバルコンポーネントの使い方
すべてのコンポーネント、または、多くのコンポーネントで同じコンポーネントを使いたい場合は、そのコンポーネントをグローバルコンポーネントとして登録しておくと便利です。
例えば、ComponentA、ComponentB、ComponentCというコンポーネントがあります。
<template>
<div>
<p>
ComponentA
</p>
</div>
</template>
<script>
export default {
name: 'ComponentA',
props: {
msg: String
}
}
</script>
<style scoped>
div {
border: 2px solid #ccc;
}
</style>
<template>
<div>
<p>
ComponentB
</p>
</div>
</template>
<script>
export default {
name: 'ComponentB',
props: {
msg: String
}
}
</script>
<style scoped>
div {
border: 2px solid #ddd;
}
</style>
<template>
<div>
<p>
ComponentB
</p>
</div>
</template>
<script>
export default {
name: 'ComponentB',
props: {
msg: String
}
}
</script>
<style scoped>
div {
border: 2px solid #eee;
}
</style>
これらのコンポーネントで、以下のMyComponentを使いたいとします。
<template>
<div>Tamibouz</div>
</template>
<script>
export default {
name: 'MyComponent',
props: {
msg: String
}
}
</script>
<style scoped>
</style>
MyComponentがローカルコンポーネントだった場合、ComponentAの中で import 文を書き、components プロパティで指定する必要があります。
しかし、以下のようにグローバルコンポーネントとして登録することで、これらの記述なしで直接MyComponentを使えるようになります。
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
Vue.component('MyComponent', MyComponent) // グローバルコンポーネントとして登録
new Vue({
render: h => h(App)
}).$mount('#app')
<template>
<div>
<p>
ComponentA
</p>
<MyComponent />
</div>
</template>
<script>
export default {
name: 'ComponentA',
props: {
msg: String
}
}
</script>
<style scoped>
div {
border: 2px solid #ccc;
}
</style>
ComponentB、ComponentCでも同様です。
これで、以下のように各コンポーネントでMyComponentを使うことができます。
最近のコメント