<divid="example"> <my-component></my-component> </div> <script> //定义组件 var child = Vue.extend({ template: "<div>this is a child component!</div>" }) var parent = Vue.extend({ template: "<div>this is a parent component! <child></child></div>", components: { 'child': child } }) //注册组件 Vue.component('my-component', parent) //创建根实例 new Vue({ el:'#example' }) </script>
组件选项问题
传入 Vue 构造器的多数选项也可以用在 Vue.extend() 中,不过有两个特例: data 和 el。如果我们简单地把一个对象作为 data 选项传给 Vue.extend(), 所有的实例将共享同一个 data 对象!这基本不是我们想要的,因此我们应当使用一个函数作为 data 选项,让这个函数返回一个新对象:
1 2 3 4 5 6
var child = Vue.extend({ template: "<div>this is a child component!</div>" data : function () { return {a:1} } })