vue源码探索之vue完整版本和运行时版本的差异

127 阅读1分钟

绘图1.png

主要区别就是完整版本比运行时版本多了将template转化为render函数的功能。会获取Vue原型上的$mount方法,然后重写它

  • 首先会获取Vue.prototype.$mount存储到变量mount里,然后重写Vue.prototype.$mount

  • 先获取el对象

  • 判断el对象是否为body或者html,如果是直接返回Vue

  • 然后判断是否存在render选项,如果不存在

  • 获取template选项,判断template是字符串还是元素,最后拿到dom的innerHTML内容

  • 拿到innderHTML内容之后,调用compileToFunctionstemplate转为render函数

  • 最后返回mount.call(this, el, hydrating)渲染dom