uniapp微信小程序底部动态tabBar问题怎么解决
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要讲解了"uniapp微信小程序底部动态tabBar问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"uniapp微信小程序底部动态
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
山东弘度互联网科技集团做什么的
服务器和存储的运维
少年网络安全教育活动
安微工业大学招软件开发硕士吗
人大数据库技术
深圳风豹互联网科技扣款
余姚安卓软件开发
杭州企业软件开发如何收费
可控数据库
dell的服务器 2021增长
丽水定制app软件开发平台
与4G网络安全架构相比
怎样做好电子商务网络安全
数据库中的等于号和赋值
cs最奇葩的服务器
区域矿产数据库
榆林市网络安全宣传周
工众网农民工数据库
网络安全 新闻稿
共青团网络安全推进会
北京标准软件开发预算
战舰世界服务器排名查询网址
网络安全和安全运维区别
借由数据库
云服务器ecs环境配置
华为网络安全上岗考试
数据库取整至千位数
明日之后更新服务器在哪里
河南浩瀚星云网络技术有限公司薪资怎么样
南通网络技术服务公司