每一个mvvm框架,生态周期显得格外重要,vue有哪些生态函数,可以看一下,和使用方式
Vue生命周期函数简单罗列
详细解答可以参照 选项 / 生命周期钩子
1. beforeCreate
模块创建之前,this指向的为对象本身,并没有任何实际操作
2. created
所有的getters,data,等等被观测完成,此时可以获取到data内容
3. beforeMount
检测是不是有el相关的内容,如果没有则停止向下执行,直到vm.$mount(el)
挂载上真实元素 此时已经可以获取到被创建的 this.$el
该钩子在服务器端渲染期间不被调用
3.1 render
在Vue中,还有一个render函数,用来渲染页面。但是Component是没有的
<div id="app">
html 模板
</div>
<script>
new Vue({
el:"#app",
template:"template模板",
render(r){ r('h1','函数渲染模板') }
})
</script>
复制代码
render函数选项 > template选项 > html模板.
4. mounted
该钩子在服务器端渲染期间不被调用。
页面模板解析完成后,此时一切准备就绪,但是并不能一定保证所有的子组件被挂载到页面上,如果此时需要用到dom元素的内容时,最好使用this.$nextTick()
5. activated
该钩子在服务器端渲染期间不被调用
这个周期函数是引入vue-router后,启用<keep-alive>
时,进入页面路由映射的组件时触发
6. beforeUpdate
该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行
当data数据被修改后,虚拟dom更新实际dom前调用
7. updated
该钩子在服务器端渲染期间不被调用
页面dom替换完成后调用
8. deactivated
该钩子在服务器端渲染期间不被调用
路由离开当前页面前调用
9. beforeDestroy
该钩子在服务器端渲染期间不被调用
组件被销毁前调用
10. destroyed
该钩子在服务器端渲染期间不被调用 组件销毁后调用
11. errorCaptured
拦截子组件的错误 return false
阻止继续冒泡