vue中有哪些常用的钩子函数:
1.生命周期
2.路由钩子
3.keep-alive两个钩子( activated() deactivated())
4.自定义指令
生命周期
1.beforeCreate 在实例初始化之后,数据观测和事件配置之前被调用 此时data 和 methods 以及页面的DOM结构都没有初始化 什么都做不了
2.created 在实例创建完成后被立即调用此时data 和 methods已经可以使用 但是页面还没有渲染出来
3.beforeMount 在挂载开始之前被调用 此时页面上还看不到真实数据 只是一个模板页面而已
4.mountedel 被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。 数据已经真实渲染到页面上 在这个钩子函数里面我们可以使用一些第三方的插件
5.beforeUpdate 数据更新时调用,发生在虚拟DOM打补丁之前。 页面上数据还是旧的
6.updated 由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。 页面上数据已经替换成最新的
7.beforeDestroy 实例销毁之前调用
8.destroyed 实例销毁后调用
vue-router 路由钩子函数(导航守卫):
路由钩子函数有三种:
全局钩子: beforeEach(全局前置守卫)、 afterEach(全局后置钩子)
路由独享的守卫(单个路由里面的钩子): beforeEnter
组件路由:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave
路由导航守卫:-- beforeEach(全局前置守卫)
keep-alive
keep-alive有两个钩子函数:
actived: 在激活的时候的使用,第一次激活实在mounted之后执行
dectived:在失活的时候使用。
除此之外,keep-alive还提供了三个属性
1.include :记录的是哪些组件可以被缓存
2.exclude: 记录了哪些组件不能被缓存
3.max: 记录的是可以缓存组件的最大数量