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

  • iphone13充电头多少瓦(iphone13充电头多少v)

    iphone13充电头多少瓦(iphone13充电头多少v)

  • 小米体重秤2怎么安装电池(小米体重秤2怎么校准)

    小米体重秤2怎么安装电池(小米体重秤2怎么校准)

  • 小米mix3电池温度如何查看(miui 电池温度)

    小米mix3电池温度如何查看(miui 电池温度)

  • 快手看不了别人的关注和粉丝(快手看不了别人的作品原声)

    快手看不了别人的关注和粉丝(快手看不了别人的作品原声)

  • 电脑主机漏电是什么情况(电脑主机漏电会电死人吗)

    电脑主机漏电是什么情况(电脑主机漏电会电死人吗)

  • 在哪里可以查到流量的使用情况(在哪里可以查到自己有没有网贷)

    在哪里可以查到流量的使用情况(在哪里可以查到自己有没有网贷)

  • 8G内存条能装win764位系统吗(8g内存支持系统吗)

    8G内存条能装win764位系统吗(8g内存支持系统吗)

  • 苹果xr怎么提升清晰度(苹果xr怎么提升系统版本)

    苹果xr怎么提升清晰度(苹果xr怎么提升系统版本)

  • 火山小视频为什么变成了抖音火山版(火山小视频为什么删不掉)

    火山小视频为什么变成了抖音火山版(火山小视频为什么删不掉)

  • 网际层协议都有哪些(网际层常用的协议除ip协议之外还包括)

    网际层协议都有哪些(网际层常用的协议除ip协议之外还包括)

  • 斗鱼办卡是永久的吗(斗鱼办卡有什么好处)

    斗鱼办卡是永久的吗(斗鱼办卡有什么好处)

  • 5v2a能充苹果x吗(5v2a冲苹果x)

    5v2a能充苹果x吗(5v2a冲苹果x)

  • 应用不允许截图怎么解决(手机显示该应用不允许截图)

    应用不允许截图怎么解决(手机显示该应用不允许截图)

  • 微信记录怎么查(查对方微信记录怎么查)

    微信记录怎么查(查对方微信记录怎么查)

  • 如何使用碰一碰支付(如何碰一碰电脑上的华为share标签)

    如何使用碰一碰支付(如何碰一碰电脑上的华为share标签)

  • 苹果怎么恢复以前照片(苹果怎么恢复以前的备份)

    苹果怎么恢复以前照片(苹果怎么恢复以前的备份)

  • qq音乐怎么更改密码(qq音乐怎么设置密码)

    qq音乐怎么更改密码(qq音乐怎么设置密码)

  • 什么是单模5g(什么是单模流量包?)

    什么是单模5g(什么是单模流量包?)

  • u盘无法读取怎么修复(u盘无法读取怎么回事)

    u盘无法读取怎么修复(u盘无法读取怎么回事)

  • 红魔手机后面的灯怎么亮(红魔手机后面的灯怎么关)

    红魔手机后面的灯怎么亮(红魔手机后面的灯怎么关)

  • paperwhite4上市时间(paperwhite4怎么样)

    paperwhite4上市时间(paperwhite4怎么样)

  • 苹果手机最近删除照片怎么设置(苹果手机最近删除相簿没有了)

    苹果手机最近删除照片怎么设置(苹果手机最近删除相簿没有了)

  • 小影如何制作视频(小影视频制作教程)

    小影如何制作视频(小影视频制作教程)

  • python中upper函数的用法是什么?(python uppercase函数)

    python中upper函数的用法是什么?(python uppercase函数)

  • 自然人收缴税务客户端
  • 计提工资年底余额所得税处理
  • 偶然所得税什么时候颁布
  • 被投资方宣告发放股票股利
  • 购房发票是不是增值税
  • 视同销售增值税表怎么填
  • 委托代征税务
  • 资源税的销售额包括
  • 小微企业享受减免税政策
  • 公司过账什么意思
  • 电子发票和纸质发票额度算在一起吗
  • 定期定额户超过定额怎么报个税
  • 城建税及教育附加税怎么算
  • 低价股权转让是利空还是利好
  • 银行抵债资产怎么管理
  • 法人转账到开户行的会计分录怎么做?
  • 工资可以用来抵扣成本吗
  • 物业费能开公司名称吗
  • 行政诉讼适用范围
  • 反倾销税由谁缴纳
  • 增值税已抵扣还能退税吗
  • 六大减税措施内容
  • 发票没有存根联怎么办
  • 汇算清缴调增的利润要进未分配吗
  • 合作建房分配的房屋
  • 缴纳投标保证金
  • 保洁属于劳务报酬吗
  • 融资租入固定资产计提折旧吗
  • 收到客户赔偿款计入什么科目
  • win7系统管理员密码忘了怎么办
  • 一般计税方法增值税
  • 盈利 利润
  • ekb install
  • object转map工具类
  • vscode怎么开始编程
  • 研发费用加计扣除政策指引2.0
  • 有限责任公司股东会的职权有哪些?
  • 专利代理服务费计入什么科目
  • 头歌HTML基础第一关初识HTML
  • vue3中如何使用vuex
  • phpcms文档
  • 查账征收的纳税人能否简易注销
  • 织梦怎么用模板建站
  • mysql 提示
  • 交易性金融资产的入账价值
  • 没有购销合同的销售额交印花税吗
  • 进口ddp税款如何缴纳
  • 最新成品油消费政策
  • 生育保险基金的筹集原则是
  • 物业公司代收电费可以差额征税吗
  • 车保险说给返钱是真的吗
  • 缴纳工会经费的依据
  • 购买汽车时的保险是什么
  • 房地产开发企业电费做什么科目
  • 收到劳务费发票如何申报个税
  • 会计从业资格证取消了吗
  • sqlserver数据库建库建表
  • 数据库sql server
  • sql server怎么复制表
  • mysqlvarchar汉字
  • wcu.exe是什么
  • watch programmes
  • xp的开始菜单
  • ubuntu更换版本
  • linux忘记root密码怎么办
  • windows一键安装
  • Win10 Mobile Build 14342上手体验视频
  • 微软windows10正版
  • python获取本地路径
  • asp.net 4.8
  • static function FindObjectsOfType (type : Type) : Object[]
  • js 不用var
  • python定义全局
  • 商标注册图形查询
  • 公共暖气管道维修费用由谁承担
  • 北京税务分所怎么样啊
  • 甲供材备案需要的资料
  • 税务稽查审理的基本原则
  • 地税是什么税种
  • 2017企业所得税年度申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设