当前位置: 首页 > news >正文

点击A组件跳转到B页面的tab的某一列

1、使用vuex存储点击的数据;
点击A组件里面的button按钮:

        <div><button @click="banli('first')">已办理</button><button @click="banli('second')">未办理</button><button @click="banli('third')">已完结</button></div>// banli  跳转到其他yemian
const banli=(value)=>{// 更新 Vuex 中的选中 value 状态console.log(value,'banli')// commit 触发的是 mutation,是同步的,直接修改 state。// store.commit('setTab',value)// dispatch 触发的是 action,action 可以是异步的,可以执行异步任务后再提交 mutation 来更新 state。store.dispatch('changeTab',value)router.push('/goods')
}

vuex中存储数据value,

import { createStore } from 'vuex';
export default createStore({// 存储数据state:{tab:'first'},// 修改state中的数据的唯一方式mutations:{setTab(state,tabValue){state.tab=tabValueconsole.log(tabValue,'newTab')  }},// 异步actions:{changeTab({commit},tabValue){commit('setTab',tabValue)  // 通过 action 提交 mutation}},getters: {getTab: state => state.tab // 获取当前 tab 值}
})

B组件中:

<div class="tabs"><el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"><el-tab-pane label="User" name="first"><Users></Users></el-tab-pane><el-tab-pane label="Config" name="second">Config</el-tab-pane><el-tab-pane label="Role" name="third">Role</el-tab-pane></el-tabs>
</div>
import { ref, reactive, computed, watch, onMounted } from 'vue';
import {useStore } from 'vuex'
import  Users from '../../components/tabs/tabs_user.vue'
const activeName = ref('first')// 获取值tab
const tab=computed(()=>store.state.tab)
// activeName 应该由 v-model 管理,而不是手动赋值
//  activeName.value=tab.value// 监听 tab 的变化并更新 activeName
//  默认情况下,watch 只会在目标数据发生变化时才触发回调函数。但是,在某些情况下,你希望在监听的目标数据首次设置时,watch 回调函数就被执行一次,这时就需要使用 immediate: true 选项。
// 没有 immediate:true; watch 默认只会在被监听的数据发生变化后执行回调。
// 加上 immediate: true: 让 watch 在组件挂载时立即执行回调,用来处理初始化数据或同步初始状态 。 如同步状态、加载数据watch(tab, (newVal) => {if (newVal !== activeName.value) {activeName.value = newVal;  // 当 tab 发生变化时更新 activeNameconsole.log('tab changed to:', newVal);  }},{immediate:true,deep:true});console.log(activeName.value,'tab1')const handleClick = (tab) => {console.log('点击了tab2:', tab);};

2、使用本地储存localStorage;

// banli  跳转到其他yemian
const banli=(value)=>{
//   value:是你要存储的数据值。这个值可以是任何类型的数据,但 localStorage 只能存储字符串,因此如果要存储其它类型的数据(如对象、数组等),需要先将它们转换为字符串(通常通过 JSON.stringify())。localStorage.setItem('values', value); // 存储值console.log(value,'111')router.push('/goods')
}
const tabValue = localStorage.getItem('values'); //获取值
console.log(tabValue,'tabValue')
if (tabValue) {activeName.value = tabValue;}

http://www.mrgr.cn/news/78787.html

相关文章:

  • Spring Boot自定义启动banner
  • Android Gradle 相关
  • 07.ES11 08.ES12
  • 【C语言】结构体嵌套
  • 【eclipse】快捷键
  • 【Linux | 计网】TCP协议深度解析:从连接管理到流量控制与滑动窗口
  • 云备份实战项目
  • 探索嵌入式硬件设计:揭秘智能设备的心脏
  • 【Rust在WASM中实现pdf文件的生成】
  • debian 11 虚拟机环境搭建过坑记录
  • Flink常见面试题
  • 嵌入式C编程:宏定义与typedef的深入对比与应用
  • Python知识分享第十六天
  • Hadoop生态圈框架部署(九)- Hive部署
  • MySQL中如何减少回表
  • 微服务即时通讯系统的实现(服务端)----(3)
  • 基础Web安全|SQL注入
  • 《装甲车内的气体卫士:上海松柏 S-M4 智能型气体传感器详解》
  • 从0开始学PHP面向对象内容之常用设计模式(策略,观察者)
  • 腾讯微众银行前端面试题及参考答案
  • 提升分布式系统响应速度:分布式系统远程调用性能提升之道
  • 开源多媒体处理工具ffmpeg是什么?如何安装?使用ffmpeg将M3U8格式转换为MP4
  • Flink问题总结
  • 预处理详解(完结篇)
  • 4399大数据面试题及参考答案(数据分析和数据开发)
  • IDEA自定义帆软函数步骤详解