vue.extend 创建的是一个组件构造器, 不是直接过载在 vue 的示例对象,
可以理解为构造了一个和 vue 组件内部有一样结构的对象, 因此需要在 vue 上进行注册才能使用
最终还是要通过 Vue.components 注册才可以使用的.
- // 创建构造器
- var Profile = Vue.extend({
- template: '<p>{{extendData}}</br > 实例传入的数据为:{{propsExtend}}</p>',//template 对应的标签最外层必须只有一个标签
- data: function () {
- return {
- extendData: '这是 extend 扩展的数据',
- }
- },
- props:['propsExtend']
- })
- // 创建 Profile 实例, 并挂载到一个元素上. 可以通过 propsData 传参.
- new Profile({propsData:{propsExtend:'我是实例传入的数据'}}).$mount('#app-extend')
结论: Vue.extend 实际是创建一个构造器, 对应的初始化构造器, 并将其挂载到标签上
来源: http://www.css88.com/qa/vue-js/15917.html