Vue源码解读——数据驱动(二)
数据驱动的理解 vue是一种mvvm模式的js库,特点就是数据驱动,数据双向绑定,组件化。由于前端变成过程中频繁的操作dom是很消耗性能而且代码不易维护。数据驱动可以让我在开发过程中只关注数据和视图,减少dom操作提高性能,使项目更易读,易维护。 new Vue 发生了什么 new Vue的时候会通过我们传入的参数解析,把el通过mount挂载到vm上,接管DOM,渲染数据,目的是为了把模板最终渲染成DOM。 Vue实例挂载的实现 主要通过Vue.prototype.$mount实现示例挂载,$mount返回mountComponent函数,会执行vm._update(vm._render(),hydrating)渲染真实DOM,并且会有一个渲染Watcher,进行监听,当数据改变的时候,调用vm._update重新渲染。 分析下render函数 Vue.prototype._render会调用我们在初始化Vue时传入的render,并且调用时,返回createElement,createElement返回的是vnode虚拟节点 vue如何实现调用data的时候进行劫持的 vue通过proxy代理模式对data数据进行代理。当我们访问data中的数据的时候,可以省略data,直接访问data中的字段获取值 什么时候虚拟DOM,vnode 虚拟dom就是通过js对真实dom的一个抽象