element-plus的el-tabs切换后,刷新浏览器状态丢失

原因:当浏览器刷新后,v-model绑定的数据也会重置,所以选中的状态会丢失

解决办法

方法一

切换tab会造成路由切换的情况:可以取得路由的name,若路由的name为空,则说明没有点击过。就使用||设置一个默认值。若不为空1,则直接取到name

<template>
   <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
    <el-tab-pane label="User" name="first">User</el-tab-pane>
    <el-tab-pane label="Config" name="second">Config</el-tab-pane>

</template>


<script lang="ts" setup>
import {ref, reactive} from "vue"
import { useRouter ,useRoute} from "vue-router"

const router = useRouter()
const route = useRoute()


//tab栏选中的
const activeName = ref(route.name||'first') //若没有点击过,就默认展示第一个

const handleClick = (tab: TabsPaneContext) => {
router.push({
  name: tab.paneName as string
})

}

</script>

方法二

没有使用路由,切换tab只是内容的渲染。

可以把选中状态储存到sessionStorage本地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值