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

