uniapp微信小程序底部动态tabBar问题怎么解决
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要讲解了"uniapp微信小程序底部动态tabBar问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"uniapp微信小程序底部动态
千家信息网最后更新 2025年11月08日uniapp微信小程序底部动态tabBar问题怎么解决
这篇文章主要讲解了"uniapp微信小程序底部动态tabBar问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"uniapp微信小程序底部动态tabBar问题怎么解决"吧!
需求
分包中如果有6个页面A B C D E F,这6个页面可以作为tabbar页面进行展示,具体配置通过后台接口返回(页面数量限制依然存在 2 - 5),比如后台配置A B C D E这个5个页面为tabbar页面,那么A B C D E将作为tab页展示,跳转方式也是tab方式跳转,跳转到F页面为普通navigate跳转。
这将解决 多商家底部tab配置问题,可以让商家自己配置小程序tab页的展示模式。
实现原理
1.自定义底部导航,数据通过接口获取
2.将需要配置成tab的页面内容抽离成为组件,对应页面直接引用组件,tab页面引用全部组件,并根据当前tab页对应的组件页面路径分别展示。
3.解决组件的生命周期问题。
实现
页面整体结构
pages.json页面配置好5个tabbar模板页面,并且使用了easycom模式,自动加载组件
"easycom": { "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue", "^sww-(.*)": "@/components/sww-$1/sww-$1.vue" },"tabBar": { "color": "#7A7E83", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [ { "pagePath": "pages/index/index" }, { "pagePath": "pages/module-page-one/index" }, { "pagePath": "pages/module-page-two/index" }, { "pagePath": "pages/module-page-three/index" }, { "pagePath": "pages/module-page-four/index" } ] }自定义tabbar使用的uview组件
//sww-tab-bar
vuex中保存的tabbar数据格式
vuex_tab_bar: { list: [], activeColor: '', inactiveColor: '', current: 0 },vuex_tab_bar_default: { //接口未获取到数据时使用的默认tabbar list: [ { iconPath: '/static/tab/home.png', selectedIconPath: '/static/tab/home_fill.png', text: '首页', url: '/package/index/index' }, { iconPath: '/static/tab/cat.png', selectedIconPath: '/static/tab/cat_fill.png', text: '分类', url: '/package/product/category/index' }, { iconPath: '/static/tab/community.png', selectedIconPath: '/static/tab/community_fill.png', text: '链圈', url: '/package/index/circle/index' }, { iconPath: '/static/tab/cart.png', selectedIconPath: '/static/tab/cart_fill.png', text: '购物车', // url: '/package/user/order/index' url: '/package/user/cart/index' }, { iconPath: '/static/tab/user.png', selectedIconPath: '/static/tab/user_fill.png', text: '我的', url: '/package/user/index' } ], activeColor: '#e93324', inactiveColor: '#666666', current: 0 },上面的步骤已经完成了自定义底部tabbar,接下来是tab页面中使用组件的方式和tabbar数据的获取
//这里的代码是5个模板tab页面的内容,页面引入了所有可配置成为tab的组件,js部分抽离到mixins中进行代码复用
// tabPagemixinsimport {mapState} from 'vuex'const App = getApp()export const tabPage = { computed: { ...mapState(['vuex_tab_bar', 'vuex_module_page']), //获取当前tab页要显示的页面组件 pageModuleName(name) { return (name) => { if (this.vuex_tab_bar.list.length > 0) { //这里的url是后台用户配置的页面路径,此路径是分包中实际存在的页面路径,比如A页面要配置成为tab,那么就将A页面内容抽离成组件,后台配置此页面为tab,只需将A页面的实际路径进行配置即可 return this.vuex_tab_bar.list[this.tabIndex].url === name } else { return false } } } }, onLoad: function () { this.$nextTick(() => { try { if (this.vuex_tab_bar.list.length === 0) { App.loadTabBarList().then(() => { this.$refs.modulePageRef.$onLoad() }) } else { this.$refs.modulePageRef.$onLoad() } } catch (e) { } }) }, // isoH5在onshow时要重置分享 onShow: function () { this.$nextTick(() => { try { this.$refs.modulePageRef.$onShow() } catch (e) { } }) }, onHide: function () { this.$nextTick(() => { try { this.$refs.modulePageRef.$onHide() } catch (e) { } }) }, onPullDownRefresh: function () { try { this.$refs.modulePageRef.$onPullDownRefresh() } catch (e) { } }, onReachBottom: function () { try { this.$refs.modulePageRef.$onReachBottom() } catch (e) { } }, // 微信小程序分享(好友) onShareAppMessage: function () { return this.$refs.modulePageRef.getShareAppMessage() }, // 微信小程序分享(朋友圈) onShareTimeline: function () { return this.$refs.modulePageRef.getShareTimeline() }}感谢各位的阅读,以上就是"uniapp微信小程序底部动态tabBar问题怎么解决"的内容了,经过本文的学习后,相信大家对uniapp微信小程序底部动态tabBar问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
页面
组件
配置
底部
程序
问题
内容
路径
动态
后台
数据
接口
方式
学习
代码
商家
实际
模式
模板
普通
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
郑州联通服务器托管
Qt 如何连接达梦数据库
阿里专有云网络技术
数据库与分析的区别
人工智能 网络技术
让网络安全为国泰民保驾护航
扬州九一网络技术有限公司
软件开发跟电商有关系吗
贵州语音网络技术服务代理商
惠州易汇众盟网络技术怎么样
如何让别人访问自己的云服务器
深圳昂楷数据库安全审计系统
兴化网络技术价目表
osl网络安全体系
游戏服务器开发工程师
数据库数据具有什么性
虚拟机 dns服务器
mysql数据库创建有默认值表
怎么向别人解释网络安全
net软件开发工程师待遇
时代需要打造网络安全框架
智慧工地八大技术关系数据库
网络技术服务 工作计划
软件开发是需要数学好的吗
全世界有多少软件开发人员
转回原服务器名字会复原吗
通信网络技术发展
网络安全领导小组及职能
逍遥小说软件开发
数据库做压力测试工具