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

  • 苹果商店怎么退款(苹果商店怎么退钱教程)

    苹果商店怎么退款(苹果商店怎么退钱教程)

  • excel小数点取整(Excel小数点取整数公式)

    excel小数点取整(Excel小数点取整数公式)

  • 华为mate30手机能用5g网络吗(华为mate30手机能用几年)

    华为mate30手机能用5g网络吗(华为mate30手机能用几年)

  • 快手小黄车多久可以提现(快手小黄车多久收益,多久提现)

    快手小黄车多久可以提现(快手小黄车多久收益,多久提现)

  • 电脑word怎么打次方(电脑word怎么打出圆圈1)

    电脑word怎么打次方(电脑word怎么打出圆圈1)

  • 芒果tv弹幕在哪里打开(芒果tv弹幕在哪里打开电脑)

    芒果tv弹幕在哪里打开(芒果tv弹幕在哪里打开电脑)

  • 钉钉能监控手机上的所有信息吗(钉钉是否能监控手机)

    钉钉能监控手机上的所有信息吗(钉钉是否能监控手机)

  • 抖音怎么添加无他相机(抖音怎么添加无痕浏览)

    抖音怎么添加无他相机(抖音怎么添加无痕浏览)

  • 微信发句号是什么意思(发微信发句号是什么意思)

    微信发句号是什么意思(发微信发句号是什么意思)

  • 一个vip可以用几个手机(一个vip可以用几个电视)

    一个vip可以用几个手机(一个vip可以用几个电视)

  • 软件系统由什么组成(软件系统由什么和应用软件两部分组成)

    软件系统由什么组成(软件系统由什么和应用软件两部分组成)

  • windows是安卓系统吗(安卓系统属于微软吗)

    windows是安卓系统吗(安卓系统属于微软吗)

  • 主板芯片组什么意思(主板芯片组什么意思b460)

    主板芯片组什么意思(主板芯片组什么意思b460)

  • 苹果8p有128内存的吗(苹果8p128内存版本是多少)

    苹果8p有128内存的吗(苹果8p128内存版本是多少)

  • 抖音可以随便定位吗(抖音可以随便定位多少公里)

    抖音可以随便定位吗(抖音可以随便定位多少公里)

  • 微信二维码怎么申请(微信二维码怎么恢复原来的样子)

    微信二维码怎么申请(微信二维码怎么恢复原来的样子)

  • 苹果如何关闭语音信箱(苹果如何关闭语音播报功能)

    苹果如何关闭语音信箱(苹果如何关闭语音播报功能)

  • iphonexsmax通话声音小

    iphonexsmax通话声音小

  • vue贴纸 文字如何修改(vue 粘贴)

    vue贴纸 文字如何修改(vue 粘贴)

  • 电脑内存满了怎么清理(电脑内存满了怎么删)

    电脑内存满了怎么清理(电脑内存满了怎么删)

  • 微信未启用的功能隐藏(微信未启用的功能打不开怎么回事)

    微信未启用的功能隐藏(微信未启用的功能打不开怎么回事)

  • 淘气值怎么助力(如何助力淘气值)

    淘气值怎么助力(如何助力淘气值)

  • 数字图书馆怎么登录(数字图书馆怎么下载pdf)

    数字图书馆怎么登录(数字图书馆怎么下载pdf)

  • ipad美版和国行的区别(iPad美版和国行的充电器一样吗)

    ipad美版和国行的区别(iPad美版和国行的充电器一样吗)

  • iphone粗体文本怎样设置(苹果手机开启粗体文本好吗)

    iphone粗体文本怎样设置(苹果手机开启粗体文本好吗)

  • 抖音上传失败保存草稿箱怎么回事(抖音上传失败保存到草稿箱)

    抖音上传失败保存草稿箱怎么回事(抖音上传失败保存到草稿箱)

  • MAC OS X Yosemite开启深色模式的方法

    MAC OS X Yosemite开启深色模式的方法

  • 车船税税金及附加计入管理费用嘛
  • 购销合同印花税按70%
  • 计提利息要计提手续费吗
  • 装修费用应该计入什么科目
  • 扫码开票开错了怎么改
  • 建筑业资源税如何缴纳
  • 横幅属于什么发票范围
  • 执行企业会计准则第21号租赁的企业
  • 私立医院申报程序
  • 货拉拉电子货票收款凭证是发票吗
  • 已经退税的增票怎么做账
  • 高新技术企业如何查询
  • 资本公积金转增股本是利好吗
  • 软件企业享受税收优惠
  • 转让土地缴纳增值税进项如何抵扣
  • 稿酬收入怎么算
  • 餐饮加盟公司怎么经营
  • 应收留抵税额退税款科目怎么添加进项
  • 收到货款未开发票怎么做分录
  • 外购商品赠送给顾客
  • 投资办厂协议
  • 案例分析互联网巨头的战略计划
  • 支票只能同城吗
  • 如何确定赊销额度
  • 长期待摊费用以后怎么摊销
  • 公司买空调开具的进项发票可以抵扣吗?
  • 商场收取商户违约金上什么税?
  • 如何查询发票是否验旧
  • 发票未到的费用怎么处理
  • 空调计入什么会计科目二级
  • win10提示病毒防护已过期
  • 进项税额转出能进成本吗
  • 购入成品油怎么做会计分录
  • 原材料盘亏计入
  • 评估增值资产如何记账
  • linux系统的文件与目录操作
  • thinkphp5.0自定义路由
  • php 替换
  • 盈利结转利润
  • keyemain.exe是什么进程
  • 申报补缴是什么意思
  • 发票上可以盖财务专用章和发票专用章吗
  • 密歇根湖怎么读
  • 文化事业2021
  • 持续集成的步骤
  • 企业年产值与年收入比例
  • 发票收款人与复核人为空
  • 餐费补贴是否计提
  • 接待客人的场合
  • 现金管理的四个方面
  • 其他应付款的会计编码
  • 一人有限公司和个人独资企业区别
  • 上月计提多了怎么办
  • 库存现金错账怎么调整
  • 红冲凭证怎么做分录
  • 无形资产入账价值包括费用化支出吗
  • 一次性收取一年的租金如何做分录
  • 车辆保险费没有发票会计分录
  • 一般纳税人购买固定资产进项税可以抵扣吗
  • 企业所得税季报营业成本包括哪些
  • 在sqlserver数据库中,执行sql语句
  • win8.1无法进入系统
  • win8怎么设置自动开机
  • 查看linux系统日志命令
  • win8浏览器打不开网页但能上网
  • mtr.exe
  • 铁嘴大师
  • jquery教程
  • xcopy 批处理
  • javascript解析
  • 原生js实现路由
  • android开发教程视频
  • jquery基本知识
  • javascript数据结构与算法百度云视频资源
  • 电子湖北税务局
  • 深圳个人税收完税证明网上打印
  • 广东省电子税务局官网登录入口
  • 北京国税网上办税服务大厅
  • 电子保险怎么查询车船税
  • 农村墓地规划土地使用程序和规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设