一、生命周期函数
beforeCreate:创建前
1、当前vue实例化的时候会做一个初始化的操作,在这个生命周期函数里面我们可以做初始化的loading
2、在当前函数里面是访问不到data中的属性,但是可以通过vue的实例对象进行访问
created:创建后
1、当beforeCreate执行完毕以后,会执行created. 在当前函数中我们可以访问到data中的属性
2、当前生命周期函数执行的时候会将data中所以的属性和methods身上所以的方法添加到vue的实例身上,同时
会将data中所有的属性添加一个getter/setter方法
3、如果需要进行前后端上数据交互(ajax请求的时候) 需要在当前生命周期中使用
beforeMount:挂载前(渲染)
render函数初次被调用---->数据和模板没有进行相结合,同时还没有渲染到html页面上
可以在此做渲染前data中数据最后的修改
mounted:挂载后
1、数据和模板进行相结合,渲染成真实的DOM结构
2、在当前生命周期函数里面我们可以访问到真实的DOM结构,
3、在vue中我们可以通过refs.属性
beforeDestroy:销毁前
销毁之前还可以访问到DOM结构 以及相关的数据(data)
在这个生命周期函数中我们可以将绑定的事件进行移除
destroyed:销毁后
在这个生命周期函数中会将数据和模板之间的关系断开(不是你的做的)
在这个生命周期函数中我们还是可以访问到data中的属性
但是访问不到真实的DOM结构了
beforeUpdate:更新前
只要data中的属性发生了改变,那么这个生命周期就会执行,render函数再次会执行
在这个生命周期函数中我们可以对数据进行最后的修改,同时也可以访问到最新的DOM结构和数据
updated:更新后
在当前生命周期函数中我们可以访问到最新的DOM结构(数据更新后最新的DOM结构)和数据
二、路由守卫
路由钩子函数有三种:
全局钩子: beforeEach(全局前置守卫)、 afterEach(全局后置钩子)
路由独享的守卫(单个路由里面的钩子): beforeEnter
组件路由:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave
三、keep-alive
activated:当缓存组件有被显示出来时,会触发这个钩子函数
deactivated:当缓存的组件隐藏时,会触发这个钩子函数
四、自定义指令
bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。
inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
update:所在组件的节点更新时调用,但是可能发生在其子节点更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新
componentUpdated:指令所在组件的节点及其子节点全部更新后调用。
unbind:只调用一次,指令与元素解绑时调用。