uniapp小程序使用自定义底部tabbar,并根据用户类型动态切换tabbar数据

1.注意点

在pages.json中配置tabbar如下字段:custom:true ,会自动隐藏原生tabbar,使用自定义的tabbar

2.如何自定义呢

  • 可以使用第三方组件库的tabbar组件,然后二次封装下内部封装逻辑:
    1.点击切换逻辑
    2.根据用户类型,动态切换tabbar数据

3.具体逻辑实现,代码如下

(1)封装的自定义tabbar组件如下:

javascript 复制代码
<template>
	<tui-tabbar :current="propIndex" backgroundColor="#fff" :tabBar="tabBar" color="#000" selectedColor="#FF7D0D"
		@click="tabbarSwitch" :unlined="true"></tui-tabbar>
</template>

<script>
	import {
		globalTabbarData
	} from '@/common/utils.js'
	const app = getApp()
	export default {
		data() {
			return {
				tabBar: globalTabbarData
			}
		},
		props:{
			propIndex: { // 父组件传入激活的tab索引
				default: 0
			}
		},
		created() {
			const userInfo = uni.getStorageSync('userInfo')
			// 用户类型
			if(!userInfo.userType) { // 普通用户
				this.tabBar = globalTabbarData.slice(2)
			} else { // 发布者
				this.tabBar = globalTabbarData.slice(0, 2)
			}
		},
		mounted() {
			uni.switchTab({
				url:  '/' + this.tabBar[this.propIndex].pagePath
			})
		},
		methods: {
			tabbarSwitch(e) {
				uni.switchTab({
					url:  '/' + this.tabBar[this.current].pagePath
				})
			},
		}
	}
</script>

(2)组件使用

javascript 复制代码
<custom-tabbar :propIndex="1" />
相关推荐
mon_star°3 小时前
消防安全培训小程序项目亮点与功能清单
小程序
自然 醒4 小时前
uni-app开发微信小程序,如何使用towxml去渲染md格式和html标签格式的内容?
微信小程序·uni-app·html
编程迪4 小时前
基于Java和Vue开发的在线问诊系统医疗咨询小程序APP
小程序
CHB5 小时前
uni-agent,你的数字员工来了
人工智能·uni-app·vibecoding
CHU7290355 小时前
知识触手可及:在线教学课堂APP的沉浸式学习体验
前端·学习·小程序
h_jQuery5 小时前
uniapp使用canvas实现逐字书写任意文字内容,后合成一张图片提交
前端·javascript·uni-app
困困的果果头5 小时前
【uniapp】解决H5嵌套在web-view中时打包页面与状态栏重叠
前端·uni-app
前端 贾公子5 小时前
Uniapp 使用 UQRCode 创建二维码
uni-app
Rattenking5 小时前
uni-app组件开发----自定义数字键盘组件
前端·javascript·uni-app
竟未曾年少轻狂5 小时前
微信小程序-组件开发
微信小程序·小程序