runtime-dom
runtime-dom
是针对浏览器的运行时, 包括dom操作和属性操作并导出一个预设的render
函数
patchEvent 中的事件换绑
在patchEvent
中, 初次传入事件时, 会创建一个调用函数invoker
, 并绑定在元素的_vei
(vue_event_invoker)属性中, 该函数有一个value
属性, 作为函数调用的时候, 会执行value
属性对应的函数. 初次调用会将这个invoker
绑定到元素相应的事件监听器
在事件更新中, 会先判断el
的_vei
中是否有事件名相对应的invoker
, 如果有, 会将该invoker
的value
属性替换为新的函数, 实现事件换绑, 而不是重新绑定事件,减少性能消耗
在事件移除中, 会将该invoker
从_vei
中删除, 并且调用removeEventListener
方法移除事件