
- VueJS 教程
- VueJS - 首頁
- VueJS - 總覽
- VueJS - 環境設定
- VueJS - 簡介
- VueJS - 例項
- VueJS - 模板
- VueJS - 元件
- VueJS - 計算屬性
- VueJS - 監視屬性
- VueJS - 繫結
- VueJS - 事件
- VueJS - 渲染
- VueJS - 過渡和動畫
- VueJS - 指令
- VueJS - 路由
- VueJS - Mixin
- VueJS - 渲染函式
- VueJS - 響應式介面
- VueJS - 示例
- VueJS 有用資源
- VueJS - 快速指南
- VueJS - 有用資源
- VueJS - 討論
VueJS - Mixin
Mixin 對於與元件一起使用基本有用。它們在元件中共享可重用程式碼。當元件使用 mixin 時,mixin 的所有選項都成為元件選項的一部分。
示例
<html> <head> <title>VueJs Instance</title> <script type = "text/javascript" src = "js/vue.js"></script> </head> <body> <div id = "databinding"></div> <script type = "text/javascript"> var vm = new Vue({ el: '#databinding', data: { }, methods : { }, }); var myMixin = { created: function () { this.startmixin() }, methods: { startmixin: function () { alert("Welcome to mixin example"); } } }; var Component = Vue.extend({ mixins: [myMixin] }) var component = new Component(); </script> </body> </html>
輸出

當 mixin 和元件包含重疊選項時,它們會合併到一起,如下面的示例所示。
<html> <head> <title>VueJs Instance</title> <script type = "text/javascript" src = "js/vue.js"></script> </head> <body> <div id = "databinding"></div> <script type = "text/javascript"> var mixin = { created: function () { console.log('mixin called') } } new Vue({ mixins: [mixin], created: function () { console.log('component called') } }); </script> </body> </html>
現在,mixin 和 vue 例項具有相同的方法 created。這是我們在控制檯中看到的結果。如您所見,vue 的選項和 mixin 將被合併。

如果碰巧我們在 methods 中具有相同的方法名稱,那麼主要的 vue 例項將享有優先權。
示例

<html> <head> <title>VueJs Instance</title> <script type = "text/javascript" src = "js/vue.js"></script> </head> <body> <div id = "databinding"></div> <script type = "text/javascript"> var mixin = { methods: { hellworld: function () { console.log('In HelloWorld'); }, samemethod: function () { console.log('Mixin:Same Method'); } } }; var vm = new Vue({ mixins: [mixin], methods: { start: function () { console.log('start method'); }, samemethod: function () { console.log('Main: same method'); } } }); vm.hellworld(); vm.start(); vm.samemethod(); </script> </body> </html>
我們將看到 mixin 中有一個方法屬性,其中定義了 helloworld 和 samemethod 函式。與此類似,vue 例項具有一個 methods 屬性,其中定義了其他兩個方法 start 和 samemethod。
將呼叫下面每種方法。
vm.hellworld(); // In HelloWorld vm.start(); // start method vm.samemethod(); // Main: same method
正如上面看到的那樣,我們已呼叫 helloworld、start 和 samemethod 函式。samemethod 也存在於 mixin 中,但是將優先考慮主例項,如以下控制檯所示。

廣告