uniapp动态路由实战方案uniapp用来开发app还是比较方便快捷的,官网教程挺细致,几乎所有问题都能找到答案。网上

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,分析得差不多了,下面介绍下具体实操步骤。

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,后者请慎用。

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

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

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

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

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.uView2.0全面兼容nvue的uniapp生态框架uni涵盖uniapp各个方面,给开发者方向指导和设计理念,让您茅塞顿开,一马平川 组件 众多组件覆盖开发过程的各个需求,组件功能丰富,多端兼容。让您快速集成,开箱即用 工具库 众多的贴心小工具,是您开发过程中召之即来的利器,让您飞镖在手,百步穿杨 布局 https://www.uviewui.com/
2.需求墙产品 HBuilderX极客开发工具uni-starter云端一体应用快速开发基本项目模版uniMPSDK用于原生App集成的小程序SDKutsuts语言uni-app开发一次,多端覆盖uni-aiuni-app xuni-app xuni-im即时通讯系统uniCloudjs开发服务端 请选择投票项我要提需求 温馨提示:每个产品每位用户1个月有3次投票机会 https://dev.dcloud.net.cn/wish/
3.小程序uniapp:uniappbase项目基础配置及使用/uni一、官网文档 微信开放文档 uni-app官网-quickstart uni-app官网-组件 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问gitee下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base https://blog.csdn.net/snowball_li/article/details/124716125
4.uni[CDATA[ uni-app App 端内置 HTML5+ 引擎,让 js 可以直接调用丰富的原生能力。 条件编译调用 HTML5+ 小程序及 H5 等平台是没有 HTML5+ 扩展规范的,因此在 uni-app 调用 HTML5+ 的扩展规范时,需要注意使用条件编译。否则运行到h5、小程序等平台会出现 plus is not defined错误。 // #ifdef APP-PLUS https://www.laiketui.com/tag/uni-app%E6%95%99%E7%A8%8B/feed
5.UNIAPP可视化开发工具UNIAPP可视化设计工具实现了UNIAPP后台、手机页面、以及模块生成等功能的一站可视化代码生成器,无需复杂操作UNIAPP一键生成后即可直接在UNIAPP上运行,开发者仅需负责更复杂的逻辑。https://www.diygw.com/uniapp.html
6.uni请在微信打开,谢谢https://www.andunlife.com/
7.uni景募科技——扫码挪车微信小程序 扫码挪车一键拨号 虚拟号码保护个人信息http://www.jingmu.online/
8.uni卡类型国标卡国密卡*卡号 安装位置请选择有0条记录车道号 设备类型读写器天线控制器其他卡槽123456备注 请输入内容 入库https://www.0755ids.cn/
9.uni关于衣库云收银系统概览合作单位历史http://www.yxii.com.cn/
10.uni匠心谷生产管理软件 请输入用户名 请输入密码 登录[修改密码]豫ICP备2024051284号http://www.ningjihome.cn/
11.uni1/3 8点场071355 古黛妃 短袖t恤女夏装2019新款韩版宽松¥179 潘歌针织连衣裙¥78 巧谷2019春夏季新品新款女装¥108.8 私萱连衣裙¥265 娇诗茹 ulzzang原宿风学生潮韩版春夏短¥422 古黛妃 短袖t恤女夏装2019新款韩版宽松¥179 精品团购Boutique Group Buying http://www.wydj.cool/
12.uni经开区概况业务办理http://www.tzjiaoqifu.cn/
13.uni1/3 8点场071355 精品团购Boutique Group Buying 分类精选Competitive Products For You 查看全部More+ 查看全部More+ Guess You Like It 联盟新成员New members of the Alliancehttp://www.healyourcar.com/
14.GitHubdcloudio/uniapp:Acrossuni-app是一个使用Vue.js开发小程序、H5、App的统一前端框架。官网地址:https://uniapp.dcloud.io 开发者使用Vue语法编写代码,uni-app框架将其编译到 小程序(微信/支付宝/百度/字节跳动/QQ/快手/钉钉/小红书)、App(iOS/Android)、H5等多个平台,保证其正确运行并达到优秀体验。 https://github.com/dcloudio/uni-app
15.uni卡通手绘自我介绍手抄报Word模板¥1.00 蓝色商务风格市场营销销售主管求职简历Word模板¥1.00 小清新销售助理市场营销求职简历Word模板¥1.00 紫色大气求职招聘应聘销售主管简历Word模板¥1.00 极简线条医疗器械销售求职简历Word模板¥1.00 经典简洁蓝色人力资源求职简历Word模板¥1.00 经典时尚风销售主管求职简历Word模板¥1.00 http://www.yukekj.cn/
16.uni4Accumulation12345678910湖艳https://www.sjxy.net/
17.uni登录欢迎回来!电话号码 请输入手机号 密码 请输入密码 忘记密码了?登录还没有账号?即刻注册http://www.lh5188.com/
18.uni首页 简介 已购 我的http://www.tshjwf.com/
19.uni请输入手机号 请输入密码 请输入验证码http://www.jetlink2020.cn/
20.uni1/0 产品推荐Recommendhttp://www.foretech.cn/
21.uni业余养蜜蜂 一个app就够了 蜂小帮APP下载养蜂+管理+交流 一站全搞定 精心设计养蜂操作,配上原理、用具说明,让您感受真正的科学养蜂。供需地图+行业标准+养蜂日志 让养蜂行业变得更有序 创建属于队伍的专属蜂场,地图上分享蜂场信息,行业资讯一手掌控。养蜂计划,让养蜂变的更轻松 自动排班 科学养蜂,全面规避。https://www.fengxiaobang.com/
22.uni欢迎来到知密圈 请输入账号 请输入密码 注册账号找回密码登录本机号码一键登录 勾选同意和《用户协议》、《隐私协议》http://www.sydishanqian.com/
23.uni养车/用车 足疗/按摩 附近美食 休闲娱乐 丽人/美发 商场/购物 >20km尊宝披萨|烤鸡披萨¥10.005.0折 >20km三米粥铺|咸骨粥¥10.005.0折 >20km岭南茶楼|蒸凤爪¥5.905.9折 >20km蒙自源米线|肥牛米线¥30.006.0折 >20km袁记云饺|全家福饺子¥27.004.9折 >20km海鲜研究所|黄金帝王蟹¥2383.009.6折 >20kmhttp://www.mc-serve.com/
24.uniapp入门教程PDF下载Java知识分享网API 接口。你可以在 DCloud 官网下载并安装 HBuilderX。 3. 创建uniapp 项目:打开 HBuilderX,点击“文件”->“新建”->“项目”,在弹出的窗 口中选择“uni-app 项目”,然后按照提示填写项目名称和项目路径,最后点击“创建” 即可。 三、项目结构 创建完项目后,你会看到如下的项目结构: * pages:用于存放页http://www.java1234.com/a/javabook/javabase/2024/0424/25183.html
25.uniapp框架v4.29.2024093009源码下载源码官网:官方网址 更新时间:2024-10-11 网友评分: 360通过腾讯通过金山通过 5.4MB 详情介绍 uni-app是一个使用 Vue.js 开发小程序、H5、App的统一前端框架。 开发者使用 Vue 语法编写代码,uni-app 框架将其编译到 小程序(微信/支付宝/百度/字节跳动/QQ/快手/钉钉/小红书)、App(iOS/Android)、H5等多个平台https://www.jb51.net/codes/839312.html
26.uniappuni-app是什么? uni-app 是 IDE 的跨平台开发扩展功能,支持在阿里云小程序开发者工具中将 uni-app 工程编译为微信小程序,并同时打开微信开发者工具。 Tag:IDEuni-appuniapp跨平台开发扩展 2022年12月1日 APP测试 苹果手机一键分发如何实现的? 苹果手机一键分发是指通过一个网页链接,用户可以直接在手机上安装应用https://www.yimenapp.com/kb-yimen/tag/uni-app/
27.uniappUI框架之uviewui使用教程uni-app2018年初发布以来,一直蓬勃发展,一派欣欣向荣,社区也是人声鼎沸,众望所归。 因此,uView应运而生,uView的目标是成为uni-app生态最优秀的UI框架。 接下来将介绍uview如何配置到uniapp项目中 如果你想了解到更详细的文档,进入uview官网查看 接下来将为你带来几种方式的图文教程 https://www.jianshu.com/p/d2900005b32a
28.uniAPP入门:从零开始的跨平台应用开发指南uni-APP 是由阿里云团队打造的一款前端框架,专为开发者提供跨 iOS、Android、Web 及小程序的统一开发环境。uni-APP 在简化代码重用、提升开发效率方面表现出色,其丰富的组件库和API,允许开发者使用一种语言(主要为 JavaScript)和一套代码库,即可构建出适用于多个平台的应用。本文将从跨平台性、组件丰富度、社区与支https://www.imooc.com/article/350863
29.uviewplus全面兼容nvue/鸿蒙/uniappx的uni涵盖uniapp各个方面,给开发者方向指导和设计理念,让您茅塞顿开,一马平川 组件 众多组件覆盖开发过程的各个需求,组件功能丰富,多端兼容。让您快速集成,开箱即用 工具库 众多的贴心小工具,是您开发过程中召之即来的利器,让您飞镖在手,百步穿杨 布局 https://uiadmin.net/uview-plus/