Vue中事件系統是非常重要的一部分。事件系統提供了一種解耦視圖層和數據層的方式,當觸發一個事件時,視圖層會通知數據層進行相應的修改。
在Vue中,我們可以使用$emit方法觸發事件,使用$on方法監聽事件,通過$off方法取消監聽事件,比如我們可以在一個組件中觸發一個事件,另一個組件監聽該事件并進行相應的操作:
//觸發事件 this.$emit('eventName', arg1, arg2); //監聽事件 this.$on('eventName', (arg1, arg2) =>{ //do something }); //取消監聽事件 this.$off('eventName');
除了以上方法,Vue還提供了一些系統事件,這些事件可以幫助我們更好的處理Vue應用的生命周期以及用戶操作。比如我們可以監聽beforeCreate事件,它在Vue實例初始化之后、數據觀測(data observer)和event/watcher事件配置之前被觸發:
new Vue({ beforeCreate() { console.log('beforeCreate'); } })
Vue還提供了很多其他的系統事件,比如created、mounted、activated、deactivated、beforeUpdate、updated、beforeDestroy等等,這些事件可以讓我們更好地控制Vue的生命周期。