vue的事件绑定原理
# 原生事件绑定
原生事件的绑定是通过addEventLister绑定给真实的元素的;
# 整体流程
- 模板编译,生成抽象语法树,转为代码
- 在组件渲染的时候生成VNode
- VNode生成真实的DOM节点或者组件时候进行事件绑定
# 组件事件的绑定
组件事件绑定是通过vue自定义的$on实现的。如果要在组件上使用原生事件,需要加.native修饰符,这样就相当于在父组件中把子组件当做普通html标签,然后加上原生事件。
$on、$emit
是基于订阅观察者模式的,维护一个事件中心,on的时候将事件按名称存在事件中心里,称之为订阅者,然后emit将对应的事件进行发布,去执行事件中心里的对应的监听器