手把手教你基于uniapp框架实现动态路由动态tabbaruniapp

vue项目上有路由插件VueRouter,所有路由都是统一管理,可以统一拦截,控制下一步动作,但是在uniapp上,情况就不一样了。uniapp上没有路由插件,然后页面分为tabbar和非tabbar两种,页面跳转也有自己的一套api,最重要的路由拦截功能并不支持,所有的页面都是在page.json文件里提前配置好。

需求分析

总结起来说需求其实就两个:

1、实现uniapp路由守卫;

2、实现动态tabbar;

这张图里有些内容前面没有提到,比如状态管理、本地缓存,这是后面会用到的一个关键部分,下面的设计部分会提到。

方案设计

我们来捋一捋业务流程设计:

3、调用接口获取到路由并从服务端获取路由数据;将路由数据存入本地(vuex、uniapp缓存);

4、将tabbar这一层级数据单独提出来存储,结合uview的tabbar组件实现动态tabbar;

5、在本地存一个全量的app按钮集合(除了tabbar,其他页面都是通过按钮跳转),与服务端获取的数据进行比对,得到一个按钮展示与否的配置数据集;

6、路由信息初始化后,进入用户定制化的初始页或者首页;

ok,分析得差不多了,下面介绍下具体实操步骤。

解决方案

一、实现路由守卫

安装uni-simple-router插件

npminstalluni-simple-router接下来进行模块化配置,创建文件夹router,文件夹内容如下:

home文件里是所有页面的路由配置,就像这样:

modules文件夹下的index只是一个模块读取的代码;

constfiles=require.context('.',false,/\.js$/)constmodules=[]files.keys().forEach(key=>{if(key==='./index.js')returnconstitem=files(key).defaultmodules.push(...item)})exportdefaultmodulesrouter根级目录下的index内容主要就是路由守卫:

importmodulesfrom'./modules/index.js'importVuefrom'vue'importRouterfrom'uni-simple-router'importstorefrom'@/store/store.js'Vue.use(Router)//初始化constrouter=newRouter({APP:{holdTabbar:false//默认true},h5:{vueRouterDev:true,//完全使用vue-router开发默认false},routes:[...modules]//路由表});//全局路由前置守卫router.beforeEach((to,from,next)=>{//首先判断是否存在路由信息//不存在就先调用接口得到数据//具体内容可以参照上文的方案设计内容})//全局路由后置守卫router.afterEach((to,from)=>{})exportdefaultrouter;最后在app的main.js里需要这么引用:

importrouterfrom'./router/index.js'import{RouterMount}from'uni-simple-router'...//v1.3.5起H5端你应该去除原有的app.$mount();使用路由自带的渲染方式//#ifdefH5RouterMount(app,'#app');//#endif//为了兼容小程序及app端必须这样写才有效果//#ifndefH5app.$mount();//#endif至于后面的路由用法,直接看官方文档,比较清楚,用法跟vue-router差不多。这里要特别说明的是上面代码初始化的那一块的几个配置:holdTabbar:false,vueRouterDev:true,前者表示在app端取代原生的tabbar拦截,在这个插件里拦截;后者表示在h5中完全用vue-router的api,废弃了包括此插件及uniapp的原生api,后者请慎用。

二、结合状态管理、uniapp数据缓存管理app缓存开销

这里其实没什么难度,也不给代码了,很简单。

三、实现动态tabbar

由于tabbar是单独配置的,原生的uniapp没有动态配置的方法。找了一圈,发现uview的tabbar组件可以实现。这块还是把步骤列一下:一步步来,是可以实现的!

1、修改pages.json配置

"tabBar":{"list":[{"pagePath":"pages/index/index"},{"pagePath":"pages/about/about"}]},像这样,只留这些内容,跟原生配置比少了许多内容。

2、将tabbar信息单独存储到一个全局对象上

这一步可以存在vuex里,因为读取方便,uniapp的数据缓存读取稍微麻烦点。放在vuex里,取的时候很方便,像这样:

this.$store.state.userInfo.tabbarlist3、在每一个tabbar页面配置tabbar组件

changeTb(index){//uni.switchTab({//url:this.$store.state.userInfo.tabbarlist[index].pagePath//});this.$Router.pushTab(this.$store.state.userInfo.tabbarlist[index].pagePath)}需要说明的是,这种方法是把uniapp的原生tabbar给隐藏了的;上面用到的状态管理中的tabbarlist数据是一个结构参数完整的tabbar配置,但是tabbar页面可能不是完整的,由用户权限决定。

THE END
1.两个项目:一个干掉抖音,一个干掉拼多多**消费警示** - 消费领域存在的问题:1、恶性内卷形成的低价低质商品;2、虚假营销信息对消费者的欺骗;3、消费内容领域缺少权威、客观、科学公正的内容;4、消费评价体系不够完善。 - 如何解决:通过整合消费领域优质、权威、科学的消费内容,为消费者提供AI查询工具,识别品牌商品质量安全风险,帮助消费者规避假冒伪劣,少https://maimai.cn/article/detail?fid=1857155557&efid=_9Sp7SnnIS6OUl9-Yr2t-w
2.阳光手游自律联盟成立App应用内计费规范细则公布今日,国内三大电信运营商与百度、360等15家企业在京成立阳光手游自律联盟,并正式公布联盟计费规范等举措。 一、市场现状 随着移动互联网高速的发展及智能手机的快速普及,越来越多的用户通过智能手机App应用获取自己所需的有价服务,如何解决用户App应用内计费,是各大互联网公司、运营商重点关注的需求。 https://www.360doc.cn/article/51019757_714034834.html
3.申葳李斐丨中国辞书市场三十年1992年,中国辞书学会成立。30年来,在学会的大力引导下,中国辞书事业在理论建设、出版实践、人才培养等方面取得了巨大的成绩,辞书市场也愈来愈向规范、健康方向发展。本研究对中国辞书市场30年的发展历程进行总结,分析辞书市场的现状,以期为辞书市场的持续健康发展贡献一份力量。 http://zgcsxh.org.cn/subPage/newsInfo.html?id=579&type=topicActivity
4.直销热评网一周要闻:直销市场逐步回暖;蜜源因传销被罚没347万元本周企业方面,完美、安惠、康婷举办妇女节活动、3月1日起,由山东金天雪莲生态保养有限公司发起,近千名经营者和消费者共同签署了《规范市场经营行为,维护消费者利益自律公约》;3月4日,“金木集团大健康论坛暨30周年庆典”在金木国际产业园隆重举行;3月8日,亚非妇女发展与权益保障促进会在北京举办“女人如花阳光呵护http://www.hotds.com/news/html/47087.html
5.企业中高层时事解读课2022第7期(总期106期)在线培训课程证监会表示,将指导证券业协会、基金业协会和派出机构认真落实《管理办法》,制定配套自律管理规则,提升人员管理的规范水平,促进行业机构合规、稳健发展。 券商财务顾问评级面临重大调整 据报道,时隔9年,券商财务顾问评级指引迎来修订。中证协于2月中旬向券商下发《证券公司从事上市公司并购重组财务顾问业务执业质量评价指引https://www.zzqyj.net/?list_89/1330.html
6.《网络传播概论》万字笔记总结来咯(二)下沉市场缺乏消费潜力 (三)盲目开发与低端山寨 (四)用户信息安全风险激增 7.短视频app是怎样走红的?发展现状如何? (一)短视频app走红的原因 传播环境-互联网环境个性且开放,政策对于互联网产业的支持,社会资本的推动等,为各类短视频app提供了优质的成长土壤。 https://weibo.com/ttarticle/p/show?id=2309634800980918338334
7.全面剖析成人短视频app的市场需求用户偏好和行业发展趋势随着互联网的迅猛发展,成人短视频app逐渐成为网络文化的重要组成部分,这类应用以其独特的内容形式和广泛的用户群体,吸引了无数创作者和投资者的关注,成人短视频app究竟有何魅力?本文将深入剖析成人短视频app的市场需求、用户偏好以及行业发展趋势,帮助您更好地理解这一领域的现状与未来。 http://m.jichendigital.com/post/12721.html
8.APP?注册?入口登录雷速体育app怎么买球,大阳城集团app下载,百家乐对子如何打,166网上平台,雷速体育下载官网最新版安装新濠天地网上赌场app下载,乐鱼网页版登入,天庄棋牌,冰球突破豪华版单机版下载,体育棋牌官网入口手机版http ://m.9728.com,彩京 游戏,澳门正规网站有哪些,开云体育买世界杯安全吗,澳门和记门市飞天最新,即时比分90vshttp://m.hxcyja.com/20241213/2437334.html
9.KeepAPP市场营销策略分析.docxKeep APP市场营销策略分析.docx,PAGE 24 Keep APP市场营销策略分析 摘要:随着“互联网+”政策的不断推动和发展,“互联网+体育产业”的融合创新模式得以实现,大量以健身营销类APP为代表的互联网产品不断产生。本文将运用PEST模型、波特五力模型、SWOT模型、4P分析等方法https://m.book118.com/html/2024/0321/8126045126006047.shtm
10.理性回归下的OTTTV思考1、市场规模预期很大,但是市场的运营主体过多,无论是一体机还是各种盒子,使得最终价值被分流。 2、业务产品很多,但个体效益很差。在OTT上有众多的业务,但是同质化竞争加上缺乏付费空间,导致大家都缺乏有效收入。 3、应用选择很广,但电视化准备不足。打开OTT,琳琅满目,成千上万的APP,但是这些应用大都是从手机上https://www.tmtpost.com/39438.html
11.美团外卖调查研究论文(全文)根据国家统计局数据,2020年限额以上餐饮企业收入为8232亿元(图4)。从营业额集聚度来看,中国餐饮协会给出的数据显示,2019年中国餐饮百强企业营收额3273.8亿元(图5)。我国百强餐饮企业营业收入在全国餐饮营业收入占比长期低于7%,反映出国内餐饮市场经营者中小商户居多的现状。https://www.99xueshu.com/w/qw0p4g3zijvf.html
12.生存下去,你们的点COM公司正在试图开发并进入新的市场大学职业搜题刷题APP 下载APP首页 课程 题库模板 题库创建教程 创建题库 登录 创建自己的小题库 搜索 【单选题】 为了在激烈的市场竞争中能够生存下去,你们的点COM公司正在试图开发并进入新的市场领域。你们正在考虑要向省交通部发起的RFP项目进行投标,这个项目是要开发一套提示司机不要越过公路中心https://www.shuashuati.com/ti/0c198e6b111a4bb5b0748040b03178d8.html?fm=bdbdsd021d81587ebf503a23d662be5e9e13c
13.最新市场拓展部门职责(23篇)2. 熟悉物业市场的现状,具备市场分析及判断能力,有物业行业业务渠道和资源,具有客户视角和良好的客户服务意识,有成功独立拓展项目经验; 3. 工作积极主动,具有较强的开拓能力和洞察力,善于发掘客户需求及项目机会; 4. 善于交流,具有良好的组织协调能力、社交能力、沟通能力、商务谈判能力、团队合作精神,较强的营销策划https://fanwen.chazidian.com/fanwen1130688/