每个 Vue 实例在被创建时都要经过一系列的初始化过程:如设置数据监听,编译模版,将虚拟dom挂载到实体dom上。在此期间会运行一些生命周期钩子函数,让我们开发者能在此过程中添加自己的代码,对实例进行自定义操作。具体可分三个阶段:挂载阶段,更新阶段,销毁阶段。
挂载阶段
beforeCreate(创建前):
在实例初始化之后,数据观测和事件绑定之前。此时组件的选项对象还未创建,el和data并未初始化,methods,computed 还无法访问。
created(创建后):
在实例创建完后被调用。在此生命周期钩子调用前,已经完成了data的初始化。methods,computed属性,props也已初始化。但是,挂载还没有真正开始,$el钩子不可见。在这个生命周期钩子中,我们可以对vue实例进行预处理。例如调用methods/computed,对data进行处理;执行ajax请求数据等。
beforeMount(挂载前):
在实例被挂载前调用。此生命周期钩子调用前,实例已完成如下配置:
1.查看是否配置了el,如果没有,即没有实例可挂载的节点,则停止编译。可通过调用vm.$mounted(el)重新触发;
2. 查看是否有templeta(模版)。若有,则调用vue template compiler将模版编译为render函数;若没有,则将el的外层html作为模版,编译