uni-app使用封装导航栏

本文介绍如何在uni-app中通过封装tabBar.js,根据用户登录ID实现个性化导航栏。通过pages.json配置隐藏原生导航栏,并根据用户权限设置不同的tabBar组件。详细步骤包括设置状态管理,处理用户身份信息,以及在主页面中引用全局组件。
摘要由CSDN通过智能技术生成


由于uni-app原生导航栏存在很多功能不可以配置,特别是我需要用到根据登录的用户权限,来打开不同用户界面,这里不同就指的是导航栏的部分权限。

修改pages.json文件,隐藏原生导航栏


这里我们只需要保留原来的list里的路径即可

封装tabBer.js

const tabbarAD= [
	// 首页
	{
		// 未点击图标
		iconPath: "/static/report1.png",
		// 点击后图标
		selectedIconPath: "/static/report2.png",
		// 显示文字
		text: '',
		// 是否显示红点
		isDot: true,
		// 是否使用自定义图标
		customIcon: true,
		// 页面路径
		pagePath: "/pages/index/report"
	}, {
		iconPath: "/static/my1.png",
		selectedIconPath: "/static/my2.png",
		text: '个人中心',
		isDot: true,
		customIcon: true,
		pagePath: "/pages/personal/my"
	}
]
const tabbarBD=[]
const tabbarCD=[]
const tabbarABCD=[]
export default {
	tabbarAD,
	tabbarBD,
	tabbarCD,
	tabbarABCD
}

这里可以封装多个需要的类型,例如底部导航栏有4个,我这里AD就代表第一个和第四个,前端权限调用的时候,就可以区分开来。

用户id传值调用相应的权限

用户登录成功后先执行传值和匹配后,再进入主页面

this.$store.commit('setTabbarList', _res[0].id)

此时

export default {
	state: {
		tabbarList: []
	},
mutations: {
		setTabbarList: (state, userId) => {
			const _obj = {
				0: 'tabbarABCD',
				1: 'tabbarAD',
				2: 'tabbarBD',
				3: 'tabbarCD',
			}
			const type = _obj[+userId]
			state.tabbarList = tabBer[type]
		}
	},
}

记得把封住的组件main.js 里引用一下,成全局组件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值