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

  • 电子商务网站推广用什么方法,网站推广的10个方法(电子商务网站推广论文)

    电子商务网站推广用什么方法,网站推广的10个方法(电子商务网站推广论文)

  • 苹果手表esim怎么开通(苹果手表esim怎么激活)

    苹果手表esim怎么开通(苹果手表esim怎么激活)

  • 电脑上破折号是哪个键(破折号在电脑键盘哪个位置)

    电脑上破折号是哪个键(破折号在电脑键盘哪个位置)

  • 苹果序列号g6开头是哪里生产的(苹果序列号G6开头什么意思)

    苹果序列号g6开头是哪里生产的(苹果序列号G6开头什么意思)

  • 12306会员要钱吗(12306会员需要钱吗)

    12306会员要钱吗(12306会员需要钱吗)

  • 电脑快速查找是哪个键(电脑查找是哪个快捷键)

    电脑快速查找是哪个键(电脑查找是哪个快捷键)

  • ivvi是什么牌子的手机(ivvi是什么牌子的手机 是名牌吗)

    ivvi是什么牌子的手机(ivvi是什么牌子的手机 是名牌吗)

  • 淘宝两天不发货怎么办(淘宝两天不发货,该赔偿多少钱)

    淘宝两天不发货怎么办(淘宝两天不发货,该赔偿多少钱)

  • qq幸运字符一共有哪些(qq幸运字符一共可以抽几个)

    qq幸运字符一共有哪些(qq幸运字符一共可以抽几个)

  • ipadpro第四代何时出(ipadpro第四代百度百科)

    ipadpro第四代何时出(ipadpro第四代百度百科)

  • 罗马仕充电宝怎么充电(罗马仕充电宝怎么拆开外壳)

    罗马仕充电宝怎么充电(罗马仕充电宝怎么拆开外壳)

  • 电信宽带wifi连上不能上网(电信宽带wifi连不上网怎么回事)

    电信宽带wifi连上不能上网(电信宽带wifi连不上网怎么回事)

  • 三星优思版是什么意思(三星优思版2019价格)

    三星优思版是什么意思(三星优思版2019价格)

  • 微信上面的字是怎么设置的(微信上面的字是怎么弄拼音的)

    微信上面的字是怎么设置的(微信上面的字是怎么弄拼音的)

  • vivoox23是防水的吗(vivox21a防水性能)

    vivoox23是防水的吗(vivox21a防水性能)

  • 苹果xs面容id不可用是什么原因(苹果xs面容ID不可用)

    苹果xs面容id不可用是什么原因(苹果xs面容ID不可用)

  • 微信为什么看不到朋友圈(微信为什么看不到附近的人)

    微信为什么看不到朋友圈(微信为什么看不到附近的人)

  • ipadmini2可以用笔吗(ipadmini可不可以用笔)

    ipadmini2可以用笔吗(ipadmini可不可以用笔)

  • 菜鸟裹裹如何加密包裹(菜鸟裹裹如何加入)

    菜鸟裹裹如何加密包裹(菜鸟裹裹如何加入)

  • vivoy93手电筒在哪里(vivoy93手机手电筒打不开怎么办)

    vivoy93手电筒在哪里(vivoy93手机手电筒打不开怎么办)

  • 抖音开直播要多少粉丝(抖音开直播要多少兆宽带)

    抖音开直播要多少粉丝(抖音开直播要多少兆宽带)

  • 电脑屏幕出现竖直条纹(电脑屏幕出现竖条纹怎么办)

    电脑屏幕出现竖直条纹(电脑屏幕出现竖条纹怎么办)

  • 芦荟的功效与作用及食用方法禁忌(图文)(芦荟的功效与作用治什么病)

    芦荟的功效与作用及食用方法禁忌(图文)(芦荟的功效与作用治什么病)

  • 没有网络摄像头 ,您将无法运行 Win11(有没有不需要网络的摄像头)

    没有网络摄像头 ,您将无法运行 Win11(有没有不需要网络的摄像头)

  • 使用Spring框架进行Web项目开发(初级)(使用spring框架,大概有哪些步骤)

    使用Spring框架进行Web项目开发(初级)(使用spring框架,大概有哪些步骤)

  • 偷税与漏税的界限是
  • 进项税和销项税税率一样吗
  • 二手房个人所得税是买方交还是卖方交
  • 土地价款抵扣增值税怎么做账
  • 应收账款的期末余额在借方表示什么意思
  • 不动产租赁服务属于现代服务吗
  • 材料卸车费包含在哪里
  • 企业所得税包含哪些税种
  • 土地增值税预征率
  • 长期股权投资的账面价值怎么计算
  • 外购动力的分录
  • 实物性投资资产
  • 建筑业暂估成本表
  • 哪些税不适用征管法
  • 品种法完工产品成本的单位成本怎么算
  • 违约金 罚款
  • 普通年金的定义
  • 反倾销税由谁缴纳
  • 销售营改增之后取得的固定资产
  • 金蝶kis迷你版操作手册
  • 零申报资产总额填注册资本怎么办呢
  • 不动产权时间怎么确认
  • 股东投进来的钱可以放哪个科目
  • 总部员工调往下属单位
  • 单位探望病人如何报销费用?
  • 销售价格调整
  • 应如何做会计分录表
  • 反结账是什么意思怎么取消
  • 安装win7前需要手动格式化c盘吗
  • 发放职工工资计入什么会计科目
  • pnaico.exe是什么软件
  • .ico是什么文件
  • php处理图片需要什么扩展
  • php写一个函数,算出两个文件的相对路径
  • 商业折扣影响入账金额吗
  • 资产负债表中投资总额是什么
  • php序列化和反序列化函数
  • 莫尔道嘎湿地公园
  • docker部署架构图
  • video.js教程
  • 不动产固定资产清理
  • 应付票据的贴现账务处理
  • 企业给企业借款收入会计处理
  • 企业重组后的债权怎么算
  • 资产负债表里长期股权投资是什么意思
  • jdbc描述
  • mongodb数据表
  • 织梦系统
  • 从在建工程调整到费用
  • 年终奖的个税税率
  • 电子发票额度余额怎么查
  • 固定资产一次性扣除政策
  • 基建和技改的区别
  • 银行 收美金
  • 员工报销固定资产怎么算
  • 预缴的增值税放哪个科目
  • 折扣方式销售如何确定销售额?
  • 装订好的凭证可以拿掉一页吗
  • mysql中字符串函数
  • SQL Server Table中XML列的操作代码
  • win7系统环境变量无法编辑怎么办
  • win8系统怎样查看本机的ip地址
  • 如何设置个性化桌面
  • mac ios应用
  • cygwin下载教程
  • 写出linux安装的详细步骤
  • 删除账户win10
  • win 10预览版
  • kinect unity开发
  • Extjs4 关于Store的一些操作(加载/回调/添加)
  • Extjs407 getValue()和getRawValue()区别介绍
  • opengl示例
  • linux oracle数据库登录
  • jquery keydown
  • js日期操作
  • node爬取数据
  • 禁止所有陌生人的来电设置
  • js函数的声明方式
  • 湖南省水利建设基金
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设