坏蛋Dan
知乎@坏蛋Dan
发布时间:2024.1.4

前言

我们终于分析完了(其实还有一些没分析,比如inlineTemplate的场景)。

这篇文章是用来给路标的。

正文

调用入口分析、选择测试单元、处理仅有non setup script block的场景,以及$ref语法糖处理。

坏蛋Dan:vue/compiler-sfc源码分析学习--part2:如何处理script--day1

2. 处理同时存在setup blocknon setup blocknon setup block以及如何分辨变量的类型。

坏蛋Dan:vue/compiler-sfc源码分析学习--part2:如何处理script--day1

3. 处理setup block,包括props、emits等的初步处理。这块是量最大的代码,也是比较重要的。

坏蛋Dan:vue/compiler-sfc源码分析学习--part2:如何处理script--day1

4. 这块也是比较重要的,继续处理数据(主要是propsemits的场景),以及组装成setup函数的参数。

坏蛋Dan:vue/compiler-sfc源码分析学习--part2:如何处理script--day1

5. 生成setup函数语句,合并之前的数据,最终组装成非语法糖的代码。返回数据。

坏蛋Dan:vue/compiler-sfc源码分析学习--part2:如何处理script--day1

最后

这块终于分析完了(虽然还有些代码没分析,比如inlineTemplate)。

怎么说呢?没有弯弯绕绕(小声bb: 比如webpack)又或者涉及到算法的代码。整体看下来,其实就是在对babel转换出来的AST做处理,对任何可能存在的场景做判断处理。

前置学习条件也就需要对babelAST有基础知识(当然,找入口以及如何调试又是另一个问题)。

我们接下去按照之前的目标,该分析template了。

坏蛋Dan:vue/compiler-sfc源码分析学习2--确认后续分析目标

另外part1,有兴趣可以看下~

坏蛋Dan:vue/compiler-sfc源码分析学习--part1: parse入口分析

编辑于 2022-12-06 19:18・IP 属地广东