<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id ="app">
<cpn></cpn>
<cpn1></cpn1>
</div>
<div id="app1">
<cpn1></cpn1>
</div>
<!-- 模板分离 通过id关联 -->
<template id="cpn1T">
<div>
<h2>{{title}}</h2>
<p>我是全局组件所有vue实例都可以使用</p>
<cpn2></cpn2>
</div>
</template>
<template id="cpn2T">
<div>
<h2>我是cpn2</h2>
<p>我是全局组件cpn1中的子组件</p>
</div>
</template>
<script>
//创建组件构造器
// const cpnC = Vue.extend({
// template: `
// <div>
// <h2>我是标题</h2>
// <p>我是内容</p>
// </div>
// `
// });
//全局组件
// Vue.component('cpn',cpnC);
//直接注册全局组件并设置模板
Vue.component('cpn1', {
template: '#cpn1T', //模板分离
data(){ //组件中有自己的data 此data是一个函数
return {
title:'我是cpn1标题'
}
},
components: { //cpn1中的子组件cpn2
cpn2: {
template:'#cpn2T' //模板分离
}
}
})
const vm = new Vue({
el: '#app',
data: {
},
//局部组件 一般用局部组件且只有一个vue实例
components:{
cpn:{
template:`
<div>
<h2>我是标题cpn</h2>
<p>我是局部组件,我在vm里</p>
</div>
`
}
},
computed: {
},
methods: {
}
});
const vm1 = new Vue({
el: '#app1',
data: {
},
// components:{
// cpn:cpnC
// },
computed: {
},
methods: {
}
});
</script>
</body>
</html>