记录微信小程序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 仍然正常工作,无需额外处理

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

相关推荐
暗冰ཏོ6 小时前
VUE面试题大全
前端·javascript·vue.js·面试
雨雨雨雨雨别下啦10 小时前
心理健康AI助手 - 项目总结
前端·javascript·vue.js·人工智能·信息可视化
风之舞_yjf10 小时前
Vue基础(32)_TodoList案例
前端·javascript·vue.js
程序软件分享13 小时前
vue多语言交易所系统/期货/合约交易/质押生息/盲盒/挖矿/跟单源码
前端·javascript·vue.js·期货平台源码
Rooting++14 小时前
package.json三种依赖的区别
vue.js·json
00后程序员张14 小时前
HTTPS单向认证、双向认证、抓包原理与反抓包策略详解
网络协议·http·ios·小程序·https·uni-app·iphone
Yeh20205814 小时前
springboot+vue笔记
vue.js·spring boot·笔记
h_654321015 小时前
uniapp-APP端获取拍照时的方向角,同一位置横竖屏拍方向角一致
uni-app
m0_7510186615 小时前
docker 安装 nginx
vue.js·nginx·docker
zyl8372115 小时前
3Dmol.js + Vue3快速上手
vue.js