用法一:模块化引入挂载组件
import Vue from "vue";
import Demo from "./Demo.vue";
Vue.config.productionTip = false;
new Vue({
components: {
Demo1: Demo
},
data() {
return {
n: 0
};
},
template: `
<div class=red>
{{n}}
<button @click="add">+1</button>
<Demo1/> //这样在这个Vue实例的template中就可以直接使用这个组件`<Demo1/>`
</div>
`,
methods: {
add() {
this.n += 1;
},
}
}).$mount("#app");
用法二:全局组件(vue完整版场景)
import Vue from "vue";
Vue.config.productionTip = false;
Vue.components('Demo2,{template:`<div>Demo2</div>`}')
new Vue({
data() {
return {
n: 0
};
},
template: `
<div class=red>
{{n}}
<button @click="add">+1</button>
<Demo2/> //在Vue实例的template中就可以使用这个组件`<Demo2/>`
</div>
`,
methods: {
add() {
this.n += 1;
}
}
}).$mount("#app");
用法三:以上两种方法结合(vue完整版场景)
import Vue from "vue";
Vue.config.productionTip = false;
new Vue({
components: {
Demo3: { template: `<div>Demo2</div>` }
},
data() {
return {
n: 0
};
},
template: `
<div class=red>
{{n}}
<button @click="add">+1</button>
<Demo3/> //直接在这个Vue实例的template中就可以使用这个组件`<Demo3/>`
</div>
`,
methods: {
add() {
this.n += 1;
}
}
}).$mount("#app");