Open
Description
vue的源码阅读
vue的使用一直伴随着本人的前端生涯,从刚刚开始的的
vue@1.0.15
到vue@2.6.0
。
一开始只是在官网的API文档中翻江倒海,后来是到各大社区中东翻西找,现在还是回归到源码来大佬淘沙。
从vue的1.x版本起,就断断续续再看源码,现在到vue2.x版本还是在断断续续地看。目的性不强,没有想着折腾篇读后感,去社区混下知名度。这两三年过去了,发现源码好像没看个完全,在社区还是默默潜水。
想了想,还是要留下点什么,记录点什么。
源码:compiler/helpers.js,当前git版本号是dbc05825
这文件是在compiler
目录下,该目录下的代码主要工作内容是解析template
就是模板的内容,而该文件helpers.js
就是一个工具集,提供一些工具方法来便于解析模板。
function pluckModuleFunction // 从同类型modules提取相同的key的值出来
function addProp // 增加到props属性集合
function addAttr // 根据dynamic参数,分别加入到dynamicAttrs或attrs集合
function addRawAttr // 加入到attrsMap集合,以name为key,同时push入attrsList数组
function addDirective // 把指令都收集到directives集合中
function prependModifierMarker // 用于处理加了修饰的事件处理的事件名,例如对于click.capture根据dynamic参数,分别产生`_p(click,!)`或`!click`的事件名,主要是在下面的addHandler上归类到对于的事件集合中
function addHandler // 用于处理ast节点上的绑定的事件,将分别加入到nativeEvents或events集合中
通过查看git的log记录,已有52次提交记录。主要涉及到的issue有:
#3468:确保v-modal比v-on有更高的优先级。在该文件中,主要就是给addHandler
暴漏出个important
参数,这可以控制在添加事件时候,事件是加在队列头还是尾部。
#8492:把事件修饰符为click.right/click.middle
规范为contextmenu
或mouseup
事件
'#7127':有更加详细的错误信息输出
'#4267':v-on
支持once
修饰符
'#9373':支持动态指令参数
#7020
:实现.right
和.middle
修饰符下的事件监听,其实际是监听contextmenu
和mouseup
事件
Metadata
Metadata
Assignees
Labels
No labels