Vue中Vue.extend()的使用詳解及說明
Vue Vue.extend()的使用
Vue.extend 屬于 Vue 的全局 API,在實(shí)際業(yè)務(wù)開發(fā)中我們很少使用,因?yàn)橄啾瘸S玫?Vue.component 寫法使用 extend 步驟要更加繁瑣一些。但是在一些獨(dú)立組件開發(fā)場景中,Vue.extend + $mount 這對組合是我們需要去關(guān)注的。
應(yīng)用場景
在 vue 項(xiàng)目中,初始化的根實(shí)例后,所有頁面基本上都是通過 router 來管理,組件也是通過 import 來進(jìn)行局部注冊,所以組件的創(chuàng)建不需要去關(guān)注,相比 extend 要更省心一點(diǎn)點(diǎn)。
但是這樣做會有幾個缺點(diǎn):
- 組件模板都是事先定義好的,如果我要從接口動態(tài)渲染組件怎么辦?
- 所有內(nèi)容都是在 #app 下渲染,注冊組件都是在當(dāng)前位置渲染。如果我要實(shí)現(xiàn)一個類似于 window.alert() 提示組件要求像調(diào)用 JS 函數(shù)一樣調(diào)用它,該怎么辦?
- 這時候,Vue.extend + vm.$mount 組合就派上用場了。
基礎(chǔ)用法
Vue.extend( options )
- 參數(shù):{Object} options
- 用法:使用基礎(chǔ) Vue 構(gòu)造器,創(chuàng)建一個“子類”。參數(shù)是一個包含組件選項(xiàng)的對象;data 選項(xiàng)是特例,需要注意: 在 Vue.extend() 中它必須是函數(shù);
<div id="mount-point"></div>
// 創(chuàng)建構(gòu)造器
var Profile = Vue.extend({
template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
data: function () {
return {
firstName: 'Walter',
lastName: 'White',
alias: 'Heisenberg'
}
}
})
// 創(chuàng)建 Profile 實(shí)例,并掛載到一個元素上。
new Profile().$mount('#mount-point')
// 結(jié)果如下:
<p>Walter White aka Heisenberg</p>可以看到,extend 創(chuàng)建的是 Vue 構(gòu)造器,而不是我們平時常寫的組件實(shí)例,所以不可以通過 new Vue({ components: testExtend }) 來直接使用,需要通過 new Profile().$mount(’#mount-point’) 來掛載到指定的元素上。
第二種寫法
可以在創(chuàng)建實(shí)例的時候傳入一個元素,生成的組件將會掛載到這個元素上,跟 $mount 差不多。
// 1. 定義一個vue模版
let tem ={
template:'{{firstName}} {{lastName}} aka {{alias}}',
data:function(){
return{
firstName:'Walter',
lastName:'White',
alias:'Heisenberg'
}
}
// 2. 調(diào)用
const TemConstructor = Vue.extend(tem)
const intance = new TemConstructor({el:"#app"}) // 生成一個實(shí)例,并且掛載在 #app 上總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue @vuelidate父子組件綁定注意事項(xiàng)
Vue@vuelidate父子組件驗(yàn)證時,不能直接綁定,需在子組件驗(yàn)證方法內(nèi)部進(jìn)行綁定,以避免父組件驗(yàn)證時包含子組件的驗(yàn)證2025-02-02
Vue預(yù)覽PDF的兩種方法比較(vue-pdf-embed與pdfjs-dist)
這篇文章主要為大家詳細(xì)介紹了Vue預(yù)覽PDF的兩種方法比較,即vue-pdf-embed與pdfjs-dist,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-08-08
使用vue-virtual-scroller遇到的問題及解決
這篇文章主要介紹了使用vue-virtual-scroller遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue實(shí)現(xiàn)一個動態(tài)添加行的表格步驟詳解
在Vue組件中定義表格的數(shù)據(jù)模型,通常使用一個數(shù)組來存儲表格的數(shù)據(jù),每一行數(shù)據(jù)可以是一個對象,對象的屬性對應(yīng)表格的列,這篇文章主要介紹了Vue實(shí)現(xiàn)一個動態(tài)添加行的表格步驟詳解,需要的朋友可以參考下2024-05-05

