眾所周知,vue.js為我們提供了四個事件api,分別是$on,$once,$off,$emit。
初始化事件在vm上建立乙個_events物件,用來存放事件。_events的內容如下:
存放事件名以及對應執行方法。/*初始化事件*/$on方法用來在vm例項上監聽乙個自定義事件,該事件可用$emit觸發。export function initevents (vm: component)
}
vue.prototype.$on = function (event: string | array, fn: function): component$once監聽乙個只能觸發一次的事件,在觸發以後會自動移除該事件。} else
}return vm
}
vue.prototype.$once = function (event: string, fn: function): component$off用來移除自定義事件on.fn = fn
vm.$on(event, on)
return vm
}
vue.prototype.$off = function (event?: string | array, fn?: function): component$emit用來觸發指定的自定義事件。// array of events
/*如果event是陣列則遞迴登出事件*/
if (array.isarray(event))
return vm
}// specific event
const cbs = vm._events[event]
/*github:
/*本身不存在該事件則直接返回*/
if (!cbs)
/*如果只傳了event引數則登出該event方法下的所有方法*/
if (arguments.length === 1)
// specific handler
/*遍歷尋找對應方法並刪除*/
let cb
let i = cbs.length
while (i--)
}return vm
}
vue.prototype.$emit = function (event: string): component " is emitted in component ` +`$ but the handler is registered for "$". ` +
`note that html attributes are case-insensitive and you cannot use ` +
`v-on to listen to camelcase events when using in-dom templates. ` +
`you should probably use "$" instead of "$".`)}
}let cbs = vm._events[event]
if (cbs)
}return vm
}
Vue事件機制
眾所周知,vue.js為我們提供了四個事件api,分別是 on,once,off,emit。初始化事件 初始化事件在vm上建立乙個 events物件,用來存放事件。events的內容如下 存放事件名以及對應執行方法。初始化事件 export function initevents vm compon...
mysql事件機制 mysql事件機制 定時任務
定時任務是老生常談了,因為我們總是需要定時修改特定的資料。實現它的方法肯定不止一種,但我在相當長一段時間裡都是用程式編碼去做的,今天突然想到 為什麼一定要採用呼叫的方式?用資料庫自身的能力去實現不是更好麼?通過了解,mysql的事件機制可以完成定時任務,其原理是在指定的時間呼叫指定的儲存過程。現在很...
mysql事件機制 mysql事件機制 定時任務
定時任務是老生常談了,因為我們總是需要定時修改特定的資料。實現它的方法肯定不止一種,但我在相當長一段時間裡都是用程式編碼去做的,今天突然想到 為什麼一定要採用呼叫的方式?用資料庫自身的能力去實現不是更好麼?通過了解,mysql的事件機制可以完成定時任務,其原理是在指定的時間呼叫指定的儲存過程。現在很...