首页 > 其他分享 >Vue3 用keep-alive实现tab页缓存

Vue3 用keep-alive实现tab页缓存

时间:2022-11-06 21:44:34浏览次数:49  
标签:缓存 alive keep meta tab 路由

一般国产味道的后台界面,都会有一个类似于浏览器tab标签的东西

image

大概就是这样的,可以点击标签切换不同的路由,并且不丢失之前录入的数据。

但是vue-router默认是不支持该操作,需要借助vue内置的keep-alive组件来解决

路由

路由需要设置name和meta两个属性,meta下加上一个keep属性,true表示当前路由需要缓存,false则不需要缓存

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/home',
      name: 'home',
      component: HomeView,
      meta: {
        keep:false
      }
    },
    {
      path: '/about',
      name: 'about',
      meta: {
        keep:true
      },
      component: () => import('../views/AboutView.vue')
    }
  ]
})

keep-alive使用

keep-alive需要放在router-view下,判断route的keepp属性,是否需要通过keep-alive缓存当前路由

<RouterView v-slot="{ Component }">
    <KeepAlive>
      <component :is="Component" :key="$route.name" v-if="$route.meta.keep"></component>
    </KeepAlive>
    <component :is="Component" :key="$route.name" v-if="!$route.meta.keep"></component>
  </RouterView>

使用

做完前面步骤,只需要正常按照vue的开发模式写业务逻辑,就可以实现tab路由缓存了。

标签:缓存,alive,keep,meta,tab,路由
From: https://www.cnblogs.com/boxrice/p/16864196.html

相关文章

  • 【模板】ST 表 Sparse Table
    postedon2022-07-2219:15:58|under模板|sourcetemplate<intN,classT=int,intlogN=20>structSTable{ inttot,lg[N+10];Tf[logN+1][N+10]; STable():tot(0......
  • el-table添加序号
    参考声明:https://blog.csdn.net/weixin_44261540/article/details/124386986主要的就是加入标签加入额外的内容,感觉没啥好说的看代码应该能明白,记录一下。<el-table-c......
  • pandas df分段(cut)后交叉(crosstab)数据标签缺失的补充
    数值数据分类后交叉,但是数据量少,或者划分标准不科学导致分类的类别有缺失,交叉后会丧失类别,数据不齐整importnumpyasnpimportpandasaspddf=pd.DataFrame(n......
  • 后台管理系统tabs栏切换思路
    页面内容:  使用element-ui实现tabs标签页:https://element.eleme.cn/#/zh-CN/component/tabs#tab-pane-attributes 1.把内容封装成一个组件-表格table 2.......
  • 针对`elementui`table表格中的prop属性是个数组的处理方法
    表格<el-table:data="tableData"style="width:100%;margin-bottom:20px;"row-key="id"borderdefault-expand-all><el-table-columnprop="name"label=......
  • 什么是 immutable?为什么要使用它?
    什么是immutable?为什么要使用它?​​immutable​​是一种持久化数据。一旦被创建就不会被修改对​​Immutable​​对象的任何修改或添加删除操作都会返回一个新的​​Immu......
  • NiceTab新标签页, 一款美观实用的浏览器起始页
    NiceTab(www.nicetab.cn)是一个美观实用的浏览器起始页插件,自上线以来深受广大网友的喜欢。没有任何广告与杂乱的内容推荐,给与用户无干扰的上网新体验。整个插件的功能与内容......
  • 游戏修改-Dome Keeper
    FileName=..\domekeeper.exePathList\0000\Descrip=add-jmpPathList\0000\NewHex=E916FE4400909090PathList\0000\Offset=01691815;PathList\0000\OldHex=48......
  • 18-网络安全与iptables
    网络安全与iptables防火墙的分类按保护范围划分主机防火墙:服务范围为当前一台主机网络防火墙:服务范围为防火墙一侧的局域网按实现方式划分:硬件防火墙:在硬件级别实现部分功能......
  • UVA1364 Knights of the Round Table | 点双连通分量
    主要就是一个性质:如果一个点双连通分量中有奇环,那么这个点双连通分量中的每个点都在至少一个奇环中。#include<bits/stdc++.h>usingnamespacestd;constintN=100......