不设置keep-alive
,离开当前路由时,会调用beforeDestroy
和destroyed
来销毁。
当设置keep-alive
之后,不会直接调用这组销毁生命周期函数,而是在生命周期函数中新增两个:activated
和deactivated
。
第一次进入页面时,生命周期函数执行简单来说是这样的:
当退出时,会触发deactivated()
函数;当再次进入该页面时,只会执行activated()
函数。
配合导航守卫,手动调用生命周期销毁函数
beforeRouteLeave (to, from, next) {this.destroy();next();}