标签:ram slot dash alt val item param ide fun
1 | <body> |
对于v-for
指令,通过processFor方法来进行解析
1 | function (el) { |
1 | var forAliasRE = /([sS]*?)s+(?:in|of)s+([sS]*)/; |
从forAliasRE
可知,v-for
中使用in
和of
是一致的
此时inMatch
的值为
1 | [ |
v-for
有一下几种形式
1 | v-for="item in items" |
value是属性值,key是属性名,index是索引值
经过静态内容处理后的p标签对应AST结构为
下面便是根据AST结果生成对应的ren 大专栏 Vue—vder字符串
1 | function genFor ( |
该函数返回了一个_l
函数的字符串
1 | _l((arr),function(item,index){return _c('p',[_v(_s(item.name)+"-"+_s(index))])}) |
_c
是创建一个 vnode 对象_v
是创建一个 vnode文本节点_l
函数就是对应的renderList
函数
1 | function renderList ( |
返回的数据
我们这里传入的val
就是arr
, render 就是生成 p 段落的 render 函数
代码中的三段 if 判断是因为我们v-for
可以遍历的不止数组和对象,还有数组和字符串
最终返回的 ret 是一个 VNode 数组 每一个元素都是一个 p 便签对应的 VNode
标签:ram slot dash alt val item param ide fun
原文地址:https://www.cnblogs.com/sanxiandoupi/p/11693163.html