【Vue】vue,AST,render,virtual dom的关系?

众所周知,浏览器只能识别html,js,css。所以要识别vue文件,vue compiler做了几件事,先把template中的代码转换成AST抽象语法树,然后再把AST抽象语法树转换成render函数。接着执行render函数会生成virtual dom(虚拟Dom),最后渲染到真实的Dom上。

举个通俗的例子,一个vue文件就是一个剧本,导演(vue compiler)翻看剧本,然后整理出整个剧本的人物关系,场景,戏份(转换成AST)。下一步导演要排戏,比如场景1是演员1和演员2要在一个雨天用跳舞的方式battle。场景二是演员1和演员3在学校的阳台说倒立眼泪就不会流下来。场景三是…,这个过程就是导演生成表演剧本(render)的过程即vue compiler根据AST生成render函数。有了表演剧本,演员们就可以进行彩排(virtual dom)了,这个过程就是生成虚拟节点。等演员准备好开拍了,就是virtual Dom渲染到真实的DOM上,后续要改台词,改戏,改演员,都是局部修改(不需要换掉整个剧组),然后再根据最新彩排实拍。

这里只是一个简单的比喻,帮助更好理解他们之间的关系,具体是怎么实现的,可以再深入研究。(我是不去研究了,大概知道长啥样为啥这样做就行了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值