vue中如何在外部呼叫methods的方法
阿新 • • 發佈:2019-01-31
1.首先定義一個公共的vue元件;
3.最後在父元件中,注意負元件要用一個變數儲存,var vm = new Vue({}); 4.在父元件中的methods的方法中定義一個方法,在方法裡用$emit接收公共元件裡的方法;
5.最後就可以在vue元件外部,或者檔案外部呼叫getCardNum(data)這個函式,比如在html中就可以 onclick = vm.getCardNum() 這樣來呼叫;vm是父元件 6.注意一定要把父元件的變數名寫上 vm.getCardNum(); 我用vue開發的過程中,遇到java後臺的彈窗頁面想要呼叫我vue元件中的方法,可是後臺的彈窗頁面並沒有在我的vue元件中,其他的頁面想要呼叫的vue中的方法,只能在父元件中呼叫,於是研究了很久,最後確定,將元件中的function()方法傳遞到最上一層的父元件中,將負元件儲存在變數中,最後直接在其他頁面中呼叫方法,呼叫的時候,就不能用@click方法來呼叫了,因為後臺的頁面並不在我的vue元件內部,於是呼叫就是onclick = vm.getCardNum();這樣呼叫,vm是父元件;
歡迎關注我的個人技術公眾號!javascript藝術
var eventHub = new Vue();
2.在事件當前的元件中,在created中,用$on向公共的元件eventHub傳遞,translate是自定義的,getCardNum(data)是要在外部呼叫的方法;
eventHub.$on('translate', function (data) {
that.getCardNum(data);
});
3.最後在父元件中,注意負元件要用一個變數儲存,var vm = new Vue({}); 4.在父元件中的methods的方法中定義一個方法,在方法裡用$emit接收公共元件裡的方法;
var vm = new Vue({ el: '#example', data: { msg: 'Hello Directive', data: {} }, methods: { getCardNum: function (data, on) { eventHub.$emit('translate', data); } } });
5.最後就可以在vue元件外部,或者檔案外部呼叫getCardNum(data)這個函式,比如在html中就可以 onclick = vm.getCardNum() 這樣來呼叫;vm是父元件 6.注意一定要把父元件的變數名寫上 vm.getCardNum(); 我用vue開發的過程中,遇到java後臺的彈窗頁面想要呼叫我vue元件中的方法,可是後臺的彈窗頁面並沒有在我的vue元件中,其他的頁面想要呼叫的vue中的方法,只能在父元件中呼叫,於是研究了很久,最後確定,將元件中的function()方法傳遞到最上一層的父元件中,將負元件儲存在變數中,最後直接在其他頁面中呼叫方法,呼叫的時候,就不能用@click方法來呼叫了,因為後臺的頁面並不在我的vue元件內部,於是呼叫就是onclick = vm.getCardNum();這樣呼叫,vm是父元件;