# 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._render
、noop
、hydrating
这几个。
# 致谢
感谢大家阅读我的文章,如果对我感兴趣可以点击页面右上角,帮我点个star。
作者:前端小然子
链接: https://xiaoranzife.com/guide/vue/vm.$mount.html
来源:前端小然子的博客
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。