修改vue的keep-alive实现仿easyui-页面tab切换

后台管理页面常用tabs切换进行导航,传统实现包括显示隐藏div和iframe。本文介绍使用vue和vue-router结合keep-alive的实现方式,通过监听路由变化,动态生成toolbar并管理组件缓存。提供了一个可以主动清除缓存的解决方案,源代码可在github找到。
摘要由CSDN通过智能技术生成

后台管理页面通常会有tabs切换作为导航

常见实现方式

  1. 通过显示和隐藏div(缺点:无法看到路由)
  2. 通过iframe,其实和显示隐藏区别不大

vue实现方式

因为要在vue中实现,用vue-router和vue中一个keep-alive,但是keep-alive有个缺点,他是用对象来缓存组件,并且是一个抽象组件,所以就稍微修改下。

效果图

navigation

功能

  1. 点击左侧显示toolbar nav
  2. 通过toolbar 切换路由,并保持之前缓存
  3. 关闭toolbar清除缓存,打开后仍可用缓存

项目源代码

https://github.com/slipkinem/vue-admin

实现方式

监听路由的变动,当路由改变时将当前路由添加到一个列表里面。循环此列表生成toolbartabs,给keep-alive添加两个方法。第一个是当keep-alive工作的时候,设置存储keyhook、第二个方法添加通过key删除缓存removeCacheByKey
当点击关闭按钮的时候,调用removeCacheByKey就可以完美解决vue keep-alive无法主动清除缓存的问题了。主要的keep-alive代码:

import _ from 'lodash'

function isDef (val) {
   
  return val !== undefined && val !== nul
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值