2017-10-05 133 views
0

我在VueJS上測試Mixins,我有一個問題。有沒有辦法直接從Mixins調用事件,而無需將其分配在我的methods中?VueJS Mixins方法直接調用

MyMixins.js

import Vue from 'vue' 

Vue.mixin({ 
    methods: { 
     Alerta(){ 
      alert('WORK!') 
     } 
    } 
}) 

app.vue

<template> 
    <button v-on:click="AlertaInterno">test</button> 
</template> 
<script> 
    export default{ 
     methods:{ 
      AlertaInterno(){ 
      this.Alerta() 
     } 
     } 
    } 
</script> 

上述工程的代碼。我想知道我怎麼能直接調用混入功能,這樣的事情:

app.vue

<template> 
    <button v-on:click="this.Alerta()">test</button> 
</template> 

謝謝!

回答

1

是的,你可以直接調用它。來自mixin的方法是合併與Vue或它們「混合在一起」的組件。它們可以像其他方法一樣被調用。

console.clear() 
 

 
const Mixin = { 
 
    methods:{ 
 
    Alerta(){ 
 
     alert("WORK!") 
 
    } 
 
    } 
 
} 
 

 
new Vue({ 
 
    mixins: [Mixin], 
 
    el: "#app" 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script> 
 
<div id="app"> 
 
<button @click="Alerta">Alert!</button> 
 
</div>

+0

感謝的人! 「@ click」或「v-on:click」之間有什麼不同之處? – Johnson

+0

有時我會使用'()'來看看人們在做什麼,'@ click =「alerta」'而不是'@ click =「alerta()」'。這些代碼有什麼區別? – Johnson

+1

@Johnson'@ click =「alerta」'是v-on的簡寫:click =「alerta」'。它的工作方式沒有什麼區別,只是保存了幾個字符。同樣,您可以使用'alerta'或'alerta()'調用'alerta'。如果'alerta'帶有參數,那麼你會想使用'alerta(一些參數)'。當沒有參數時,你只需要在點擊處理程序中使用函數名稱。 – Bert