Vue.extend()
时间: 2023-12-05 07:08:52 浏览: 72
[vue源码05]-Vueextend.docx
Vue.extend() 是 Vue 的全局 API 之一,用于创建一个 Vue 的子类,也就是创建一个 Vue 构造器。通过传入一个包含组件选项的对象作为参数,我们可以定义这个子类的模板、数据等属性。需要注意的是,在 Vue.extend() 中,data 选项必须是一个函数。
使用 Vue.extend() 创建的是一个 Vue 构造器,而不是我们平时创建的组件实例。因此,我们不能直接通过 new Vue({ components: testExtend }) 来使用它,而是需要通过实例化这个构造器,并通过 $mount 方法将其挂载到指定的元素上。
下面是一个示例,展示了如何使用 Vue.extend() 创建一个子类,并将其挂载到一个元素上:
```javascript
// 创建构造器
var Profile = Vue.extend({
template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
data: function () {
return {
firstName: 'Walter',
lastName: 'White',
alias: 'Heisenberg'
}
}
})
// 创建 Profile 实例,并挂载到一个元素上
new Profile().$mount('#mount-point')
```
在上述示例中,我们创建了一个名为 Profile 的子类,它拥有一个模板和一个 data 数据对象。然后,我们实例化了这个子类,并通过 $mount 方法将其挂载到 id 为 "mount-point" 的元素上。最终的效果是,在指定的元素上渲染出一个段落,内容为 "Walter White aka Heisenberg"。
总结来说,Vue.extend() 是用于创建 Vue 子类的全局 API,它可以用来定义和配置一个组件的模板和数据,然后通过实例化这个子类,并将其挂载到指定的元素上来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文