微信小程序怎么实现非tabbar页面显示tabbar,自定义组件实现

微信小程序没有发现可以实现非tabbar页面显示tabbar的方法,但是可以在tabbar页面当中隐藏tabbar,使用wx.hideTabBar()方法就可以实现,在非tabbar页面调用wx.showTabBar()方法却会显示失败,不能显示tabbar

javascript 复制代码
        onLoad() {
			wx.showTabBar({
				success() {
					console.log('success')
				},
				fail(err) {
					console.log(err, 'fail')
				}
			})
		},    

报错如下:显示该页面非tabbar页面


可以选择自定义组件组件实现,代码实现如下:

在项目根目录下面创建一个组件文件(/component/tabbar/index.vue)

javascript 复制代码
<template>
	<view>
		<view class="tabbar">
			<u-tabbar :value="value1" @change="tabbarChange" :fixed="false" :placeholder="false"
				:safeAreaInsetBottom="false">
				<u-tabbar-item text="求职者" icon="home"></u-tabbar-item>
				<u-tabbar-item text="聊天" icon="photo"></u-tabbar-item>
				<u-tabbar-item text="通讯录" icon="play-right"></u-tabbar-item>
				<u-tabbar-item text="我的" icon="account"></u-tabbar-item>
			</u-tabbar>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				value1: 0,
				url: '/pages/A/index'
			};
		},
		onLoad() {
			this.tabbarChange()
		},
		methods: {
			tabbarChange(index) {
				console.log('click', index);
				this.value1 = index
				tabbarIndex === 0 ? this.url = '/pages/A/index' : ''
				tabbarIndex === 1 ? this.url = '/pages/B/index' : ''
				tabbarIndex === 2 ? this.url = '/pages/C/index' : ''
				tabbarIndex === 3 ? this.url = '/pages/D/index' : ''
				wx.navigateTo({
					url: this.url,
				})
			}
		}
	}
</script>

<style lang="less">
	.tabbar {
		width: 100%;
		position: fixed;
		bottom: 0;
		left: 0;
		z-index: 99;
		box-shadow: 0rpx -8rpx 16rpx 0rpx rgba(208, 208, 208, 0.3);
	}
</style>

创建好了之后需要微信小程序里面的page.json文件引入

javascript 复制代码
{
    "usingComponents": {
		"tabbar": "../../components/tabbar/index"
	},
}

然后在需要tabbar页面当中进行注册并使用,这样就可以实现在任何需要tabbar的页面当中展示tabbar了

javascript 复制代码
<template>
    <view>
        <tabbar></tabbar>
    </view>
</template>

<script>
	import tabbar from '../../../component/tabbar/index.vue'
	export default {
		components: {
			tabbar
		},
		data() {
			return {
				
			}
		},
	}
</script>

不过在这个实现过程中使用了uview组件库,目前来看这个组件库还是能够满足小程序开发中的需求的,有常见的一些功能,很方便使用

介绍 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架

安装和配置在官网中都有相关使用步骤,可以查看!

相关推荐
DigitalOcean44 分钟前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
星始流年1 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
李惟1 小时前
开源本地通信库,纯客户端 RPC,像聊天一样通信
前端
YAwu111 小时前
深入解析 React 炫彩鼠标跟随标题组件:从坐标定位到动画性能
前端·react.js
GuWenyue1 小时前
排序效率低?5分钟吃透快速排序,性能飙升至O(nlogn)
前端·javascript·面试
OpenTiny社区1 小时前
🎨 看完 GenUI SDK 源码我悟了!
前端·vue.js·github
叁两1 小时前
前端转型AI Agent该如何学习?(前置篇)
前端·人工智能·node.js
何时梦醒1 小时前
深入理解递归与快速排序 —— 从基础入门到手写实现
前端·javascript
爱勇宝1 小时前
淡泊名利之前,先承认我们都很焦虑
前端·后端·程序员
bonechips1 小时前
LLM 的无状态:从 HTTP 协议到对话上下文工程
前端·javascript