vue深入解析之render function code详解

2020-06-12 21:12:00易采站长站整理
_s(ct) 
而不是
 _s(ct())
就能正确引用计算属性值的原因,计算属性快就快在了这里

      4)

v-for="item in items"
被解析成了


_l((items),
function(item) {
return _c('div', [_v("ntt " + _s(item.text) + "nt ")])
})

可见 _l 跟 for-each 很类似

      5) 至于

v-on:click 
则解析成了


_c('button', {
on: {
"click": bindClick
}
}

      6) 再来看看 _c,

c->create->createNode
, 假设这个方法就是创建虚拟节点,回头看上述代码,是不是挺有道理,_c 创建根节点,传入的子节点同样需要这个方法创建。找找源码验证下 src/core/vdom/vnode.js,以下中文注释是我加的


constructor (
tag?: string, //标签名
data?: VNodeData, //属性数据,事件监听等
children?: ?Array<VNode>, //子节点
text?: string,
elm?: Node,
context?: Component,
componentOptions?: VNodeComponentOptions
) {
...
}

至此,也算是自圆其说了

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对软件开发网的支持。