最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue3源码分析一 首次渲染流程

    正文概述 掘金(yuwenbin)   2020-12-18   497

    版本是3.0.4的,直接访问这里看完整源码

    先看下面的简单例子:

    vue3源码分析一   首次渲染流程

    运行效果是这样的:

    vue3源码分析一   首次渲染流程

    现在我们一起看看“哈哈哈”这三个字是怎么渲染出来的,先看看源码的这个位置

    vue3源码分析一   首次渲染流程

    打印出这些内容

    vue3源码分析一   首次渲染流程

    这里可以看出其实就是对这段代码的描述

    vue3源码分析一   首次渲染流程

    最外层包含tag是div,里面包含一个子元素children,children里面含有一个content,存放变量text

    继续往下走,看到源码这个位置

    vue3源码分析一   首次渲染流程

    打印出这些内容

    vue3源码分析一   首次渲染流程

    看到个字符串,是一个很像函数的字符串,是的,这个字符串是可以作为参数,通过new Function转成真正的函数。从函数体大概可以了解到里面的逻辑:_createBlock函数处理div标签,第三个参数是div里面的东西,使用_toDisplayString函数处理,里面包含变量text

    看看这个函数运行后返回的结果,源码定位到这里

    vue3源码分析一   首次渲染流程

    打印出这些内容

    vue3源码分析一   首次渲染流程

    从运行结果可以看出已经把变量text赋值成“哈哈哈”了,后面就是patch过程,也就是对比前后两个subtree的不同从而更新dom,为什么会出现两个subtree呢?因为我们在跟页面交互时会改变状态,重新生成一个新的subtree,然后新旧subtree就可以对比了。但是我们现在只看初始化(首次渲染)的过程,没有上一个subtree,patch就放到后面讲。

    从上面可以知道大概的流程:

    生成ast====>生成render函数====>生成subtree====>patch====>渲染页面

    后面会具体说下每个阶段的细节。


    起源地下载网 » vue3源码分析一 首次渲染流程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元