$dispatch 是 vue.js 中一個常用的 API,用于向父級組件發送事件。在 vue.js 中,組件之間是獨立的,皆有自己的數據,當數據變化時需要作出相應的變化。可是有些時候,我們需要在子組件中讓父組件做出一些操作,這時候就可以使用 $dispatch 這個 API。
Vue.component('component-1', { template: '組件1', methods: { emitToParent: function () { this.$dispatch('custom-event-name', 'some data'); } } });
在這個例子中,我們在組件1中綁定了一個點擊事件。當點擊事件被觸發時,會向組件1的父級組件(即調用組件1的組件)發送一個自定義事件“custom-event-name”,并帶有參數“some data”(可以是任意類型的數據)。接下來,在父組件中監聽這個事件,即可得到來自子組件的傳參。
new Vue({ el: '#app', methods: { actionInParent: function (data) { console.log('receive from child', data); } }, ... created: function () { this.$on('custom-event-name', this.actionInParent); } });
在這個例子中,我們在父組件中定義一個方法 actionInParent 作為處理子組件傳參的函數。在父組件創建時監聽“custom-event-name”事件,并綁定處理函數 actionInParent。當然,如果在組件中沒有監聽到這個事件,這個事件并不會產生任何副作用。
總之,$dispatch 是 vue.js 中一個非常方便的事件發送 API,可以通過它實現組件之間的通信,從而實現更高效、更靈活的數據交互。