生命周期钩子函数Vue实例有一个完整的生命周期,即从创建、初始化数据、编译模板、挂载Dom->渲染、更新->渲染、卸载等一系列过程,我们称之为Vue的生命周期Vue中组件生命周期调用顺序生命周期说明beforeCreate创建组件实例时,创建的组件实例在组件的属性生效之前已经完全创建,属性也绑定了,但是真正的dom还没有已生成,$el尚不可用。使用beforeMount在挂载开始前调用:第一次调用相关的render函数,mounteddel被新创建的vm.$el替换,挂载到实例后调用这个hook。补丁前更新组件数据更新后,activatedkeep-alive独占。当组件被激活时,它被称为deadactivatedkeep-alive。当组件被销毁时,它会调用beforeDestory。在组件销毁之前,它会调用destoryed。DOM的体积非常大,单个div中的dom属性多达294个;VirtualDOM使用一个原生的JS对象来描述一个DOM节点,因此它比创建一个DOM便宜很多。VNode是对真实DOM的抽象描述。它的核心定义无非是几个关键的属性,比如标签名、数据、子节点、键值等,其他属性用来扩展VNode的灵活性,实现一些特殊的功能。由于VNode只是用来映射到真实的DOM上进行渲染,不需要包含操作DOM的方法,所以非常轻量简单。VirtualDOMtorealDOM需要经过以下过程:VNode的create,diff,patchv-model双向数据绑定原理Vue双向数据绑定是通过数据劫持结合发布订阅模式实现的,也就是说,数据和视图同步,数据改变,视图随之改变,视图改变,数据也随之改变;核心:Object.defineProperty()方法。v-model本质上是语法糖,v-model内部对不同的input元素使用不同的属性并抛出不同的事件asevent子页面
