vue2使用keep-alive缓存已打开过的菜单,使用el-tabs展示面包屑路由。

需求:

点击左侧菜单栏,面包屑实时更新,如果所点击菜单在面包屑中存在,需要缓存,不存在重新加载,面包屑tab切换需要缓存,关闭one-tab更新tabslist。
keepalive只支持二级路由,多级路由需要扁平化处理。

使用vuex,vue-class-component类组件封装,自行转换。

面包屑tabs组件

components/CommonTab.vue
<template>
    <div class="tabs" ref="tags">
        <el-tabs v-model="currentName" type="card" @edit="handleTabsEdit" @tab-click="handleTabClick">
            <el-tab-pane :key="tag.name" v-for="tag in tags" :closable="tag.name === ('首页' || '首頁') ? false : true" :label="tag.meta.title" :name="tag.meta.title"> </el-tab-pane>
        </el-tabs>
    </div>
</template>
<script lang="ts">
import {
    Vue, Component, Mixins, Watch, Prop } from 'vue-property-decorator'; 

@Component
export default class CommonTab extends Vue {
   
    tags: any = [];
    editableTabsValue: any = '';
    currentName: any = '';
    async mounted() {
   
        this.tags = this.$store.state.tabsList;
    }
    @Watch('$route.meta.title', {
    deep: true })
    onTagsChange(newVal: any, oldVal: any) {
   
        if (newVal !== oldVal) {
   
            this.currentName = newVal;
        }
    }
    handleTabsEdit(targetName: any, action: any) {
   
        if (action === 'remove') {
   
            // tags
            let result = this.tags
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值