前言
最近一個朋友問我vue.extend和vue.component兩者之間有什么區(qū)別?突然這么一問竟答不出來,回來想想有必要總結(jié)下,所以本文就來給大家介紹關(guān)于vue.extend和vue.component的區(qū)別,下面話不多說了,來一起看看詳細的介紹吧。
Vue.extend 返回的是一個“擴展實例構(gòu)造器”,也就是一個預設了部分選項的 Vue 實例構(gòu)造器
var myVue = Vue.extend({ // 預設選項}) // 返回一個“擴展實例構(gòu)造器”// 然后就可以這樣來使用var vm = new myVue({ // 其他選項})Vue.component 是用來全局注冊組件的方法,其作用是將通過 Vue.extend 生成的擴展實例構(gòu)造器注冊(命名)為一個組件,可以簡單理解為當在模板中遇到該組件名稱作為標簽的自定義元素時,會自動調(diào)用類似于 new myVue 這樣的構(gòu)造函數(shù)來生成組件實例,并掛載到自定義元素上,當然實際情況要比這復雜得多,還需要處理 props 數(shù)據(jù)傳遞、slot 內(nèi)容分發(fā)、自定義事件、組件生命周期……事宜。
在網(wǎng)上看到了一個網(wǎng)友的分析也分享給大家,如下:
extend 是構(gòu)造一個組件的語法器.
你給它參數(shù) 他給你一個組件 然后這個組件
你可以作用到Vue.component 這個全局注冊方法里, 也可以在任意vue模板里使用<apple>組件
 var apple = Vue.extend({ .... }) Vue.component('apple',apple) 你可以作用到vue實例或者某個組件中的components屬性中并在內(nèi)部使用apple組件
 new Vue({   components:{  apple:apple  } })Vue.component 你可以創(chuàng)建 ,也可以取組件 例如下
var apple = Vue.component('apple')new Vue

就是創(chuàng)建一個vue實例咯 返回一個vm實例 。api中vm的說明就是new Vue創(chuàng)建的
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。
新聞熱點
疑難解答