vue按需缓存页面(vue-element-admin)

本文详细介绍了在vue-element-admin中实现按需缓存页面的方法,涉及routers.js、AppMain.js、store的setting.js文件和routerindex.js文件的配置。通过设置meta信息、 vuex控制、动态增删缓存页面及全局路由守卫判断,确保页面按需缓存。注意,使用组件的$destroy方法可能不可靠,应依赖keepAlive属性进行动态控制。
摘要由CSDN通过智能技术生成
一、路由文件routers.js
1、代码
const deviceList =() => import('@/views/device-manage/');
{
   
    path: '/device',
    component: Layout,
    name: 'Device',
    code: 'device',
    redirect: 'index',
    meta: {
   
      title: '设备管理',
      keepAlive: true,
    },
    children: [
      {
   
        path: 'index',
        component: deviceList,
        name: 'DeviceList',
        code: 'deviceList',
        meta: {
   
          title: '设备管理',
          keepAlive: true,
          keepComponentPages: ['pageToKeepAlive1', 'pageToKeepAlive2'],
        },
      },
2、说明

2.1、在需要被缓存的页面里设置meta的keepAlive: true,keepComponentPages: ['pageToKeepAlive1', 'pageToKeepAlive2'],表示该页面需要被缓存;
2.2、keepComponentPages的两个值是从该页面跳转到name为pageToKeepAlive1、pageToKeepAlive2时需要被缓存,后面的程序会判断,如果该页面跳转到其他页面,则该页面将不会被缓存。

二、AppMain.js
1、代码
要在vue-element-admin中添加缓存,你可以按照以下步骤进行操作: 1. 首先,在src/settings.js`文件中找到`tagsView`选项,并将其设置为`true`。这将启用标签视图组件,用于管理页面缓存。 2. 接下来,在`src/layout/components/Sidebar/index.vue`文件中,找到`handleClick`方法在该方法中,找到以下代码块: ```javascript if (!item.meta.noCache) { this.$store.dispatch('tagsView/addView', item) } ``` 将其替换为以下代码: ```javascript if (!item.meta.noCache && item.name !== this.$store.state.app.activeTab) { this.$store.dispatch('tagsView/addView', item) } ``` 这样做的目的是避免重复添加相同的页面缓存中。 3. 然后,在`src/store/modules/tagsView.js`文件中,找到`addView`方法。在该方法中,找到以下代码块: ```javascript if (state.cachedViews.includes(view)) { return } ``` 将其替换为以下代码: ```javascript if (state.cachedViews.includes(view.name)) { return } ``` 这样做的目的是检查页面名称是否已存在于缓存中。 4. 最后,在要进行缓存的路由配置中,为每个缓存页面添加`meta`字段,并将`noCache`字段设置为`false`。例如: ```javascript { path: '/dashboard', component: () => import('@/views/dashboard/index'), name: 'Dashboard', meta: { title: 'Dashboard', icon: 'dashboard', noCache: false // 缓存页面 } } ``` 这样,配置页面将会被添加到缓存中。 通过以上步骤,你就可以在vue-element-admin中成功添加页面缓存功能了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luxiaopengyou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值