uniapp tabBar不显示

开发中发现某个页面不显示tabbar,而有的页面显示

需要在tabBar配置中添加需要展示的页面

刚开始我发现登录页面不展示tabbar,把登录页面的路径配置进去就会展示了

### UniApp TabBar 页面跳转刷新解决方案 在开发过程中遇到TabBar页面切换时刷新的问题,可以通过多种方式优化用户体验并防止必要的页面重载。 #### 方法一:使用原生TabBar配合自定义逻辑控制显示 为了处理TabBar切换页面时的刷新问题,可以在`pages.json`中配置原生TabBar,并在应用启动时隐藏它。这样做的好处是可以避免页面切换带来的视觉闪烁效应[^1]: ```json { "tabBar": { "list": [ {"pagePath": "pages/index/index", "text": "首页"}, {"pagePath": "pages/logs/logs", "text": "日志"} ] } } ``` 接着,在`App.vue`文件内加入初始化操作以移除缓存项并隐藏默认TabBar: ```javascript export default { onLaunch: function () { uni.removeStorageSync('selectedIndex'); uni.hideTabBar(); }, }; ``` 这种方法确保了每次重启应用程序之后都会将选中的索引位置恢复至初始状态,而会影响单次浏览期间的状态保持。 #### 方法二:调整生命周期函数调用时机 对于从普通页面向带有TabBar的目标页面传递数据的情况,建议采用`onShow()`而非`onLoad()`来进行参数获取与界面更新工作。因为当用户再次访问同一个TabBar下的子页面时,只会触发`onShow()`事件而一定会重新加载整个页面,从而有效减少了重复渲染造成的性能损耗以及可能存在的异常行为[^3]: ```javascript // 在目标页面(如B页面)中修改为如下形式: export default { data() { return {}; }, onLoad(options) {}, // 此处再用于接收参数 onShow() { const eventChannel = this.getOpenerEventChannel(); eventChannel.on('acceptDataFromOpenerPage', (data) => { console.log(data); // 对接收到的数据做进一步处理... }); } }; ``` #### 方法三:利用全局变量或Vuex管理共享状态 如果多个TabBar关联的同页面之间需要频繁交互,则考虑引入更高级别的状态管理模式——例如VueX库来集中存储和同步这些信息。这种方式仅有助于简化跨组件通信流程,还能更好地维护整体架构的一致性和可扩展性。 通过上述三种策略之一或者组合运用它们,能够显著改善UniApp项目中涉及TabBar场景的应用表现力和服务质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值