uni-app 设置tabBar的setTabBarBadge购物车/消息等角标

一、效果

请添加图片描述

二、代码实现

只要使用uni.setTabBarBadge和uni.removeTabBarBadge来进行对红点的设置和移除。

主要代码:

//设置红点
uni.setTabBarBadge({
   
	index: 1, // 底部菜单栏的索引(从0开始)
	text:'99', // 要显示的文本(必须是字符串类型)
});
//移除红点
uni.removeTabBarBadge({
   
	index: 1 // 底部菜单栏的索引(从0开始)
});

二、全部代码

注意: 以下代码在使用页面首页都添加上,才能保证一进入小程序首页,可以直接看到人脉处有无红点。

1.index.vue

首页页面

<script>
	export default {
   
		data() {
   
			return {
   
				tabBarNum: '' //底部消息数量
			}
		},
		onLoad() {
   
			this.footMsgFun()  //调用底部方法
		},
		onShow() {
   
			this.footMsgFun()  //调用底部方法
		},
		methods: {
   
			//底部:人脉红点显示
			footMsgFun() {
   
				var that = this
				this.$api.appPlateForm('POST', this.$url.all_message, '', function(res) {
   
					if (res.code == '200') {
   
						//1.获取到接口里,消息的数量
						that.tabBarNum = res.data.num
						
						//2.关键代码:设置红点
						if (that.tabBarNum > 0) {
   //设置底部消息通知
							uni.setTabBarBadge({
   
								index: 1, // 人脉页面在底部菜单栏的索引
								text: String(that.tabBarNum), // 要显示的文本(必须是字符串类型)
							});
						} else {
     //移除底部消息通知
							uni.removeTabBarBadge({
   
								index: 1 // 人脉页面在底部菜单栏的索引
							});
						}
					}
				})
			},
			
		}
	}
</script>

2.cart.vue

购物车页面

<script>
	export default {
   
		data() {
   
			return {
   
				tabBarNum: '' //底部消息数量
			}
		},
		onLoad() {
   
			this.footMsgFun()  //调用底部方法
		},
		onShow() {
   
			this.footMsgFun()  //调用底部方法
		},
		methods: {
   
			//底部:人脉红点显示
			footMsgFun() {
   
				var that = this
				this.$api.appPlateForm('POST', this.$url.all_message, '', function(res) {
   
					if (res.code == '200') {
   
						//1.获取到接口里,消息的数量
						that.tabBarNum = res.data.num
						
						//2.关键代码:设置红点
						if (that.tabBarNum > 0) {
   //设置底部消息通知
							uni.setTabBarBadge({
   
								index: 1, // 人脉页面在底部菜单栏的索引
								text: String(that.tabBarNum), // 要显示的文本(必须是字符串类型)
							});
						} else {
     //移除底部消息通知
							uni.removeTabBarBadge({
   
								index: 1 // 人脉页面在底部菜单栏的索引
							});
						}
					}
				})
			},
			
		}
	}
</script>

三、真实案例

		onLoad() {
   
			this.getCartData();
		},
		onShow() {
   
			this.getCartData();
		},
		mounted() {
   
			this.getCartData();
		},
		methods: {
   
			getCartData() {
   
				let self = this;
				self.isloadding = true;
				self._get('index/index', {
   
					url: self.url
				}, function(res) {
   
					self.cart_total_num = res.data.cart_total_num;
					if (self.cart_total_num > 0) {
   
						uni.setTabBarBadge({
   
							index: 3, 
							text: String(self.cart_total_num), 
						});
					} else {
    
						uni.removeTabBarBadge({
   
							index: 3 
						});
					}
				});
			},
}

参考

官网
参考使用这个大佬

大佬2

最后

感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

相关推荐

  1. uni-app自定义tabbar(van-tabbar

    2023-12-10 01:22:02       48 阅读
  2. uni-app 自定义tabbar

    2023-12-10 01:22:02       34 阅读
  3. 【uniapp】uniapp安卓apk图标角设置消息数量

    2023-12-10 01:22:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 01:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 01:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 01:22:02       82 阅读
  4. Python语言-面向对象

    2023-12-10 01:22:02       91 阅读

热门阅读

  1. 一步一步写线程之一简单的开始

    2023-12-10 01:22:02       52 阅读
  2. 如何设计自动完成系统

    2023-12-10 01:22:02       61 阅读
  3. PCL 三维点云中求解圆的三维方程

    2023-12-10 01:22:02       59 阅读
  4. FPGA | Verilog基础语法

    2023-12-10 01:22:02       68 阅读
  5. Vue笔记(四)路由

    2023-12-10 01:22:02       52 阅读
  6. 请简要介绍一下HTML的发展史?

    2023-12-10 01:22:02       50 阅读
  7. 区间价值 --- 题解--动态规划

    2023-12-10 01:22:02       60 阅读
  8. spring 两个service相互引用,会有循环依赖吗

    2023-12-10 01:22:02       56 阅读
  9. Lintcode 1160 · Campus Bikes (三元组排序好题)

    2023-12-10 01:22:02       45 阅读