render
这段代码最关键的是 render
方法的调用,我们在平时的开发工作中手写 render
方法的场景比较少,而写的比较多的是 template
模板,在之前的 mounted
方法的实现中,会把 template
编译成 render
方法,但这个编译过程是非常复杂的,我们不打算在这里展开讲,之后会专门花一个章节来分析 Vue 的编译过程。
在 Vue 的官方文档中介绍了 render
函数的第一个参数是 ,那么结合之前的例子:
再回到 _render
函数中的 render
方法的调用:
可以看到,render
函数中的 createElement
方法就是 vm.$createElement
方法:
vm._render
最终是通过执行 createElement
方法并返回的是 vnode
,它是一个虚拟 Node。Vue 2.0 相比 Vue 1.0 最大的升级就是利用了 Virtual DOM。因此在分析 的实现前,我们先了解一下 Virtual DOM 的概念。