原生和自定义区别

来源:8-10 event(9)

旋涡鸣人_

2019-02-14

function updateDOMListeners (oldVnode: VNodeWithData, vnode: VNodeWithData) {
  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
    return
  }
  const on = vnode.data.on || {}
  const oldOn = oldVnode.data.on || {}
  target = vnode.elm
  normalizeEvents(on)
  updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context)
  target = undefined
}

这个似乎只是 在每一次 invokeCreateHooks 里面 会调用到这个cbs里存的这个方法。 说明 invokeCreateHooks 和 updateDOMListeners 只针对于 原生事件

这么理解对吗?

另外组件的事件 是在子组件初始化的时候 时候生成的 其实是父组件绑定的

那子组件内部可以绑定自定义事件吗? 看了下你那个文章 好像说 只有组件本身才可以有自定义事件。。。。那这样不会有些限制吗。不够自由?

而组件本身为了区别自定义事件 是不是 必须的加 .native 修饰符 不加的化 就变成自定义了吗, 比如 click?

写回答

1回答

ustbhuangyi

2019-02-15

updateDOMListeners 就是更新原生事件。
组件内部绑定自定义事件很容易啊,在组件内部直接通过 this.$on 就可以了。
.native 修饰符就是为了在组件节点上绑定原生的 DOM 事件,如果不加就是自定义事件了
//img.mukewang.com/szimg/5c6594c400012a2e13900366.jpg

0
1
旋涡鸣人_
非常感谢!
2019-02-15
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程