内部调用render函数
创建组件构造器
//Vue.extend() const cpnC = Vue.extend({ template:` <div> <h2>我是标题</h2> <p>我是i内容哈哈哈哈哈</p> <p>我是内容呵呵呵呵</p> </div> ` })注册组件
//Vue.extend() const cpnC = Vue.extend({ template:` <div> <h2>我是标题</h2> <p>我是i内容哈哈哈哈哈</p> <p>我是内容呵呵呵呵</p> </div> ` }) //Vue.component() Vue.component('my-cpn', cpnC)使用组件
//Vue.extend() const cpnC = Vue.extend({ template:` <div> <h2>我是标题</h2> <p>我是i内容哈哈哈哈哈</p> <p>我是内容呵呵呵呵</p> </div> ` }) //Vue.component() Vue.component('my-cpn', cpnC) //使用组件 const app = new Vue({ el:'#app', data:{ }, })vue中组件的数据需要用一个函数来返回值
这样组件和组件之间的data才不会相互影响,也不会被同一个methods更改
<body> <div id = 'app'> <!-- 当data是一个函数时,所创建的组件实例则不会共享数据 --> <!-- 函数会在栈空间内创建地址 --> <!-- 如果是对象就会使组件共用同一个内存地址 --> <Counter></Counter> <Counter></Counter> <Counter></Counter> <Counter></Counter> </div> <template id = "Counter"> <div> <h1>当前数字是:{{counter}}</h1> <button @click="plus">+</button> <button @click="reduce">-</button> </div> </template id> <script src="../js/vue.js"></script> <script> const app = new Vue({ el: '#app', components:{ Counter:{ template:'#Counter', data() { return{ counter: 0, } }, methods:{ plus(){ this.counter++ }, reduce(){ this.counter-- } } } } }) </script> </body>