美文网首页
vue源码赏析二(摸清骨架)

vue源码赏析二(摸清骨架)

作者: 梦行乌托邦 | 来源:发表于2020-06-20 00:04 被阅读0次
  1. 找出入口文件
    让我们回到 vue源码赏析一 中第3步,这里有几个重要的信息
    img1
    找到 scripts/config.js,搜索 web-full-dev
    img2
    发现入口文件是 web/entry-runtime-with-compiler.js,不过外层没有web文件夹,定位到 resolve 方法
    img3
    找到 scripts/alias.js
    img4
    于是找到 web/entry-runtime-with-compiler.js 对应的真实目录是 src/platforms/web/entry-runtime-with-compiler.js ,打开这个文件,开始阅读之旅!
  1. 读源码: src/platforms/web/entry-runtime-with-compiler.js
    img5

1:扩展$mount方法
2:flow语法(前端技术还真是层出不穷)
Facebook 推出的 Flow 是一个静态类型检测工具;在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用。Flow 弥补了 JavaScript 天生的类型系统缺陷。利用 Flow 进行类型检查,可以使你的项目代码更加健壮。
3:这种类型的代码,在我们读源码时,可以忽略

img6

1:判断options中有没有传递render方法,没有的话需要处理一下template
2:dom id:template: '#app'
3:dom节点:template:document.getElementById('app')
4:如果没有传递template选项,则从el选项上取html。由此看出template比el优先级高

img7

1:针对传递了template选项的情况做处理,相当于img6中的2+3
2: 编译函数
3:将template转化成render
4:这里可以看出原来的$mount派上用场了

  1. 从2步骤找到Vue来源
    img8
    打开 src/platforms/web/runtime/index.js
    img9
    这里面主要是处理了$mount,方法 mountComponent 在后面的赏析文章中给出解读(TODO
  1. 从3步骤找Vue来源
    img10
    打开 src/core/index.js
    img11
    这里面主要的方法是 initGlobalAPI(Vue),用来初始化Vue的全局方法,如:Vue.set,Vue.directive,Vue.mixin......,具体解读在后面的赏析文章中给出(TODO
  1. 从4步骤找Vue来源
    img12
    打开 src/core/instance/index.js (这就是vue源码赏析一中找到的vue入口文件哦),顺藤摸瓜到这个位置就找到了Vue真正定义的地方

相关文章

网友评论

      本文标题:vue源码赏析二(摸清骨架)

      本文链接:https://www.haomeiwen.com/subject/hasvxktx.html