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" />
相关推荐
2601_9498049216 分钟前
开源多商户商城源码最新版_适配微信小程序+H5+APP+PC多端
微信小程序·小程序
木子啊24 分钟前
UniApp全端水印组件muzi-watermark
uni-app·水印·全局水印·uniapp水印
木子啊1 小时前
Uni-app企业级网络请求封装实战
uni-app·网络请求·request封装
yqcoder1 小时前
uni-app 之 uni.showActionSheet
uni-app
2601_949804922 小时前
宇鹿家政服务系统小程序ThinkPHP+UniApp(
小程序·uni-app
裴嘉靖3 小时前
uni-app 打包后 PDF 无法生成问题完整解决方案
pdf·uni-app
2501_933907214 小时前
上海本凡科技的微信小程序公司主要提供哪些服务?
科技·微信小程序·小程序
码农客栈4 小时前
小程序学习(十七)之获取前台分类数据并渲染
小程序
2601_949804924 小时前
【全开源】AJAX家政上门服务系统小程序自营+多商家(高级授权)+独立端
小程序
h7ml4 小时前
查券返利机器人图像识别:OpenCV 模板匹配对抗淘宝小程序动态化骨架屏
opencv·小程序·机器人