uniapp底部栏设置未读红点或角标

pages.json

javascript 复制代码
{
    ... // 省略
    "tabBar": {
        "color": "#333333",
         "selectedColor": "#3296fa",
         "backgroundColor": "#ffffff",
         "borderStyle": "white",
             "list": [
                 {
                     "pagePath": "pages/sys/workbench/index",
                     "iconPath": "static/images/tabbar/apply_1.png",
                     "selectedIconPath": "static/images/tabbar/apply_2.png",
                     "text": "首页"
                 },
                 {
                     "pagePath": "pages/sys/msg/index",
                     "iconPath": "static/images/tabbar/msg_1.png",
                     "selectedIconPath": "static/images/tabbar/msg_2.png",
                     "text": "消息"
                 },
                 {
                     "pagePath": "pages/sys/user/index",
                     "iconPath": "static/images/tabbar/my_1.png",
                     "selectedIconPath": "static/images/tabbar/my_2.png",
                     "text": "我的"
                 }
             ]
    }, // 底部按钮栏配置
}

workbench/index.vue(路径自定义,看具体业务)

javascript 复制代码
onShow() {
	this.getMessageInfo();
}

getMessageInfo() {
    this.$u.api.message.noticeAll().then((res) => {
        let count =
            res.data.earlyNum +
            res.data.newsNum +
            res.data.noticeNum +
            res.data.taskNum;
        if (count > 0) {
            uni.setTabBarBadge({
                index: 0,
                text: "11",
            });
            uni.setTabBarBadge({
                index: 1,
                text: "99+", 
            });
        } else {
            uni.removeTabBarBadge({
                index: 1, 
                text: "",
            });
        }
    });
},

API

uni.setTabBarBadge(OBJECT)
为 tabBar 某一项的右上角添加文本。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
text String 显示的文本,不超过 3 个半角字符
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.removeTabBarBadge(OBJECT)
移除 tabBar 某一项右上角的文本。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.showTabBarRedDot(OBJECT)
显示 tabBar 某一项的右上角的红点。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.hideTabBarRedDot(OBJECT
隐藏 tabBar 某一项的右上角的红点。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.onTabBarMidButtonTap(CALLBACK)
监听中间按钮的点击事件

Tip

  • tabbar是原生的,层级高于前端元素
  • uni-app插件市场有封装的前端tabbar,但性能不如原生tabbar
  • 如果想要一个中间带+号的tabbar,在HBuilderX中新建uni-app项目、选择 底部选项卡 模板
  • 以上大部分操作 tabbar 的 API 需要在 tabbar 渲染后才能使用,避免在 tabbar 未初始化前使
相关推荐
小时前端21 小时前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
Mr_li2 天前
给 Vue 开发者的 uni-app 快速指南
vue.js·uni-app
anyup2 天前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
Mintopia3 天前
Vue3 项目如何迁移到 uni-app x:从纯 Web 到多端应用的系统指南
uni-app
Mintopia3 天前
uni-app x 发展前景技术分析:跨端统一的新阶段?
uni-app
不爱说话郭德纲4 天前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
HashTang5 天前
【AI 编程实战】第 12 篇:从 0 到 1 的回顾 - 项目总结与 AI 协作心得
前端·uni-app·ai编程
JunjunZ5 天前
uniapp 文件预览:从文件流到多格式预览的完整实现
前端·uni-app
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
TT_Close6 天前
“啪啪啪”三下键盘,极速拉起你的 uni-app 项目!
vue.js·uni-app·前端工程化