# Vue主线剧情之vm.$mount

# 前言

上篇忽略了src/platforms/web的说明,这里补上。

实际上Vue在打包的时候,入口优先走的src/platforms/web目录,有两种入口:

  • compiler模式
  • runtime模式

runtime模式就是使用webpack构建的,执行的时候有render方法,template用vue-loader去解析的。

compiler模式可以说成是用cdn的方式(举例而已),template模版需要vue执行之后再编译。

# runtime模式的$mount

我们首先看一下runtime的: $mount实现

我们可以看到主要接收两个参数 el、hydrating,el如果是浏览器就设置为选中项(可能是node),另一个还不知道什么意思。先略过,看后面的mountComponent方法.

mountComponent方法来自: core/instance/lifecycle

嘿,boys~

到这里又看到了我们熟悉的callhook(vm, xxx), 还有我们在写组件的时候经常遇到的 Watcher

那我们根据这里就可以得到以下流程:

# 总结

通过我们对这个public mount methed的理解,基本上已经清楚,这块主要负责的是生命周期中 beforeMount -> mounted 的过程,也就是组件的渲染。

不过,我们好像并没有看到触发 updated 的钩子。猜测是在哪里呢,update相关的么,估计是在vm._update里咯。下面就让我们去找一下它了解一下。

这里其实还有几个地方并不知道是什么作用,留作后面探究。比如 vm._rendernoophydrating 这几个。

# 致谢

感谢大家阅读我的文章,如果对我感兴趣可以点击页面右上角,帮我点个star。

作者:前端小然子

链接: https://xiaoranzife.com/guide/vue/vm.$mount.html

来源:前端小然子的博客

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上次更新: 2019-11-21 9:49:18 ├F10: AM┤