vue中缓存路由组件
上一篇简单的和大家介绍了关于,在本篇我会给大家介绍一下关于vue中缓存路由组件,在我们之前讲解的路由的使用中如果我们需要获取一个表单的数据,都是客户或者我们在使用表单填数据的时候可以 不会马上填好,中途会切换出去其他地方,但是呢切出去在回来我们的数据就会丢失,这样的用户体验就很差,使用我们要将这些临时的数据存起来。
![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0e02e779c444419d80bf76c62fa6829b~tplv-k3u1fbpfcp-watermark.image?)
这个时候就可以使用到我们的缓存路由组件也就是`keep-alive`标签这个标签的意思就是保持活跃,帮助我们的组件不被销毁,这种标签还有一个属性`include=" "`是指定被包裹下面的哪一个不被销毁。`include="组件名"`
```js
<template>
<div>
<h2>Home组件内容</h2>
<div>
<ul class="nav nav-tabs">
<li>
<router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
</li>
<li>
<router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
</li>
</ul>
<!-- 缓存多个路由组件 -->
<!-- <keep-alive :include="['News','Message']"> -->
<!-- 缓存一个路由组件 -->
<keep-alive include="News">
<router-view></router-view>
</keep-alive>
</div>
</div>
</template>
<script>
export default {
name:'Home',
/* beforeDestroy() {
console.log('Home组件即将被销毁了')
}, */
/* mounted() {
console.log('Home组件挂载完毕了',this)
window.homeRoute = this.$route
window.homeRouter = this.$router
}, */
}
</script>
```
### 1.缓存路由组件
1. 作用:让不展示的路由组件保持挂载,不被销毁。
2. 具体编码:
```vue
<keep-alive include="News">
<router-view></router-view>
</keep-alive>
```
注意:要看我们展示的组织在谁的里面,就在哪里写。因为缓存路由组件只能在组件外使用,如果我们写在组件内部将会失效。
小技巧当我们需要缓存的组件过多但是又不是全部的时候,可以通过将include变成`:include`这样我们就可以在值里面写数组了`:include=“['xx','bbb','ccc']”`
接下来我和大家讲两个新的生命周期钩子,如果我们使用了上面缓存路由组件会出现一个尴尬的事情这个就是beforeDestroy的方法被取消了也可以说是失效了,但是我们又需要在这个组件中使用这个功能怎么办呢?这个时候我们就需要知道路由组件所独有的两个钩子了他们就是```activated```和```deactivated```
### 2.两个新的生命周期钩子
1. 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。
2. 具体名字:
1. ```activated```路由组件被激活时触发。
2. ```deactivated```路由组件失活时触发。
- 点赞
- 收藏
- 关注作者
评论(0)