* 什么是生命周期?
|- 每个Vue实例在被创建时都要经过一系列的初始化过程:
开始创建 -> 初始化数据 -> 编译模板 -> 挂载DOM-渲染 -> 更新-渲染 -> 销毁等一系列过程
通俗而言:Vue实例从创建到销毁的过程
生命周期分为8个过程:创建前,创建后,挂载前,挂载后,更新前,更新后,销毁前,销毁后。
* vue生命周期的作用是什么?
|- 在Vue实例经过一系列初始化的过程中也会运行一些 叫做 生命周期钩子 的函数, 生命週期裡邊这些事件鉤子,给予了用户在不同阶段可以添加自己代码的机会。
* 第一次页面加载会触发哪几个钩子?
|-beforeCreate
实例刚刚被创建,实例初始化之后,数据观测和事件配置之前
|-created
在实例创建完成后被立即调用。
在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见
|-beforeMount(该钩子在服务器端渲染期间不被调用)
模板编译挂载之前,HTML界面没生成在挂载开始之前被调用:相关的 render 函数首次被调用。
|-activated(该钩子在服务器端渲染期间不被调用)
keep-alive 组件激活时调用(只有在keep-alive组件才会被调用)
|-mounted(该钩子在服务器端渲染期间不被调用)
模板已经挂载完成(DOM 渲染在 mounted 中就已经完成了);该钩子在服务器端渲染期间不被调用。
* 每个周期具体适合哪些场景?
例如:
beforecreate : 譬如常见的加loading事件
created :在这结束loading,还做一些初始化,实现函数自执行
mounted : 在这发起后端请求,拿回数据,配合路由钩子做一些事情
beforeDestory: 你确认删除XX吗? destoryed :当前组件已被删除,清空相关内容
* created和mounted的区别?
beforecreated:el 和 data 并未初始化
created:完成了 data 数据的初始化,el没有 渲染前调用,初始化某些属性值,再渲染
beforeMount:完成了 el 和 data 初始化
mounted :完成挂载 渲染后再调用,初始化页面完成后,再对DOM节点进行操作
* vue获取数据在哪个周期函数?
一般created/beforeMount/mounted 皆可 正常获取在 created 里面即可,如果涉及到需要页面加载完成之后(DOM操作)的就用 mounted