uni-app 之 设置 tabBar

tabBar 是移动应用中常见的导航模式,uni-app 提供了丰富的 API 来动态控制 tabBar 的外观和行为。

1. uni.setTabBarItem(object)

动态设置 tabBar 某一项的内容

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
textstringtab 上的按钮文字
iconPathstring图片路径,icon 大小限制为 40kb
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
uni.setTabBarItem({index:0,text:"首页",iconPath:"/static/icon/home.png",selectedIconPath:"/static/icon/home-active.png",});

2. uni.setTabBarStyle(object)

动态设置 tabBar 的整体样式

参数说明
属性类型默认值必填说明
colorstringtab 上的文字默认颜色
selectedColorstringtab 上的文字选中时的颜色
backgroundColorstringtab 的背景色
borderStylestringtabBar 上边框的颜色,仅支持 black/white
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
uni.setTabBarStyle({color:"#7A7E83",selectedColor:"#007AFF",backgroundColor:"#F8F8F8",borderStyle:"black",});

3. uni.hideTabBar(object)

隐藏 tabBar

参数说明
属性类型默认值必填说明
animationbooleanfalse是否需要动画效果
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 隐藏 tabBar,带动画效果 uni.hideTabBar({animation:true,});

4. uni.showTabBar(object)

显示 tabBar

参数说明
属性类型默认值必填说明
animationbooleanfalse是否需要动画效果
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 显示 tabBar,带动画效果 uni.showTabBar({animation:true,});

5. uni.setTabBarBadge(object)

为 tabBar 某一项右上角添加文本

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
textstring显示的文本,超过 4 个字符则显示为 …
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 为第一个 tab 添加 badge uni.setTabBarBadge({index:0,text:"3",});

6. uni.removeTabBarBadge(object)

移除 tabBar 某一项右上角的文本

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 移除第一个 tab 的 badge uni.removeTabBarBadge({index:0,});

7. uni.showTabBarRedDot(object)

显示 tabBar 某一项的右上角红点

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 显示第一个 tab 的红点 uni.showTabBarRedDot({index:0,});

8. uni.hideTabBarRedDot(object)

隐藏 tabBar 某一项的右上角红点

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 隐藏第一个 tab 的红点 uni.hideTabBarRedDot({index:0,});

完整示例

exportdefault{methods:{// 初始化 tabBar 样式initTabBar(){// 设置 tabBar 整体样式 uni.setTabBarStyle({color:"#7A7E83",selectedColor:"#007AFF",backgroundColor:"#FFFFFF",borderStyle:"black",});// 设置各 tab 项 uni.setTabBarItem({index:0,text:"首页",iconPath:"/static/tabbar/home.png",selectedIconPath:"/static/tabbar/home-selected.png",}); uni.setTabBarItem({index:1,text:"分类",iconPath:"/static/tabbar/category.png",selectedIconPath:"/static/tabbar/category-selected.png",}); uni.setTabBarItem({index:2,text:"购物车",iconPath:"/static/tabbar/cart.png",selectedIconPath:"/static/tabbar/cart-selected.png",}); uni.setTabBarItem({index:3,text:"我的",iconPath:"/static/tabbar/user.png",selectedIconPath:"/static/tabbar/user-selected.png",});},// 更新购物车数量显示updateCartBadge(count){if(count >0){ uni.setTabBarBadge({index:2,text: count.toString(),});}else{ uni.removeTabBarBadge({index:2,});}},// 显示消息红点showMessageDot(show){if(show){ uni.showTabBarRedDot({index:3,});}else{ uni.hideTabBarRedDot({index:3,});}},// 在特定页面隐藏 tabBarhideTabBarInPage(){ uni.hideTabBar({animation:true,});},// 返回页面时显示 tabBarshowTabBarInPage(){ uni.showTabBar({animation:true,});},},mounted(){this.initTabBar();},};

注意事项

  1. 所有 tabBar 相关 API 都需要在 tabBar 已经初始化完成后再调用
  2. iconPathselectedIconPath 必须使用本地资源路径
  3. badge 文本超过 4 个字符会显示为 …
  4. 红点和 badge 不能同时显示在同一项上
  5. 在不同平台上的表现可能会有细微差异
  6. 修改 tabBar 样式时建议在应用启动时进行,避免频繁修改影响性能

Read more

什么是流式输出,后端怎么生成,前端怎么渲染

什么是流式输出,后端怎么生成,前端怎么渲染 流式输出(Streaming Output) 就像是在看视频直播,内容是一边产生一边传输给你的,而不是像下载电影那样,必须等整个文件下完才能开始看。 在 AI 领域(比如 ChatGPT),流式输出表现为文字一个接一个地“蹦”出来,而不是转半天圈圈后突然甩出一大段话。 什么是流式输出,有什么特点 1. 它是怎么实现的? 流式输出的核心技术通常是 SSE (Server-Sent Events,服务器发送事件)。 在传统的 HTTP 请求中,模式是“一问一答”:客户端发请求,服务器处理完全部逻辑,打成一个大包发回客户端。而在流式输出中,过程如下: 1. 建立持久连接:客户端发送一个请求,并在 HTTP 头部声明 Accept: text/event-stream。 2. 分块传输:服务器每生成一个字(

天马G前端的使用

天马G前端的使用

1 复古掌机的选择 最近搞了个手柄,正好有一个闲置的小米9,就想着看能不能装一个复古掌机出来。 其实市场上也有很多现成的复古掌机,目前主要是安卓和Linux两种。整体上看安卓的目前占优一点,因为除了大家都能玩的模拟器,安卓平台还能玩安卓的游戏。 项目Android 掌机Linux 掌机 (ArkOS / JELOS / Batocera)启动速度20~40 秒5 秒以内UI一致性❌ 多 app 无统一样式✅ 完整游戏平台风格PS2(AetherSX2)✅ 可玩(Snapdragon / Dimensity / Unisoc)❌ 官方 Linux 版 core 不成熟Switch(Yuzu)✅ 安卓有社区版 Yuzu❌ 完全无解PSP/NDS/GBA etc✅ 但调用 APK,界面割裂✅ 全集成 Core,UI统一云游戏 / Steam Link✅ 完全支持⚠

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

来源 | https://segmentfault.com/a/1190000021936876 今天这篇文章给大家分享一些常见的前端vue面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 对于前端来说,尽管css、html、js是主要的基础知识,但是随着技术的不断发展,出现了很多优秀的mv*框架以及小程序框架。因此,对于前端开发者而言,需要对一些前端框架进行熟练掌握。这篇文章我们一起来聊一聊VUE及全家桶的常见面试问题。 1、请讲述下VUE的MVVM的理解? MVVM 是 Model-View-ViewModel的缩写,即将数据模型与数据表现层通过数据驱动进行分离,从而只需要关系数据模型的开发,而不需要考虑页面的表现,具体说来如下: Model代表数据模型:主要用于定义数据和操作的业务逻辑。 View代表页面展示组件(即dom展现形式):负责将数据模型转化成UI 展现出来。 ViewModel为model和view之间的桥梁:监听模型数据的改变和控制视图行为、处理用户交互。通过双向数据绑定把 View 层和 Model 层连接了起来,而View

如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程

如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程

【全网最细】如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程 在Windows系统运维、脚本部署场景中,PowerShell的Invoke-WebRequest是下载远程资源的常用命令,但新手常遇到Invalid URL(URL无效)和CommandNotFound(命令未找到)两类错误。本文将从错误根源分析、分步解决方案、避坑指南三个维度,手把手教你彻底解决这类问题,即使是零基础也能看懂。 文章目录 * 【全网最细】如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程 * 一、问题复现:先看清错误长什么样 * 1. 执行的原始命令 * 2. 核心错误信息 * 二、深度剖析:错误到底是怎么来的? * 错误1:Invalid URL(URL无效)的4个核心原因 * 错误2:CommandNotFound(脚本未找到)的3个核心原因 * 三、分步解决:从根源到表象逐