vue.extend,mixins和vue.component的區(qū)別及說明
1.vue.extend
Vue.extend就是傳入一下組件options,然后返回了一個Vue的子類,也可以看做是一個組件構(gòu)造函數(shù)。
例子:
可以通過vue.component將這個vue子類注冊到全局
<!doctype html> <html> <head> <meta charset="utf-8"> <title>在Vue中注冊組件</title> </head> <body> <div id="app"> <todo :todo-data="groceryList"></todo> </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue " type="text/javascript"></script> <script> /** * 請注意,extend創(chuàng)建的是一個組件構(gòu)造器,而不是一個具體的組件實例。 * 所以他不能直接在new Vue中這樣使用: new Vue({components: fuck}) * 最終還是要通過Vue.components注冊才可以使用的。 */ // 構(gòu)建一個子組件 var todoItem = Vue.extend({ template: ` <li> {{ text }} </li> `, props: { text: { type: String, default: '' } } }) // 構(gòu)建一個父組件 var todoWarp = Vue.extend({ template: ` <ul> <todo-item v-for="(item, index) in todoData" v-text="item.text" ></todo-item> </ul> `, props: { todoData: { type: Array, default: [] } }, // 局部注冊子組件 components: { todoItem: todoItem } }) // 注冊到全局 Vue.component('todo', todoWarp) new Vue({ el: '#app', data: { groceryList: [ { id: 0, text: '蔬菜' }, { id: 1, text: '奶酪' }, { id: 2, text: '隨便其它什么人吃的東西' } ] } }) </script> </html>
2.vue.mixin
mixins可以全局添加一些方法或?qū)傩?,方便所有組件調(diào)用??梢杂脕硖砑油ㄓ玫膶ο笠煤头椒?
在混入的時候會先執(zhí)行混入的created再執(zhí)行組件里的created,當(dāng)方法沖突時會使用當(dāng)前組件里的
例子:
Vue.mixin({ data:{ //組件中可以使用this.$axios來調(diào)用axios的方法,十分方便 $axios: axios }, methods: { //每個組件從全局store中取出用戶信息 getUser() { return store.getters.user; } } })
3.vue.component
Vue.component是一個插件注冊方法,就是把Vue.extend函數(shù)new出來的組件實例,注冊到Vue的Options上。
本質(zhì)是也就是在全局Vue實例的Options,添加了一個key/value,value就是組件實例。由于組件的
Options會繼承Vue的Options,所以在任何組件中,都能調(diào)用該組件。
Vue.component('global-component', Vue.extend(baseOptions));
這是原始的調(diào)用方式,用Vue.extend注冊一個組件。
Vue內(nèi)部對其進(jìn)行了簡化,可以省略調(diào)用Vue.extend,只傳入Options就行了
//傳入一個選項對象(自動調(diào)用 Vue.extend),等價于上行代碼. Vue.component('global-component', baseOptions);
???????總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Vue axios post請求,后臺獲取不到數(shù)據(jù)的問題方法
今天小編就為大家分享一篇解決Vue axios post請求,后臺獲取不到數(shù)據(jù)的問題方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Vue項目中使用better-scroll實現(xiàn)一個輪播圖自動播放功能
better-scroll是一個非常非常強大的第三方庫 在移動端利用這個庫 不僅可以實現(xiàn)一個非常類似原生ScrollView的效果 也可以實現(xiàn)一個輪播圖的效果。這篇文章主要介紹了Vue項目中使用better-scroll實現(xiàn)一個輪播圖,需要的朋友可以參考下2018-12-12Vue-ANTD表單輸入中自定義校驗一些正則表達(dá)式規(guī)則介紹
這篇文章主要介紹了Vue-ANTD表單輸入中自定義校驗一些正則表達(dá)式規(guī)則介紹,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01vue proxyTable 接口跨域請求調(diào)試的示例
本篇文章主要介紹了vue proxyTable 接口跨域請求調(diào)試的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Vue2.0+ElementUI實現(xiàn)查詢條件展開和收起功能組件(代碼示例)
文章介紹了如何將查詢條件表單封裝成一個通用組件,以提高開發(fā)效率,組件支持多條件的折疊和展開功能,并提供了使用示例,感興趣的朋友一起看看吧2025-01-01