keep-alive
作为标签包裹使用时,会缓存这个实例而不是销毁他,
如果包裹在坑 || 组件的外面,不想要某一个页面被缓存:
三种方式:路由元信息 || 黑名单,白名单 || 在页面中放置两个坑
1》路由元信息 在坑里面判断路由的元信息
在路由的信息内与path,name同级写上meta:{ 自定义属性名:true} 在坑上面用v-if=“$router.meta.自定义属性名==true”来判断 如果等于true那么该页面就不会被缓存
2》使用keep-alive的属性:黑名单:exclude,白名单include ,最大数max
黑名单exclude 需要不被缓存的页面 放进黑名单的数组内 || 在静态资源管理内创建一个js文件,导出一个数组,数组内放置需要进入黑名单的组件名 在定义坑的页面引入赋值 作为keep-alive的黑名单的属性 值使用
白名单include 需要被缓存的页面 放进白名单的数组内 ||
最大数max 假如设置的max为10,那么如果被黑名单限制的页面数量超过10时,会从1的地方删除,然后把后面的往前依次往前面推进一位
3》在页面中放置两个坑 一个存放被缓存的(用keep-alive包裹) 另一个存放不被缓存的(不用包裹) 用v-if=“$router.name=='组件名'”来判断
注:如果页面被缓存 那么该页面的激活钩子函数activated和失活的钩子函数deactivated就派上用场啦!因为页面是被缓存的,所以该页面的创建created生命周期函数,mounted以及这种类似的生命周期函数就会失效 具体的参照页面的11个生命周期函数自行思考!!!