Vue路由组件的缓存keep-alive和include属性

Vue路由组件的缓存keep-alive和include属性

  • 功能:浏览器页面在进行切换时,原有的路由组件会被销毁。通过缓存可以保存被切换的路由组件。
    • 例子:在页面上填好的信息当进行页面切换再转回原来的页面时,原本信息被清空了需要重新填写

keep-alive和include属性的搭配使用

  • 功能:切换路由时,保留被切换路由组件。
  • 格式:
    • <keep-alive> <router-view/> <keep-alive>
      • 功能:保存所有路由组件
    • <keep-alive include="组件名称"> <router-view/> <keep-alive>
      • 功能:保存include指定的组件,数组形式可保存多个
<template>
    <div>
        <div>
            <ul>
                <li><router-link to="/A">A1 Router-Link</router-link></li>
                <li><router-link to="/B">B1 Router-Link</router-link></li>
            </ul>
        </div>
        
        // 保存所有路由组件
        <keep-alive>
            <router-view></router-view>
        </keep-alive>
        
        // 保存include指定的组件,可保存多个
        <keep-alive :include="['A', 'B']">
            <router-view></router-view>
        </keep-alive>
    </div>
</template>

<script>
    export default {
        name : 'App'
    }
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2 中,你可以使用 `keep-alive` 组件缓存指定的组件。`keep-alive` 组件可以缓存被包裹的组件的状态,以避免每次切换到该组件时都重新渲染。 要缓存指定的组件,你需要在由配置中给该组件添加 `meta` 字段,然后在 `keep-alive` 组件中使用 `include` 或 `exclude` 属性来指定需要缓存组件。具体实现步骤如下: 1. 在由配置中给需要缓存组件添加 `meta` 字段,例如: ```javascript const routes = [ { path: '/home', component: Home, meta: { keepAlive: true // 需要缓存组件 } }, { path: '/about', component: About } ] ``` 2. 在使用 `keep-alive` 组件的父组件中,使用 `include` 或 `exclude` 属性来指定需要缓存组件,例如: ```html <template> <div> <router-view v-slot="{ Component }"> <keep-alive :include="cachedViews"> <component :is="Component" /> </keep-alive> </router-view> </div> </template> <script> export default { computed: { cachedViews() { // 获取需要缓存组件 return this.$route.matched.filter(route => route.meta.keepAlive).map(route => route.component) } } } </script> ``` 在上面的例子中,`cachedViews` 计算属性返回了所有需要缓存组件,然后在 `keep-alive` 组件中使用了 `include` 属性来指定需要缓存组件。 如果你想排除某些组件,可以使用 `exclude` 属性来指定不需要缓存组件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值