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

  • oppok9s是5g手机吗(oppok9是5g网络手机吗)

    oppok9s是5g手机吗(oppok9是5g网络手机吗)

  • 拼多多自提货怎么自提(拼多多自提货怎么退款)

    拼多多自提货怎么自提(拼多多自提货怎么退款)

  • airpods pro怎么重新配对(airpodspro怎么重置不会被定位)

    airpods pro怎么重新配对(airpodspro怎么重置不会被定位)

  • mibox3s是什么设备(mibox4)

    mibox3s是什么设备(mibox4)

  • 路由器按了复位键为什么在连接没有网络了(路由器按了复位键后手机怎么设置)

    路由器按了复位键为什么在连接没有网络了(路由器按了复位键后手机怎么设置)

  • 华为云备份有必要开吗(华为云备份有必要吗)

    华为云备份有必要开吗(华为云备份有必要吗)

  • 华为nova7se有没有指纹解锁(华为Nova7se有没有红外)

    华为nova7se有没有指纹解锁(华为Nova7se有没有红外)

  • ppt怎么设置切换时间(PPT怎么设置切换动画)

    ppt怎么设置切换时间(PPT怎么设置切换动画)

  • 微信头像旁边那个圈是什么(微信头像旁边那个耳朵是什么)

    微信头像旁边那个圈是什么(微信头像旁边那个耳朵是什么)

  • 苹果按键音关了还有声(iphone 按键音 关不掉)

    苹果按键音关了还有声(iphone 按键音 关不掉)

  • 苹果手机开不开机只显示苹果标志(苹果手机开不开机黑屏怎么办)

    苹果手机开不开机只显示苹果标志(苹果手机开不开机黑屏怎么办)

  • 电视上如何安装韩剧tv(电视上如何安装百度网盘)

    电视上如何安装韩剧tv(电视上如何安装百度网盘)

  • qq怎么看最近和谁聊天(qq最近和谁聊天)

    qq怎么看最近和谁聊天(qq最近和谁聊天)

  • 怎么改qq预设账号数量(怎么改qq预设账号数量破解)

    怎么改qq预设账号数量(怎么改qq预设账号数量破解)

  • 如何在excel表格中换行(如何在excel表格中添加图片)

    如何在excel表格中换行(如何在excel表格中添加图片)

  • 苹果7plus耳机插孔在哪里(苹果7plus耳机插孔是什么样子的)

    苹果7plus耳机插孔在哪里(苹果7plus耳机插孔是什么样子的)

  • 抖音视频不见了为什么(抖音视频不见了是怎么回事?解决方法看这里!)

    抖音视频不见了为什么(抖音视频不见了是怎么回事?解决方法看这里!)

  • 抖音评论怎么发图片(抖音评论怎么发搜索链接)

    抖音评论怎么发图片(抖音评论怎么发搜索链接)

  • 淘宝动态评分多久恢复(淘宝动态评分多久显示)

    淘宝动态评分多久恢复(淘宝动态评分多久显示)

  • 华为悬浮导航是干嘛的(华为悬浮导航是什么)

    华为悬浮导航是干嘛的(华为悬浮导航是什么)

  • mp2j2cha是ipad第几代(mp2g2cha是ipad几代)

    mp2j2cha是ipad第几代(mp2g2cha是ipad几代)

  • Redmi K20 Pro重量是多少(红米k20 pro重量)

    Redmi K20 Pro重量是多少(红米k20 pro重量)

  • 苹果 macOS 系统键盘快捷键列表大全整理(mac版本系统)

    苹果 macOS 系统键盘快捷键列表大全整理(mac版本系统)

  • phpcms安装步骤(php安装教程)

    phpcms安装步骤(php安装教程)

  • 企业所得税的账户设置
  • 主管税务机关是否参与清算
  • 不动产租赁开票税目
  • 免税发票是增值税发票吗
  • 企业的办税员承担责任吗
  • 天猫国际的店铺是正品吗 感觉很便宜
  • 房屋及建筑物属于什么会计要素
  • 外购固定资产账务处理
  • 其他应付款重分类到哪个科目
  • 半月的发票未认证能用吗
  • 车辆保险代交车船使用税会计分录怎么写?
  • 运费营改增时间
  • 预收房款发票开具需要注意哪些?
  • 公司将我转到另外一家公司
  • 电子发票开错怎么办
  • 增值税普票没有地址电话开户行信息可以吗
  • 附加税税种认定不完整是什么意思
  • 防伪税控开具发票明细表
  • windows10如何重置密码
  • 其他债权投资的交易费用计入什么科目
  • 房地产开发有限公司英文
  • php单双引号的区别
  • 企业向银行申请办理非原路的服务贸易退汇,银行应当
  • php教程 ftp 函数
  • 税收风险应对措施包括
  • 企业所得税税款
  • 提供应税服务的纳税义务发生时间
  • 开发支出应属于什么科目
  • 增值税的特殊项目
  • php精度丢失
  • Zinnowitz pier on Usedom island in the Baltic Sea, Germany (© Frank Günther/Getty Images)
  • 美国华盛顿山在哪里
  • ElementUI中<el-form>标签中 ref、:model、:rules 的作用
  • b站怎么进抖音模式
  • php100 jquery教程
  • 收到房租怎么做账务处理
  • mysql_install_db命令 初始化MySQL数据目录
  • 狂神说css笔记
  • python累加求和代码,直到最后一项小于10^-6
  • 外地预交的企业所得税如何在季度企业所得税申报
  • phpcms rce
  • 一个简单的后台与数据库交互的登录与注册[sql注入处理、以及MD5加密]
  • 清卡操作流程
  • 增值税普通发票查询
  • 工会经费能不能用于体检
  • 企业返聘退休人员需要交社保吗
  • 存货和总账不平如何调整
  • 因员工过失造成的工伤用不用赔
  • 建筑公司工程外包 税务
  • 资产减值损失年报怎么调整
  • 报销招待费是什么意思
  • 结转成本按照销售收入来结转,税要怎么算
  • 营业外收入适用的会计准则
  • 材料采购成本的计算分录
  • 年末进项大于销项怎么结转
  • 房租费计提如何入账
  • 什么是增资扩股协议
  • sql注入是干嘛的
  • sqlserver存储过程在哪里
  • Win10预览版怎么变回正式版
  • xp系统的本地连接在哪里打开
  • wind10手机版
  • win10系统下怎么安装caxa2016电子图板 caxa2016电子图板安装详细图文教程
  • windows小娜怎么开启
  • python 简单例子
  • perl中use的用法
  • javascript事件委托的用法及其好处简析
  • 菜鸟教程安卓下载
  • formatter参数
  • javascript中有哪些数据类型
  • jquery的dialog怎么使用
  • android contextmenu
  • unity 2d ik
  • pulls toward
  • jquery弹出提示框
  • 税收征管法规定税务机关在税款征收中可以采取哪些措施
  • 无偿赠送的税务怎么处理
  • 征管法第六十九条
  • 超市开发票每月额度,超了之后税率是多少
  • 北京市地税局第一稽查局郭洪鑫
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设