企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Mixins一般有两种用途: 1. 在你已经写好了构造器后,需要增加方法或者临时的活动时使用的方法,这时用混入会减少源代码的污染。 2. 很多地方都会用到的公用方法,用混入的方法可以减少代码量,实现代码重用。 # Mixins的基本用法 我们现在有个数字点击递增的程序,假设已经完成了,这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”. ~~~ <body> <div id="app"> <p>num:{{num}}</p> <p> <button @click="add">add</button> </p> </div> </body> <script type="text/javascript"> var addLog = { updated: function () { console.log("数据发生变化,变化成---" + this.num + "."); } }; var app = new Vue({ el: '#app', data: { num: 1 }, methods: { add: function () { this.num++; } }, //混入 mixins: [addLog] }); </script> ~~~ # mixins的调用顺序 从执行的先后顺序来说,都是混入的先执行,然后构造器里的再执行,需要注意的是,这并不是方法的覆盖,而是被执行了两边。 在上边的代码的构造器里我们也加入了updated的钩子函数: ~~~ updated:function(){ console.log("构造器里的updated方法。") } ~~~ 这时控制台输出的顺序是: 数据发生变化,变化成---2. index.html:75 构造器里的updated方法。 PS:当混入方法和构造器的方法重名时,混入的方法无法展现,也就是不起作用 # 全局API混入方式 我们也可以定义全局的混入,这样在需要这段代码的地方直接引入js,就可以拥有这个功能了。我们来看一下全局混入的方法: ~~~ Vue.mixin({ updated:function(){ console.log('我是全局被混入的'); } }) ~~~ ~~~ <body> <div id="app"> <p>num:{{num}}</p> <p> <button @click="add">add</button> </p> </div> </body> <script type="text/javascript"> Vue.mixin({ updated: function () { console.log('我是全局被混入的'); } }); var app = new Vue({ el: '#app', data: { num: 1 }, methods: { add: function () { this.num++; }, }, updated: function () { console.log("构造器里的updated方法。") }, }); </script> ~~~ PS:全局混入的执行顺序要前于混入和构造器里的方法。