溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Vue.extend構(gòu)造器的詳解

發(fā)布時(shí)間:2020-10-06 16:07:01 來(lái)源:腳本之家 閱讀:103 作者:Dear_Mr 欄目:web開(kāi)發(fā)

Vue.extend構(gòu)造器的詳解

1.簡(jiǎn)單介紹

Vue.extend(options)

參數(shù):對(duì)象

用法:使用Vue構(gòu)造器,創(chuàng)建一個(gè)“子類(lèi)”,參數(shù)是一個(gè)包含組件選項(xiàng)的對(duì)象,其中,data選項(xiàng)中必須是函數(shù)

描述:Vue.extend返回的是一個(gè)“擴(kuò)展實(shí)例構(gòu)造器”,也就是預(yù)設(shè)了部分選項(xiàng)的Vue的實(shí)例構(gòu)造器,它常常服務(wù)于Vue.component用來(lái)生成組件,可以簡(jiǎn)單理解為當(dāng)在模板中遇到該組件作為標(biāo)簽的自定義元素時(shí),會(huì)自動(dòng)調(diào)用“擴(kuò)展實(shí)例構(gòu)造器”來(lái)生產(chǎn)組件實(shí)例,并掛在到自定義元素上

2.簡(jiǎn)單舉例

自定義無(wú)參數(shù)標(biāo)簽

下面的代碼中的author就是返回的“擴(kuò)展實(shí)例構(gòu)造器”

var author = Vue.extend({
 template: "<p><a :href='url'>{{author}}</a></p>",
 data : function() {
  return {
   author : 'vamous',
   url : 'http://blog.csdn.net/Dear_Mr/article/details/72614370'
  }
 }
});

對(duì)應(yīng)的html如下:

<author></author>

此時(shí)的頁(yè)面必然是沒(méi)有任何效果的,因?yàn)閿U(kuò)展實(shí)例構(gòu)造器還需要掛載,如下

new author().$mount('author');

使用propsData

var author = Vue.extend({
 template: "<p><a :href='url'>{{author}} & {{name}}</a></p>",
 data : function() {
  return {
   author : 'vamous',
   url : 'http://blog.csdn.net/Dear_Mr/article/details/72614370'
  }
 },
 props : ['name']
});

new author({propsData: {name : 'dear_mr'}}).$mount('#author');

可以利用propsData傳遞參數(shù)

掛載在普通標(biāo)簽上

返回的擴(kuò)展實(shí)例構(gòu)造器的方式和上面還是一樣的,只是html里不再是自定義標(biāo)簽,而是一個(gè)普通標(biāo)簽,比如div

<div id="author"></div>
 new author().$mount('author');

其實(shí)對(duì)于同一個(gè)擴(kuò)展構(gòu)造器而言,它的每一個(gè)實(shí)例其實(shí)是可以?huà)燧d到不同的標(biāo)簽上的,比如我可以這樣

new author().$mount('#author');
new author().$mount('author');

這兩個(gè)標(biāo)簽的內(nèi)容會(huì)一同顯示,結(jié)果一樣

以上就是對(duì)Vue.extend構(gòu)造器的實(shí)例詳解,本站還有很多關(guān)于vue js開(kāi)發(fā)的資料,歡迎大家搜索參閱,如有疑問(wèn)請(qǐng)大家留言,共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI