uniapp自定义tabbar导航解析

uni-app自定义底部导航uni-tabbar|仿微信tabbar导航栏,支持当前第几个选中、自定义背景、字体颜色

uniapp原生导航功能尽管不错,但有时并不能满足多样化的项目需求,如:自定义背景渐变、字体图标,一些特殊图标凸显效果,这时候就只能自定义tabbar来实现功能了。

如上图:H5、小程序、App端 下显示的自定义tabbar效果

图标可使用本地图片或阿里iconfont字体图标来,支持圆点提示,自定义背景、文字颜色

  • 新建tabbar.vue组件,并在main.js里面引入全局组件
<block v-for="(item,index) in tabList" :key="index">
	<view class="navigator" :class="currentTabIndex == index ? 'on' : ''" @tap="switchTab(index)">
		<view class="icon">
			<text class="iconfont" :class="item.icon" :style="[currentTabIndex == index ? {'color': tintColor} : {'color': color}]"></text>
			<text v-if="item.badge" class="uni_badge">{{item.badge}}</text>
			<text v-if="item.badgeDot" class="uni_badge uni_badge_dot"></text>
			</view>
		<view class="text" :style="[currentTabIndex == index ? {'color': tintColor} : {'color': color}]">{{item.text}}</view>
	</view>
</block>
<script>
	export default {
		data() {
			return {
				tabList: [
					{
						icon: 'icon-emotion',
						text: 'tab01',
						badge: 1
					},
					{
						icon: 'icon-qianbao',
						text: 'tab02',
					},
					{
						icon: 'icon-choose01',
						text: 'tab03',
						badgeDot: true
					}
				],
				currentTabIndex: this.current
			}
		},
		props: {
			current: { type: [Number, String], default: 0 },
			backgroundColor: { type: String, default: '#fbfbfb' },
			color: { type: String, default: '#999' },
			tintColor: { type: String, default: '#42b983' }
		},
		methods: {
			switchTab(index){
				this.currentTabIndex = index
				this.$emit('click', index)
			}
		},
	}
</script>
import tabBar from './components/tabbar.vue'
Vue.component('tab-bar', tabBar)
  • 在相应页面引入tabbar,并自定义tabbar属性参数

<tab-bar :current="currentTabIndex" backgroundColor="#fbfbfb" color="#999" tintColor="#42b983" @click="tabClick"></tab-bar>

<tab-bar :current="2" backgroundColor="#1a4065" color="#c3daf1" tintColor="#02f32b" @click="tabClick"></tab-bar>

点击tabbar选项,返回该选项索引值,可根据索引值显示不同页面组件。

data() {
	return {
		...
		currentTabIndex: 1
	}
},
methods: {
	tabClick(index){
		console.log('返回tabBar索引:' + index)
		this.currentTabIndex = index
	},
	...
},

好了,以上就是uni-app自定义tabbar简单实现方法。对于uni-app如何实现自定义顶部导航栏,可以看看下面这篇文章~~

https://blog.csdn.net/yanxinyun1990/article/details/100919657

 

uniapp中实现自定义tabbar导航栏的方法有多种。根据引用内容,可以看到有两种方法可以实现。 第一种方法是在父组件中引入tabbar组件,并在onLoad生命周期函数中隐藏原有的tabbar。然后在模板中使用tabbar组件,并通过routePath属性指定每个tab对应的页面路径。通过这种方式,可以实现自定义底部导航栏。\[1\] 第二种方法是创建一个总页面Index,并在模板中引入自定义tabbar组件。然后在总页面Index中引入自己写好的4个主页面(Home、Work、Message、My),并通过条件渲染的方式控制页面的切换。通过这种方式,可以实现自定义底部导航栏。\[2\]\[3\] 以上是两种常见的实现自定义tabbar导航栏的方法,你可以根据自己的需求选择其中一种来实现。 #### 引用[.reference_title] - *1* [uniApp自定义tabBar导航](https://blog.csdn.net/qq_1307495/article/details/129584773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [uni-app中如何自定义实现tabbar导航栏](https://blog.csdn.net/weixin_70811193/article/details/127946635)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoyan_2018

你的鼓励将是我持续作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值