记录微信小程序tabbar不显示问题:uni-app Vue 3 自定义 tabBar 不渲染

⚡⚡⚡ 欢迎预览,批评指正⚡⚡⚡


文章目录


1,问题描述

uniapp项目运行编译在游览器后,tabbar显示正常,但是在微信开发者工具中测试运行项目时发现不显示tabbar


2,根本原因

uni-app Vue 3 编译到微信小程序时,pages.json 中配置的:

javascript 复制代码
json
"tabBar": {
  "custom": true
}

自动实例化机制不可靠。框架并未按预期自动创建并挂载 custom-tab-bar 组件,导致自定义 tabBar 完全不显示。

3,解决方案:显式引入 + 手动放置

在全部 4 个 tabBar 页面中,显式引入组件并在模板中手动放置。

3.1,步骤 1:组件位置

确保自定义 tabBar 组件位于:

javascript 复制代码
text
src/
└── custom-tab-bar/
    └── index.vue

3.1,步骤 2:修改每个 tabBar 页面

需要对以下 4 个文件做完全相同的修改:

javascript 复制代码
pages/home/home.vue

pages/points/points.vue

pages/profile/profile.vue

pages/upload/upload.vue

修改内容

① 在

javascript 复制代码
<script setup>
import CustomTabBar from '@/custom-tab-bar/index.vue'
// 其他 import...
</script>

② 在 中放置组件

javascript 复制代码
<template>
  <view class="page-container">
    <!-- 页面原有内容 -->
    
    <!-- 手动放置自定义 tabBar -->
    <CustomTabBar />
  </view>
</template>

③ 关键样式(已在组件内或全局保证)

javascript 复制代码
.custom-tab-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
}

4,修改检查清单

文件路径 已引入 已放置 样式正确
pages/home/home.vue
pages/points/points.vue
pages/profile/profile.vue
pages/upload/upload.vue

5,编译与验证

重新编译

javascript 复制代码
npm run dev:mp-weixin
javascript 复制代码
# 或
npx uni -p mp-weixin

验证点

  • 微信开发者工具中,tabBar 是否固定显示在底部
  • 切换页面时 tabBar 是否保持显示
  • 激活状态(active)是否正常工作
  • 点击切换是否正常

6,为什么需要这样改?

方案 可靠性 说明
custom: true 自动实例化 ❌ 不可靠 uni-app Vue 3 编译到小程序时存在 bug
手动引入 + 放置 ✅ 可靠 完全可控,不依赖框架的自动实例化逻辑

7,注意事项

  1. 避免重复渲染:确保没有其他地方再次自动实例化同一个组件

  2. 页面容器高度:如果 tabBar 固定定位,需要给页面内容添加 padding-bottom 避免遮挡

javascript 复制代码
.page-container {
  padding-bottom: 100rpx; /* 根据 tabBar 高度调整 */
}
  1. 路由跳转:手动放置后,uni.switchTab 仍然正常工作,无需额外处理

感谢阅读,下期更精彩 👋👋👋

相关推荐
ShineWinsu9 分钟前
对于 Vue 3:开发前需要掌握的 JavaScript 核心基础:从变量、数组方法到 Promise、Async/Await 与 ES Module 的解析
javascript·vue.js·elasticsearch
雪芽蓝域zzs42 分钟前
第十七节:面包屑导航组件(适配多级嵌套路由)
前端·javascript·vue.js
凉红茶1 小时前
用Cursor开发微信小程序的第一天
微信小程序·小程序·ai编程
yume_sibai1 小时前
Element Plus 其他实用组件完全指南(10个核心组件)
前端·javascript·vue.js
雪芽蓝域zzs2 小时前
第二十二节:进阶:用户管理新增、编辑弹窗 + 表单校验
前端·javascript·vue.js
小马过河R2 小时前
微信小程序自定义登录态维护:从入门到生产级落地
后端·微信小程序·小程序·架构·登录态
计算机学姐2 小时前
基于SpringBoot的高校爱心慈善管理系统
java·vue.js·spring boot·后端·spring·tomcat·mybatis
RisunJan2 小时前
uni-app 高频面试题与解答
uni-app
雪芽蓝域zzs2 小时前
二十一节:进阶:用户列表批量删除功能
前端·javascript·vue.js
研☆香3 小时前
可选链运算符和空值合并运算符的使用
前端·javascript·vue.js