Vue混入使用和選項合並詳解
1、在組件中使用
混入 (mixin) 提供瞭一種非常靈活的方式,來分發 Vue 組件中的可復用功能。一個混入對象可以包含任意組件選項。當組件使用混入對象時,所有混入對象的選項將被“混合”進入該組件本身的選項。
<template> <div class="event_style"> <h2>基礎</h2> <div class="inner_children"> <span>{{ message }}</span> </div> </div> </template> <script> var myMixin = { data() { return { message: "", }; }, created: function () { console.log("created:add mixin"); this.message = "created:add mixin"; this.hello(); }, methods: { hello: function () { console.log("hello from mixin!"); }, }, }; // 定義一個使用混入對象的組件 export default { name: "mixin-basic", mixins: [myMixin], }; </script>
2、選項合並
當組件和混入對象含有同名選項時,這些選項將以恰當的方式進行“合並”。
比如,數據對象在內部會進行遞歸合並,並在發生沖突時以組件數據優先。
<template> <div class="event_style"> <h2>選項合並</h2> <div class="inner_children"> <span>{{ message }}</span> <span>{{ message1 }}</span> </div> </div> </template> <script> var myMixin = { data() { return { message: "mixin:mixin", message1: "mixin:mixin-1", }; }, created: function () { this.hello(); }, methods: { hello: function () { console.log("mixin:hello from mixin!"); }, }, }; // 定義一個使用混入對象的組件 export default { name: "mixin-merge", mixins: [myMixin], data() { return { message: "組件:hello", }; }, created: function () { this.hello(); }, methods: { hello: function () { console.log("組件:hello world!"); }, }, }; </script> <style scoped> .event_style { padding-left: 50px; padding-right: 50px; } .inner_children { display: flex; flex-direction: column; height: 150px; border: 1px solid #333; padding: 6px; } .inner_children span { font-size: 20px; } </style>
頁面呈現的效果
由上圖可以看出,混入的數據和方法和組件定義的有沖突時,以組件的優先,當組價中未定義時,才會進行合並,顯示混入定義的效果
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- vue cli 局部混入mixin和全局混入mixin的過程
- vue3 mixin 混入使用方法
- vue混入mixin流程與優缺點詳解
- Vue中Mixin&extends的詳細使用教程
- 詳解vue之mixin的使用