位置: 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详解(定时器计数器实验报告)

  • 企业如何利用微博营销(企业如何利用微信做营销活动)

    企业如何利用微博营销(企业如何利用微信做营销活动)

  • 三星buds2怎么取消配对(三星buds2耳机)

    三星buds2怎么取消配对(三星buds2耳机)

  • 华为p40pro可以用5g网络的吗(华为p40pro可以用66w充电器吗)

    华为p40pro可以用5g网络的吗(华为p40pro可以用66w充电器吗)

  • 为什么iphone11没有震动(为什么iphone11没有ios16)

    为什么iphone11没有震动(为什么iphone11没有ios16)

  • 打印当前屏幕内容应使用的控制键是(打印当前屏幕内容怎么弄)

    打印当前屏幕内容应使用的控制键是(打印当前屏幕内容怎么弄)

  • 怎么建qq小号(怎样登录微信小号)

    怎么建qq小号(怎样登录微信小号)

  • Excel清除单元格格式在哪里(excel清除单元格字体格式)

    Excel清除单元格格式在哪里(excel清除单元格字体格式)

  • mate30电池容量(mate30电池容量83)

    mate30电池容量(mate30电池容量83)

  • 钉钉订正作业会提示老师吗(钉钉订正作业会在群里显示吗)

    钉钉订正作业会提示老师吗(钉钉订正作业会在群里显示吗)

  • 给别人点赞取消了别人能看到吗(给别人点赞取消了别人能看到吗抖音)

    给别人点赞取消了别人能看到吗(给别人点赞取消了别人能看到吗抖音)

  • g4930是几代(g4930相当于i5几代)

    g4930是几代(g4930相当于i5几代)

  • 小爱音箱添加联系人(小爱音箱添加联系人手机号)

    小爱音箱添加联系人(小爱音箱添加联系人手机号)

  • 抖音7000音浪可以换多少人民币(抖音70000万音浪多少钱)

    抖音7000音浪可以换多少人民币(抖音70000万音浪多少钱)

  • 什么是电子版文件(什么是电子版文字文档)

    什么是电子版文件(什么是电子版文字文档)

  • excel2010的主要功能包括(excel2010的主要功能)

    excel2010的主要功能包括(excel2010的主要功能)

  • ipadair3支持几代pencil(ipadair3支持airpods吗)

    ipadair3支持几代pencil(ipadair3支持airpods吗)

  • 来电黑屏不显示怎么回事(来电黑屏不显示号码怎么回事)

    来电黑屏不显示怎么回事(来电黑屏不显示号码怎么回事)

  • 单反nfc功能是什么(相机nfc在哪里打开)

    单反nfc功能是什么(相机nfc在哪里打开)

  • oppo官网电话号码多少(oppo官网联系电话)

    oppo官网电话号码多少(oppo官网联系电话)

  • 电脑如何登录微信公众号(电脑如何登录微软账户)

    电脑如何登录微信公众号(电脑如何登录微软账户)

  • 华为授权体验店可以贴膜吗(华为授权体验店可以免费贴膜吗)

    华为授权体验店可以贴膜吗(华为授权体验店可以免费贴膜吗)

  • qq空间存照片有限制吗(qq空间存的照片会不会突然就没有)

    qq空间存照片有限制吗(qq空间存的照片会不会突然就没有)

  • 电脑怎么下载微信到桌面(电脑怎么下载微博)

    电脑怎么下载微信到桌面(电脑怎么下载微博)

  • jkm一al00b怎么拆机(华为jkm-al00b拆机视频)

    jkm一al00b怎么拆机(华为jkm-al00b拆机视频)

  • 952开头拦截设置(952开头拦截设置 苹果手机)

    952开头拦截设置(952开头拦截设置 苹果手机)

  • 设置按住键盘重复输入字符频率(设置按住键盘重启怎么弄)

    设置按住键盘重复输入字符频率(设置按住键盘重启怎么弄)

  • 阿拉斯加普拉德霍湾附近的雄性麝牛 (© Oliver Smart/Alamy)(阿拉斯给加拉普)

    阿拉斯加普拉德霍湾附近的雄性麝牛 (© Oliver Smart/Alamy)(阿拉斯给加拉普)

  • 缺陷修改实践——replace函数的运用|思考?(缺陷修饰)

    缺陷修改实践——replace函数的运用|思考?(缺陷修饰)

  • 建筑业一般纳税人可以开3%的发票吗
  • 企业代扣代缴个人所得税系统
  • 承兑贴现几个点是月息还是年息
  • 定额的个体户需要汇算清缴吗
  • 三证合一是哪三证孩子上学
  • 在分公司签的合同能转到总公司吗
  • 报关时电子口岸电子委托应该什么时候做
  • 收到以前年度的政府补助会计分录
  • 叉车折旧年限是多少年
  • 劳动法相关法规
  • 预收账款和预付账款什么时候用
  • 股权转让溢价会计处理
  • 资产拍卖税费谁承担
  • 合同副本和正本区别
  • 建筑企业升资质主管单位
  • 折扣发票有什么作用
  • 已抵扣进项税额的购进货物或者应税劳务
  • 税友软件费用
  • 公司委托法人代收款
  • 含税销售额的计算公式是什么意思
  • 个人独资企业股权转让要交什么税
  • 工程项目处理废旧钢材怎么入账的
  • 发票冲红有时间要求吗
  • 使用权资产的界定
  • 核销单怎么做
  • 第一次申领发票可以增额吗?
  • 小规模零申报资产负债表报错了要交印花税吗
  • 固定资产双倍余额递减法计提折旧公式
  • 苹果电脑初始化设置
  • 期末留抵税额的减值
  • 商会收到的会费要交企业所得税
  • 挂靠借用资质账务处理?
  • 新准则规定
  • 路由器晚上关了,早上再开信号会好吗?
  • 深入解析wordpress
  • 税收变动作用
  • matlab绘图总结
  • 微信小程序从零
  • 毕业设计基于web难还是JAVA
  • 禁用dos命令
  • 员工工资属于什么会计科目
  • 社保单位当月应缴月报查询
  • 减按10%的税率是什么意思
  • {dede:channel type='son'}无栏目调用同级栏目
  • 补缴印花税分录
  • 会影响当期损益的科目有
  • 发票生活服务费填什么报销内容
  • 房租收入如何纳税
  • sql 获取指定字符位置
  • 产业扶持资金管理办法
  • 购入不需要安装的固定资产会计科目
  • 预付账款余额在贷方为
  • 取得与收益相关的政府补助计入什么科目
  • 业务协作费计入什么科目
  • 去年的增值税专用发票可以重开吗
  • 存货跌价准备的账务处理
  • 账面价值,账面净值,账面余额三者的区别存货
  • mysql数据库数据迁移
  • win10创意者更新易升
  • netdrive mac
  • redhat操作系统安装步骤
  • 七喜r11c笔记本
  • 输入法不显示怎么处理
  • office解压后如何安装
  • win10系统edge浏览器无法调用F12
  • win7桌面图标靠右
  • win8使用教程和技能
  • w10系统每次启动都要选择系统
  • 混合痔疮怎么治疗最好方法 女性
  • node js php
  • shell脚本编程实例
  • css-div
  • js中两个等号
  • activity生命周期的方法
  • 如何进行前后端交互
  • SpringMVC restful 注解之@RequestBody进行json与object转换
  • 房子总额70万首付多少
  • 残疾人创业有税收什么优惠政策
  • 税收通知
  • 关于个体户的个人所得税的最新政策法规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设