uniapp微信小程序vue3自定义tabbar
在App.vue隐藏原生tabbar,也可以在pages.json中配置


二选一就好了
创建 CustomTabBar 公共组件
<template><view class="custom-tab-bar" :style="{paddingBottom: safeAreaHeight + 'px'}"><view class="tab-bar-item" :class="{'active' : props.currentPage === index}" v-for="(item, index) in tabBarList" :key="index"><image v-if="props.currentPage === index" :src="'../' + item.selectedIconPath" @click.stop="switchTab(item)"></image><image v-else :src="'../' + item.iconPath" @click.stop="switchTab(item)"></image><text>{{ item.text }}</text></view></view>
</template><script setup>
import { ref, onMounted } from 'vue';const props = defineProps({currentPage: Number,
})const tabBarList = ref([{pagePath: "pages/tabbar/msg",iconPath: "static/tabbar/dynamic.png",selectedIconPath: "static/tabbar/dynamic1.png",text: "动态"},{pagePath: "pages/tabbar/static",iconPath: "static/tabbar/statistic.png",selectedIconPath: "static/tabbar/statistic1.png",text: "统计"},{pagePath: "pages/tabbar/work",iconPath: "static/tabbar/work.png",selectedIconPath: "static/tabbar/work1.png",text: "工作台"},{pagePath: "pages/tabbar/find",iconPath: "static/tabbar/find.png",selectedIconPath: "static/tabbar/find1.png",text: "发现"},{pagePath: "pages/tabbar/user",iconPath: "static/tabbar/my.png",selectedIconPath: "static/tabbar/my1.png",text: "我的"}
]);// 切换 tab 的方法
const switchTab = (item) => {uni.switchTab({url: '/' + item.pagePath,})
};let safeAreaHeight = ref(0);onMounted(() => {// 获取底部安全区域高度uni.getSystemInfo({success: (res) => {let sHeight = res.screenHeight; // 获取屏幕高度let sTop = res.safeArea.bottom; // 获取安全区域底部高度safeAreaHeight.value = sHeight - sTop; // 计算安全区域距离底部的高度console.log('底部安全区域高度:', safeAreaHeight.value);}});uni.hideTabBar();
});
</script><style lang="scss" scoped>
.custom-tab-bar {position: fixed;z-index: 99;bottom: 0;left: 0;right: 0;display: flex;background-color: #ffffff;border-top: 1px solid #eeeeee;padding: 5px 0;
}.tab-bar-item {flex: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;color: #93A2B7;&.active {color: #24C597;}&:nth-child(3) image {margin-top: -18px;width: 80rpx;height: 80rpx;}
}.tab-bar-item image {width: 24px;height: 24px;
}.tab-bar-item text {font-size: 12px;margin-top: 6rpx;
}
</style>
在每个tabbar页面中引入组件

相关文章:
uniapp微信小程序vue3自定义tabbar
在App.vue隐藏原生tabbar,也可以在pages.json中配置 二选一就好了 创建 CustomTabBar 公共组件 <template><view class"custom-tab-bar" :style"{paddingBottom: safeAreaHeight px}"><view class"tab-bar-item" :…...
BUUCTF——[GYCTF2020]FlaskApp1 SSTI模板注入/PIN学习
目录 一、网页功能探索 二、SSTI注入 三、方法一 四、方法二 使用PIN码 (1)服务器运行flask登录所需的用户名 (2)modename (3)flask库下app.py的绝对路径 (4)当前网络的mac地…...
如何用Kimi生成PPT?秒出PPT更高效!
做PPT是不是总是让你头疼?😩 快速制作出专业的PPT,今天我们要推荐两款超级好用的AI工具——Kimi 和 秒出PPT!我们来看看哪一款更适合你吧!🚀 🥇 Kimi:让PPT制作更轻松 Kimi的生成效…...
数据结构(回顾)
数据结构(回顾) 回顾 不同点顺序表链表存储空间上物理上一定连续逻辑上连续,物理上不一定连续随机访问支持,时间复杂度O(1)不支持,时间复杂度O(N)任意位置插入或者删除元素可能需要挪动元素,效率低&#…...
全国产!瑞芯微3562Mini(2GHz四核A53 NPU)工业开发板规格书
评估板简介 创龙科技 TL3562-MiniEVM 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 AR M Cortex-A53 单核 ARM Cortex-M0 国产工业评估板,主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPU、ROM、RAM、电源、晶振等所有元器件均采用国…...
鸿蒙HarmonyOS评论功能小demo
评论页面小demo 效果展示 1.拆解组件,分层搭建 我们将整个评论页面拆解为三个组件,分别是头部导航,评论项,回复三个部分,然后统一在index界面导入 2.头部导航界面搭建 Preview Component struct HmNavBar {// 属性&a…...
异常(6)
今天我们继续来讲异常的内容,关于异常的捕获和声明,也是在处理异常的的重要方式,话不多说,来看. 异常的捕获 异常的捕获,也就是异常,的具体处理方式,主要有两种,主要有两种:异常声明throws以及try-catch捕获处理. 3.1异常声明throws. 处在方法声明时参数列表之后…...
精选一百道备赛蓝桥杯——2.K倍区间
解题思路 任何两个前缀区间的和对k取模的值相等,则由大的前缀区间减掉小的前缀区间所形成的区间的必定是K倍区间。因此我们可以对具有区间和%k值相等任何两个区间进行组合,再将这些值加起来就得到结果!证明: 假设一个数列为a1,a2…...
编译Telegram Desktop
目录 一、前言 二、环境准备 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 三、编译 四、总结和学习 一、前言 Telegram 是一款全球广泛使用的即时通讯软件,以其强大的隐私保护、跨平台同步和丰富的功能而闻名。它支持一对一聊天、群组(最多20万成员&am…...
玩转python: 掌握Python数据结构之链表
链表是计算机科学中最基础的数据结构之一,也是许多高级数据结构和算法的基础。本文将带你从零开始,逐步掌握链表的概念、实现和应用。通过丰富的案例和通俗易懂的解释,你将能够轻松理解并应用链表。 什么是链表? 链表是一种线性…...
upload-labs详解(1-12)文件上传分析
目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名,上传 upload-labs-env第四关…...
RAG系统(检索增强生成)的优化策略
RAG(检索增强生成)系统的优化可以从多个方面入手,主要包括数据、查询、检索、生成、框架和评估等几个重要环节。本文将详细介绍这些优化策略,并为每个环节提供具体的操作方法。 一、数据优化 1. 数据清洗和增强 数据质量直接影响检索和生成的效果,因此需要进行细致的数据…...
写毕业论文用哪个AI好?这6款AIGC论文工具给你答案
撰写毕业论文是一项艰巨的任务,AIGC 论文工具的出现为同学们提供了有力支持。以下 6 款工具在功能、适用场景等方面各有优势,助你高效完成毕业论文。 文赋 AI 论文 文赋 AI 论文堪称毕业论文写作的得力助手。它的生成速度令人惊叹,短短 5 分…...
loadingcache优化
问题分析 通过当前现场的火焰图进行分析 原本的loadingcache public LoadingCache<Integer, Student> map Caffeine.newBuilder().refreshAfterWrite(CONTRACT_CACHE_HOURS, TimeUnit.HOURS).maximumSize(CONTRACT_CONFIG_CACHE_SIZE).recordStats().build(key -> …...
【Vue3 Element UI - Plus + Tyscript 实现Tags标签输入及回显】
Vue3 Element Plus TypeScript 实现 Tags 标签输入及回显 在开发后台管理系统或表单页面时,动态标签(Tags) 是一个常见的功能需求。用户可以通过输入框添加标签,并通过关闭按钮删除标签,同时还需要支持标签数据的提…...
STM32 子设备通过CAN发送数据到主设备
采集ADC、GPS经纬坐标、温湿度数据、大气压数据通过CAN方式发送给主设备端,帧ID按照如下定义: 我尼玛一个标准帧ID位数据是11位,扩展帧才是111829位,它说最开头的是四位是真类型,并给我如下解释: 它把帧的定…...
Python可视化——地理空间型图表(自用)
地图信息可视化的实现就是将不可展开的曲面上的地理坐标信息转化为二维平面进行显示,这个过程也叫地图投影(空间三维投影到平面二维) 地图投影的要求:等面积、等角度、等距离。总的来说就是映射到二维平面中的任何点通过比例尺放大…...
WordPress报502错误问题解决-php-fpm-84.service loaded failed failed LSB: starts php-fpm
文章目录 问题描述问题排查问题解决 问题描述 服务器环境: php:8.4MySQL:8.0Nginx:1.26.2 在访问站点时,一直报502,而两天前还能正常访问。 问题排查 导致502的问题很多,比如站点访问量太大…...
Python在SEO中的自动化应用爬虫开发与日志分析实例
引言 搜索引擎优化(SEO)是数字营销中至关重要的一环,旨在提高网站在搜索引擎结果页面(SERP)中的排名。随着互联网数据的爆炸式增长,手动进行SEO分析和管理变得愈发困难。Python作为一种强大的编程语言&…...
thingsboard edge 在windows 环境下的配置
按照官方文档:Installing ThingsBoard Edge on Windows | ThingsBoard Edge,配置好java环境和PostgreSQL。 下载对应的windows 环境下的tb-edge安装包。下载附件 接下来操作具体如下 步骤1,需要先在thingsboard 服务上开启edge 权限 步骤2…...
为什么我的Flowbite样式不生效?Tailwind CSS配置避坑与Svelte项目优化技巧
为什么我的Flowbite样式不生效?Tailwind CSS配置避坑与Svelte项目优化技巧 在Svelte项目中集成Flowbite组件库时,开发者常会遇到样式不生效的问题。这通常不是Flowbite本身的缺陷,而是配置环节的疏漏或构建工具的特定行为导致的。本文将深入剖…...
PyCharm 2025.2 离线安装与配置全攻略:绕过登录,直接使用完整汉化版
PyCharm 2025.2 离线安装与配置全攻略:企业级免登录解决方案 在企业开发环境中,Python开发者常常面临网络限制、账号管理繁琐等问题。PyCharm作为最受欢迎的Python IDE之一,其官方版本需要联网激活和登录JetBrains账户,这对内网开…...
PrankWeb 蛋白质配体结合位点预测,超简单使用教程
一、PrankWeb 是什么? PrankWeb 是一个免费的在线蛋白质配体结合位点预测工具,基于机器学习算法 P2Rank。 它能帮你: 预测蛋白质上可能的药物结合口袋(pockets) 可视化蛋白质的三维结构和结合位点 …...
BilibiliDown终极指南:三步搞定B站视频下载,支持批量收藏夹与UP主作品
BilibiliDown终极指南:三步搞定B站视频下载,支持批量收藏夹与UP主作品 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https:…...
3步掌握BilibiliDown:从视频下载到音频提取的完整攻略
3步掌握BilibiliDown:从视频下载到音频提取的完整攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b…...
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解)
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解) 在SAP系统中,物料账管理是连接物流与财务的关键桥梁。对于财务人员而言,理解物料移动如何触发财务过账,以及如何通过后台配置实现精准…...
老旧设备系统升级技术解析:4步实战指南让旧Mac焕发新生
老旧设备系统升级技术解析:4步实战指南让旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac设备升级macOS系统是许多用户面临的技术难题&am…...
SpringBoot+Vue实战:手把手教你搭建苍穹外卖后台管理系统(含Nginx配置避坑指南)
SpringBootVue全栈实战:从零构建外卖管理系统与Nginx部署精要 每次打开招聘网站,看到"要求有完整项目经验"的字样时,你是否也感到一阵心虚?作为全栈开发的学习者,我们往往陷入一个怪圈:学了很多碎…...
难点突破:HR 每天看 200 份简历,80% 时间都在做无效劳动
去年某互联网公司招一个产品经理,收到 847 份简历。HR 小王花了整整三天时间初筛,最后发现真正符合要求的只有 23 个人。更让人崩溃的是,这 23 个人里有 5 个是第二天才看到的——因为简历太多,优质候选人被淹没在简历海里。 这不…...
云计算案例排错(云上3)
故障1 CPU&内存配额错误 solo-1工作负载启动失败,提示:重启启动容器失败。 解决方案:看下solo-1的更新升级中的容器规划配置,是否是正确的配置(CPU配额:申请0.25Core 限制0.29Core;内存配额…...
