之前讲到了创建Vue对象到BeforeCreated之后就会进行生命周期的初始化,这里我们将生命周期初始化之后的事件初始化initEvents。
export function initEvents (vm: Component) {
vm._events = Object.create(null)
vm._hasHookEvent = false
const listeners = vm.$options._parentListeners
if (listeners) {
updateComponentListeners(vm, listeners)
}
}
事件初始化的过程看起来很少,但是内容其实一点也不少。
vm为Vue对象。
首先设置Vue对象的监听事件的事件对象为空的对象,需要注意的是这个对象没有原型链。
然后初始化Vue对象的_hasHookEvent属性(是否有监听Hook事件)值为false。
使用变量listeners 获取此Vue对象上的$options._parentListeners属性,这个属性是获取在此组件上父组件上定义的监听的函数
如果$options._parentListeners的值不为undefined更新此组件上的监听器。
更新组件的监听器我们将在后面的章节进行讲解。
整个事件监听初始化函数主要是初始化本组件的监听事件对象和Hook事件监听,以及更新父组件的监听器。