vue 中的events

咱们都知道dom操做会触发时间,vue组件本身也有一套事件vue

在initMixin中,在合并options时能够看到node

opts._parentListeners = vnodeComponentOptions.listeners

这个代码,咱们能够知道options的listeners会含有继承组件的监听器,
咱们initEvents(vm)会初始化事件和监听器数组

摘录一些代码dom

if (listeners) {
    updateComponentListeners(vm, listeners)
  }

  target = vm
  updateListeners(listeners, oldListeners || {}, add, remove, createOnceHandler, vm)
  target = undefined

// updateListeners里边是这样的
    add(event.name, cur, event.capture, event.passive, event.params)

    function add (event, fn) {
      target.$on(event, fn)
    }
// $on里边是这样的 
(vm._events[event] || (vm._events[event] = [])).push(fn)

最后就是往vm的_events属性里边添加事件名称的数组,数组里边包含监听事件列表code

相关文章
相关标签/搜索