位置: IT常识 - 正文

【uni-app教程】四、UniAPP 路由配置及页面跳转(uni-app入门到实战)

编辑:rootadmin
【uni-app教程】四、UniAPP 路由配置及页面跳转 四、UniAPP 路由配置及页面跳转(1) 路由配置

推荐整理分享【uni-app教程】四、UniAPP 路由配置及页面跳转(uni-app入门到实战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uni'app,uni-app入门教程,uni'app,uni-app快速入门,uni app 视频教程,uni'app,uni'app,uni-app实战教程,内容如对您有帮助,希望把文章链接给更多的朋友!

uni-app页面路由为框架统一管理,开发者需要在pages.json里配置每个路由页面的路径及页面样式。类似小程序在 app.json 中配置页面路由一样。所以 uni-app 的路由用法与 Vue Router 不同,如仍希望采用 Vue Router 方式管理路由,可在插件市场搜索 Vue-Router。

"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index","style": {"navigationBarTitleText": "路由配置","navigationBarBackgroundColor": "#FFFFFF","navigationBarTextStyle": "black","backgroundColor": "#FFFFFF","enablePullDownRefresh": true}},{"path": "pages/list/list","style": {"navigationBarTitleText": "路由配置2","navigationBarBackgroundColor": "#FFFFFF","navigationBarTextStyle": "black","backgroundColor": "#FFFFFF","enablePullDownRefresh": true}}],(2) 路由跳转

uni-app 有两种页面路由跳转方式:使用 navigator组件跳转(标签式导航)、调用 API跳转(编程式导航) 框架以栈的形式管理当前所有页面,当发生路由切换的时候,页面栈的表现如下:

页面栈

框架以栈的形式管理当前所有页面, 当发生路由切换的时候,页面栈的表现如下:

路由方式页面栈表现触发时机初始化新页面入栈uni-app 打开的第一个页面打开新页面新页面入栈调用 API uni.navigateTo 、使用组件页面重定向当前页面出栈,新页面入栈调用 API uni.redirectTo 、使用组件页面返回页面不断出栈,直到目标返回页调用 API uni.navigateBack 、使用组件 、用户按左上角返回按钮、安卓用户点击物理back按键Tab 切换页面全部出栈,只留下新的 Tab 页面调用 API uni.switchTab 、使用组件 、用户切换 Tab重加载页面全部出栈,只留下新的页面调用 API uni.reLaunch 、使用组件(3)获取当前页面栈

getCurrentPages0函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个 元素为当前页面, 注意:getCurrentPages 仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。

(4)路由传参与接收【uni-app教程】四、UniAPP 路由配置及页面跳转(uni-app入门到实战)

说明:页面生命周期的 onLoad()监听页面加载,其参数为上个页面传递的数据,如

//在起始页面跳转到test.vue页面并传递参数uni.navigateTo({url: 'test?id=1&name=uniapp'});

url为将要跳转的页面路径,路径后可以带参数。参数与路径之间使用 ?分隔,参数键与参数值用 = 相连,不同参数用 & 分隔。如 'path?key1=value1&key2=value2' ,path为下一个页面的路径。下一个页面的onLoad函数可得 到传递的参数。

// 在test.vue页面接受参数export default {onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数console.log(option.id); //打印出上个页面传递的参数。console.log(option.name); //打印出上个页面传递的参数。}}

起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据

// 在起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据uni.navigateTo({ url: 'pages/test?id=1', events: { // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 acceptDataFromOpenedPage: function(data) { console.log(data) }, someEvent: function(data) { console.log(data) } ... }, success: function(res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' }) }})// 在test.vue页面,向起始页通过事件传递数据onLoad: function(option) { const eventChannel = this.getOpenerEventChannel(); eventChannel.emit('acceptDataFromOpenedPage', {data: 'data from test page'}); eventChannel.emit('someEvent', {data: 'data from test page for someEvent'}); // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据 eventChannel.on('acceptDataFromOpenerPage', function(data) { console.log(data) })}

url有长度限制,太长的字符串会传递失败,可改用窗体通信、全局变量,另外参数中出现空格等特殊字符时需要对参数进行编码,如下为使用encodeURIComponent对参数进行编码的示例。

<navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>// 在test.vue页面接受参数onLoad: function (option) {const item = JSON.parse(decodeURIComponent(option.item));}

注意:

页面跳转路径有层级限制,不能无限制跳转新页面跳转到 tabBar 页面只能使用 switchTab 跳转路由API的目标页面必须是在pages.json里注册的vue页面。如果想打开web url,在App平台可以使用 plus.runtime.openURL或web-view组件;H5平台使用 window.open;小程序平台使用web-view组件(url需在小程序的联网白名单中)。在hello uni-app中有个组件ulink.vue已对多端进行封装,可参考。(5)小程序路由分包配置

因小程序有体积和资源加载限制,各家小程序平台提供了分包方式,优化小程序的下载和启动速度。 所谓的主包,即放置默认启动页面及 TabBar 页面,而分色则是根据 pages.json 的配置进行划分。 在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,会把对应分包自动下整下来,下载完成后再进行展示,此时终端界面会有等待提示。

分包内静态文件示例

"subPackages": [{"root": "pages/sub","pages": [{"path": "index/index"}]}]

以上面的分包为例,放在每个分包root对应目录下的静态文件会被打包到此分包内。

预下载分包设置{"pages": [{"path": "pages/index/index","style": { ...}}, {"path": "pages/login/login","style": { ...}}],"subPackages": [{"root": "pagesA","pages": [{"path": "list/list","style": { ...}}]}, {"root": "pagesB","pages": [{"path": "detail/detail","style": { ...}}]}],"preloadRule": {"pagesA/list/list": {"network": "all","packages": ["__APP__"]},"pagesB/detail/detail": {"network": "all","packages": ["pagesA"]}}}
本文链接地址:https://www.jiuchutong.com/zhishi/295278.html 转载请保留说明!

上一篇:2023前端面试上岸手册——VUE部分(2021前端面试题校招)

下一篇:定时器 setTimeout、setInterval详解(定时器计数器实验报告)

  • 做推广时,如何做到系统化的思考和节奏化的管控?(如果做推广)

    做推广时,如何做到系统化的思考和节奏化的管控?(如果做推广)

  • 华为nova2s和荣耀20青春版对比(华为nova2s和荣耀9哪个好)

    华为nova2s和荣耀20青春版对比(华为nova2s和荣耀9哪个好)

  • 快手没实名认证会影响作品吗(快手没实名认证能查到那人吗)

    快手没实名认证会影响作品吗(快手没实名认证能查到那人吗)

  • 喜马拉雅上传音频审核未通过怎么办

    喜马拉雅上传音频审核未通过怎么办

  • 如何添加脚注横线(如何添加脚注横线上的字)

    如何添加脚注横线(如何添加脚注横线上的字)

  • 微信一直闪跳怎么回事(微信不停闪烁)

    微信一直闪跳怎么回事(微信不停闪烁)

  • excel数据整理的方法(excel怎么整理数据表)

    excel数据整理的方法(excel怎么整理数据表)

  • 小爱语音引擎是干啥的(小爱语音引擎是什么软件)

    小爱语音引擎是干啥的(小爱语音引擎是什么软件)

  • 腾讯视频签到不见了(腾讯视频签到不了怎么办)

    腾讯视频签到不见了(腾讯视频签到不了怎么办)

  • word怎么添加紫色底纹(word怎么添加紫色三磅方框边框)

    word怎么添加紫色底纹(word怎么添加紫色三磅方框边框)

  • 小米路由器3是千兆的吗(小米路由器3是wifi6吗)

    小米路由器3是千兆的吗(小米路由器3是wifi6吗)

  • 微信的浮窗是什么意思(微信里面的浮窗是什么意思)

    微信的浮窗是什么意思(微信里面的浮窗是什么意思)

  • 怎么把两个人的照片合在一起(怎么把两个人的聊天记录发给另外一个人)

    怎么把两个人的照片合在一起(怎么把两个人的聊天记录发给另外一个人)

  • visual studio code怎么用(visual studio code怎么添加图片)

    visual studio code怎么用(visual studio code怎么添加图片)

  • 苹果手机a1554是几代(苹果手机a1549是什么型号)

    苹果手机a1554是几代(苹果手机a1549是什么型号)

  • 恋爱记怎么解除关系(恋爱记怎么解除另一半)

    恋爱记怎么解除关系(恋爱记怎么解除另一半)

  • 快手查房是什么意思(快手怎么看房管)

    快手查房是什么意思(快手怎么看房管)

  • ipone时间限额怎么取消(苹果的时间限额怎么弄)

    ipone时间限额怎么取消(苹果的时间限额怎么弄)

  • 陌陌财富等级怎么看(陌陌财富等级怎么提升)

    陌陌财富等级怎么看(陌陌财富等级怎么提升)

  • oppoa9录屏在哪里(opa9录屏功能在哪里)

    oppoa9录屏在哪里(opa9录屏功能在哪里)

  • 抖音怎么将视频和照片合在一起(抖音怎么将视频发给QQ好友)

    抖音怎么将视频和照片合在一起(抖音怎么将视频发给QQ好友)

  • oppor11手机怎么录屏幕视频(oppor11手机怎么恢复出厂设置)

    oppor11手机怎么录屏幕视频(oppor11手机怎么恢复出厂设置)

  • 路由器突然不能上网怎么办 路由器突然无法连接网络的解决方法(路由器突然不能上网了显示红灯)

    路由器突然不能上网怎么办 路由器突然无法连接网络的解决方法(路由器突然不能上网了显示红灯)

  • phpcms二次开发是什么?(phpcms二次开发教程)

    phpcms二次开发是什么?(phpcms二次开发教程)

  • 全国增值税发票查验平台入口
  • 增值税出口退税计入什么科目
  • 免税是什么税
  • 政府的慰问金一般有多少钱
  • 补交以前年度的所得税
  • 年终奖是否列入社保基数
  • 企业政府性征地补偿款如何合法使用
  • 计提税费怎么写分录
  • 固定资产更换配件怎么界定是否满足资本化
  • 全体员工出去旅游朋友圈怎么发
  • 关于银行借贷的法律知识
  • 个税手续费返还比例
  • 房产税每次申报都要维护吗
  • 企业自建房是什么意思
  • 跨省非独立核算分公司如何报税
  • 专票作废后怎样退税
  • 税务行业软件
  • 个体工商户转为个人独资企业
  • 商业折扣销售会计分录
  • 怎么判断分红前已提取足够法定公积金?
  • 增值税转型后入账价值
  • 无法删除文件提示怎么办
  • 多提的费用如何做冲减分录
  • 公司购买一辆车
  • windows7为什么不能用了
  • 电脑病毒的特点包括
  • 股东借钱给公司怎么写借条
  • 不动产分期抵扣政策
  • 最大光圈相机
  • 酒店装修的整个流程图
  • 政府购买企业服务是否交税
  • 企业购买银行理财
  • php开源微商城
  • php连接
  • web前端修炼之道
  • 最强alpha什么意思
  • css3栅格布局
  • 控制器eabs
  • php考试时间倒计时
  • php获取远程图片文件流
  • 应该是下个月
  • 残疾人就业保障金会计分录怎么做
  • 解析sql语句
  • 伙食费怎么入账
  • 企业转让专利需要交什么税
  • 营改增后服务业账务处理
  • 研发产品收入的会计分录
  • 预付账款用途
  • 银行存款日记账怎么记账
  • 中国的法律依据是什么
  • 研发费用人工费用包括
  • 产品利润率如何计算
  • 发票作废了还能恢复吗?
  • sqlserver数据库备份
  • mysql5717安装及配置超详细教程
  • centos 离线安装git
  • linux系统配置ipv6地址
  • windows8触摸屏手势设置
  • mac上安装ios app
  • win 7快速启动
  • 一开机弹出个微软重新设定
  • linux系统安装驱动
  • win8一直配置更新
  • 向量上面有个倒着的v
  • js链式编程的原理
  • 幼儿园放鞭炮
  • nodejs中向HTTP响应传送进程的输出
  • jquery中ajax处理跨域的三大方式
  • Unite Beijing 2015大型活动
  • js对象值如何表示
  • c# addin
  • Material Design:利用RecyclerView CardView实现新闻卡片样式
  • 网络发票开票系统怎么设置?
  • 电子税务局申请开票额度增加
  • CA证书如何办理?
  • 深圳天然气收费价格表
  • 上海《居住登记凭证》
  • 国家税务总局34号
  • 海口市哪个地方最漂亮
  • 不动产契税怎么计算出来的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设