解决Vue3+uni-app导航栏高亮自动同步方案
路由跳转自动识别导航高亮实现方法
以下代码使用wd-tabbar
组件实现路由跳转时自动同步导航栏高亮状态,适用于所有的Vue3+uni-app项目。 请根据自身使用框架类型完成,也可根据我使用的UI组件进行完成地址如下:
Tabbar 标签栏 | Wot UI ,如需使用请按照Wot UI先进行安装后可直接粘贴复制我的代码!
感谢各位尊敬的VIP用户的支持,如果有帮助到您,还请您给一个宝贵的赞!
<template><view><wd-tabbar fixed v-model="navIndex" bordered safeAreaInsetBottom placeholder shape="round"><wd-tabbar-itemv-for="(item, index) in tabbarList":key="index"@click="navBarRule(index)":title="item.title":icon="item.icon":value="item.value":is-dot="item.isDot"></wd-tabbar-item></wd-tabbar></view>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';const navIndex = ref(0);
const tabbarList = ref([{title: '订单中心',icon: 'list',value: 2,isDot: true,path: '/pages/view/order-center/index'},{title: '用户管理',icon: 'user',value: null,isDot: false,path: '/pages/view/user-manager/index'},{title: '数据流水',icon: 'chart-bar',value: null,isDot: false,path: '/pages/view/data-statement/index'},{title: '聊天',icon: 'chat',value: 200,isDot: false,path: '/pages/view/chat/index'},{title: '店主中心',icon: 'app',value: 10,isDot: false,path: '/pages/view/store-owner/index'}
]);const navBarRule = (index: number) => {uni.reLaunch({url: tabbarList.value[index].path});navIndex.value = index;
};const currentRoute = computed(() => {const pages = getCurrentPages();return pages[pages.length - 1]?.route || '';
});navIndex.value = tabbarList.value.findIndex((item) => item.path === `/${currentRoute.value}`
);
</script>
关键实现要点
- 通过
getCurrentPages()
获取当前页面栈信息,计算当前路由路径 - 使用
computed
属性动态跟踪路由变化 - 在组件初始化时同步导航栏选中状态
- 点击导航栏时使用
uni.reLaunch
进行路由跳转并更新选中状态
注意事项
- 确保
tabbarList
中的path
与实际路由路径完全匹配 - 该实现适用于底部导航栏场景,顶部导航需调整样式
- 使用
uni.reLaunch
会关闭所有页面并打开新页面,如需保留页面栈可使用uni.navigateTo
该方案已通过实际项目验证,能稳定实现路由与导航栏状态同步。
如果和我的不同情况下,只要您已经完成了导航组件的搭建,在代码中添加
const currentRoute = computed(() => {
const pages = getCurrentPages();
return pages[pages.length - 1]?.route || '';
});navIndex.value = tabbarList.value.findIndex(
(item) => item.path === `/${currentRoute.value}`
);这段关键性代码即可,最后需要根据你声明的变量进行替换
相关文章:
解决Vue3+uni-app导航栏高亮自动同步方案
路由跳转自动识别导航高亮实现方法 以下代码使用wd-tabbar组件实现路由跳转时自动同步导航栏高亮状态,适用于所有的Vue3uni-app项目。 请根据自身使用框架类型完成,也可根据我使用的UI组件进行完成地址如下: Tabbar 标签栏 | Wot UI &#…...

DeepSeek+SpringAI实现流式对话
大模型的响应速度通常是很慢的,为了避免用户用户能够耐心等待输出的结果,我们通常会使用流式输出一点点将结果输出给用户。 那么问题来了,想要实现流式结果输出,后端和前端要如何配合?后端要使用什么技术实现流式输出呢…...

【Spark征服之路-2.1-安装部署Spark(一)】
实验目标: 本节课实验将完成Spark 4种部署模式的其中2种,分别是Local、Standalone模式。 实验准备工作: 三台linux虚拟机spark的压缩包 实验步骤: Spark-local Spark的Local模式仅需要单个虚拟机节点即可,无需启…...

VS代码生成工具ReSharper v2025.1——支持.NET 10和C# 14预览功能
实质上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML和构建脚本。 使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析…...

【Godot】如何导出 Release 版本的安卓项目
在使用 Godot 引擎开发安卓游戏或应用时,发布到应用市场(如 Google Play、华为应用市场等)通常需要生成一个 Release 版本的 .apk 包,而非 Debug 版本。本文将详细介绍如何将 Godot 项目导出为 Release 版本的安卓项目,…...

VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
下面是一个通用模板,适用于大多数使用 VSCode CMake Ninja MinGW/GCC 编译器 的 C 或 Qt 项目。你可以将这个 .vscode 文件夹复制到你的项目根目录下,稍作路径调整即可使用。 📁 .vscode/ 目录结构(通用模板) .vs…...
js鼠标事件大全
一、鼠标相关事件(Mouse Events) 事件名描述支持浏览器(HTML 版本)onClick鼠标单击对象时触发IE3, N2, O3onDblClick鼠标双击对象时触发IE4, N4, OonMouseDown鼠标按键按下时触发IE4, N4, OonMouseUp鼠标按键释放时触发IE4, N4, …...

Java八股文——Redis篇
目录 1. 缓存穿透解决方案1. 缓存空值2. 布隆过滤器(Bloom Filter)3. 参数校验4. 接口限流与验证码 2. 缓存击穿解决方案1. 设置热点数据永不过期(或很长过期时间)2. 使用互斥锁(如分布式锁)3. 利用异步更新…...

爬虫接口类型判断与表单需求识别全解析
爬虫接口类型判断与表单需求识别全解析 在爬虫开发中,准确判断目标接口的类型以及是否需要表单提交,是实现高效、稳定爬取的关键一步。本文将通过实际案例,详细介绍如何通过浏览器开发者工具和代码验证来判断接口类型及表单需求。 一、接口…...
Photoshop智能图层 vs 普通图层:核心差异与适用场景对比
一、基础概念对比 维度智能图层(Smart Object)普通图层(Raster Layer)本质定义封装原始数据的容器,保留原始图像/矢量/3D信息直接编辑的像素图层,仅存储当前显示效果核心特性非破坏性编辑(保留…...

Chainlink:连接 Web2 与 Web3 的去中心化桥梁
区块链技术通过智能合约实现了去中心化的自动执行,但智能合约无法直接访问链下数据,限制了其在现实世界的应用。Chainlink 作为去中心化预言机网络,以信任最小化的方式解决了这一问题,成为连接传统互联网(Web2…...
[Java 基础]面向对象-继承
继承,可以理解为和现实生活中的继承是一样的概念,比如:儿子继承了父亲的一些特性,面貌、身材、性格等。 在面向对象编程中,继承的概念与之类似。它允许我们创建一个新的类(子类 或 派生类)&…...

编译一个Mac M系列可以用的yuview
做音视频的有一个神器工具YUView,具体使用和它的功能可以看:https://zhuanlan.zhihu.com/p/558580168, 这个作者讲得很清楚,但是官方只提供了intel的版本,arm版本要自己编,且依赖低版本的ffmpeg。 操作过程…...
LeetCode - 876. 链表的中间结点
题目 876. 链表的中间结点 - 力扣(LeetCode) 快慢指针解法 初始化两个指针: 慢指针(slow):每次移动一步 快指针(fast):每次移动两步 同时移动两个指针: 当fast指针到达链表末尾或者倒数第二个节点时…...
概率单纯形(Probability Simplex)
目录 定义性质在统计学中的应用在机器学习中的应用在信息论中的应用在优化问题中的应用在其他领域的应用 定义 定义:在数学中,概率单纯形(Probability Simplex)是指在 n n n维空间中,所有分量非负且分量之和为1的向量…...
Go语言爬虫系列教程4:使用正则表达式解析HTML内容
Go语言爬虫系列教程4:使用正则表达式解析HTML内容 正则表达式(Regular Expression,简称RegEx)是处理文本数据的利器。在网络爬虫中,我们经常需要从HTML页面中提取特定的信息,正则表达式就像一个智能的&quo…...

6.4 C++作业
刷题...

rabbitmq Topic交换机简介
1. Topic交换机 说明 尽管使用 direct 交换机改进了我们的系统,但是它仍然存在局限性——比方说我们的交换机绑定了多个不同的routingKey,在direct模式中虽然能做到有选择性地接收日志,但是它的选择性是单一的,就是说我的一条消息…...

网络交换机:构建高效、安全、灵活局域网的基石
在数字化时代,网络交换机作为局域网(LAN)的核心设备,承担着数据转发、通信优化和安全防护的关键任务。其通过独特的MAC地址学习、冲突域隔离、VLAN划分等技术,显著提升了网络性能,成为企业、学校、医院等场景不可或缺的基础设施。…...
【ArcGIS微课1000例】0148:Geographic Imager6.2使用教程
文章目录 一、Geographic Imager6.2下载安装二、Geographic Imager6.2使用方法1. 打开Geographic Imager2. 导入地理影像3. 导入DEM地形渲染4. 设置地理坐标系统5. 进行地理影像的处理6. 导出地理影像一、Geographic Imager6.2下载安装 在专栏上一篇文章中已经详细讲述了Geogr…...

【Oracle】存储过程
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 存储过程基础概述1.1 存储过程的概念与特点1.2 存储过程的组成结构1.3 存储过程的优势 2. 基础存储过程2.1 简单存储过程2.1.1 创建第一个存储过程2.1.2 带变量的存储过程 2.2 带参数的存储过程2.2.1 输入参…...
CppCon 2015 学习A Few Good Types
代码重构前后,用现代C更安全、更简洁的方式来处理数组和长度问题,并且利用静态分析(SA,Static Analysis)工具来捕获潜在错误。 代码重构前(Before) void f(_In_reads_(num) Thing* things, un…...
winrm登录失败,指定的凭据被服务器拒绝
winrm登录失败,指定的凭据被服务器拒绝。 异常提示:the specified credentials were rejected by the server 在windows power shell执行 set-executionpolicy remotesigned winrm quickconfig winrm set winrm/config/service/auth {Basic"true…...

单元测试-断言常见注解
目录 1.断言 2.常见注解 3.依赖范围 1.断言 断言练习 package com.gdcp;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test;//测试类 public class UserServiceTest {Testpublic void testGetGender(){UserService userService new UserService…...

TDengine 在电力行业如何使用 AI ?
在你面前摆着一堆机器运行日志、传感器读数、电表数据,几十万、几百万条每秒增长的数据流,你会怎么处理?是加人、加脚本,还是干脆放弃实时分析? 过去,时序数据是工业的“副产品”:只是存着、查…...
Java抽象工厂模式详解
Java 抽象工厂模式是一种创建型设计模式,它提供了一种方式,可以将一组具有共同主题的单个工厂封装起来,而不必指定它们具体的类。这种模式属于创建型模式,它隐藏了对象创建的逻辑,将客户端与具体类的实现解耦。 一、核…...
matlab实现高斯烟羽模型算法
高斯烟羽模型的matlab代码 Code.m , 441 Cross.m , 1329 fit.m , 2080 fitness.m , 2160 fitness1.m , 2191 gaosiyanyu.m , 1936 jixian.m , 169 main.m , 155 mGA.m , 10415 mGA_new.fig , 7218 mGA_new.m , 18196 mPSO.m , 6681 Mutation.m , 1234 point.m , 1976 Select.m…...
SpringBoot parent依赖高版本覆盖低版本问题
问题 在Spring Boot项目中,有时候我们会遇到这样的情况:当我们引入了多个依赖库,而这些库中有相同的依赖项但版本不同。这种情况下,高版本的依赖可能会覆盖低版本的依赖,导致项目运行时出现不期望的行为或错误。为了解…...

OpenCV C/C++ 视频播放器 (支持调速和进度控制)
OpenCV C/C 视频播放器 (支持调速和进度控制) 本文将引导你使用 C 和 OpenCV 库创建一个功能稍复杂的视频播放器。该播放器不仅能播放视频,还允许用户通过滑动条来调整播放速度(加速/减速)以及控制视频的播放进度。 使用opencv打开不会压缩画…...

【Linux庖丁解牛】—自定义shell的编写!
1. 打印命令行提示符 在我们使用系统提供的shell时,每次都会打印出一行字符串,这其实就是命令行提示符,那我们自定义的shell当然也需要这一行字符串。 这一行字符串包含用户名,主机名,当前工作路径,所以&a…...