您的当前位置:首页>全部文章>文章详情

【UniApp】uniapp路由跳转传递与接收参数

CrazyPanda发表于:2023-12-13 23:16:51浏览:398次TAG:

Uniapp 是一个基于 Vue.js 的跨平台开发框架,它允许开发者使用一套代码来同时构建 iOS、Android、H5 等多个平台的应用。在 Uniapp 中,路由传参是非常常见的需求,它可以让页面之间进行数据的传递和交互。下面是对 Uniapp 路由传参的详细解析

一、传递参数

在 Uniapp 中,可以通过两种方式来传递参数:

1.通过 URL 参数传递

通过在 URL 中添加参数的方式传递数据,可以在目标页面中通过 $route.query 获取传递过来的参数。

例如,在 A 页面中跳转到 B 页面时,可以这样写

uni.navigateTo({
  url: '/pages/B/B?param1=' + param1 + '&param2=' + param2
})

在 B 页面中,可以通过以下代码获取传递过来的参数

export default {
  onLoad(options) {
    console.log(options.param1)
    console.log(options.param2)
  }
}

 2.通过路由跳转时传递参数

在使用 uni.navigateBack 方法返回上一个页面时,可以通过 options 参数向上一个页面传递数据。

例如,在 B 页面返回 A 页面时,可以这样写

uni.navigateBack({
  delta: 1,
  success() {
    let page = getCurrentPages().pop()
    if (page == undefined || page == null) {
      return
    }
    page.setData({
      data1: data1,
      data2: data2
    })
  }
})

在 A 页面中,可以通过以下代码获取传递过来的参数

export default {
  data() {
    return {
      data1: '',
      data2: ''
    }
  },
  onLoad() {
    console.log(this.data.data1)
    console.log(this.data.data2)
  }
}

二、获取参数

1.在 onLoad 中获取参数

在 onLoad 生命周期中,可以通过 options 参数获取传递过来的参数。

例如,在 A 页面中跳转到 B 页面时,可以这样写

uni.navigateTo({
  url: '/pages/B/B?param1=' + param1 + '&param2=' + param2
})

在 B 页面中,可以通过以下代码获取传递过来的参数

export default {
  onLoad(options) {
    console.log(options.param1)
    console.log(options.param2)
  }
}

 2.在页面中通过 $route 获取参数

在页面中可以通过 $route.query 获取传递过来的参数。

例如,在 A 页面中跳转到 B 页面时,可以这样写

uni.navigateTo({
  url: '/pages/B/B?param1=' + param1 + '&param2=' + param2
})

在 B 页面中,可以通过以下代码获取传递过来的参数

export default {
  computed: {
    query() {
      return this.$route.query
    }
  },
  mounted() {
    console.log(this.query.param1)
    console.log(this.query.param2)
  }
}

三、总结

Uniapp 路由传参的方法有两种,分别是通过 URL 参数传递和通过路由跳传参,其中通过 URL 参数传递的方式适用于在页面之间进行简单的数据传递,而通过路由跳转时传递参数的方式适用于在页面之间进行复杂的数据传递。

在获取参数时,可以在 onLoad 生命周期中通过 options 参数获取传递过来的参数,也可以通过页面中的 $route.query 获取传递过来的参数。如果需要在返回上一个页面时传递数据,可以在 success 回调函数中通过 getCurrentPages 方法获取当前页面栈的情况,然后通过 setData 方法将数据传递给上一个页面。

总的来说,Uniapp 路由传参非常方便,开发者可以根据实际需求选择适合的方式进行数据的传递和交互。

本文转自https://blog.csdn.net/m0_71469120/article/details/130265328,如有侵权,可联系删除

猜你喜欢

【UniApp】如何在uniapp中关闭webview
在使用uniapp开发时,经常会需要在应用中使用webview来加载外部网页或是展示其他内容。但是,有时候我们并不需要一直保持webview的打开状态,而是需要手动关闭。那么,本文将会介绍如何在uniapp中关闭webview。一、关闭当前页面在uniapp中,我们可以使用以下方法来关闭当前webview所在的页面:uni.navigateBack({     delta: 1 });这个方法会返回到上一个页面,即关闭当前页面。二、关闭
发表于:2023-12-22 浏览:334 TAG:
【UniApp】如何在uniapp中使用表单验证技术实现输入校验
如何在uniapp中使用表单验证技术实现输入校验作为一种基于Vue.js的跨平台应用开发框架,UniApp可以开发同时运行在多个平台的应用程序,其支持使用表单验证技术来实现输入校验。本文将介绍在UniApp中如何使用表单验证技术来实现输入校验,并提供具体的代码示例。表单验证是一种常见的前端开发技术,用于确保用户输入的数据符合相应的规则和要求。在UniApp中实现表单验证可以通过使用Vue.js提供的指令和事件处理机制来完成。下面将结合具体示例来介绍如何在UniApp中实现表单输入校验。
发表于:2023-12-11 浏览:346 TAG:
【UniApp】uniapp跳转新页面返回白屏怎么解决
在使用uniapp进行开发的过程中,我们经常会遇到许多技术问题。其中,一个比较常见的问题就是跳转新页面返回白屏。在本文中,我们将会探讨这个问题,并提供解决方案。一、问题表现在使用uniapp进行开发的过程中,当我们在一个页面中跳转到另一个页面时,如果返回原页面后,发现页面已经变成了一片空白,没有显示任何内容,这就是跳转新页面返回白屏的问题。二、问题原因通常情况下,跳转新页面返回白屏的原因可能会有以下几种:1.路由配置问题路由控制是uniapp开发中的一个非常重要的环节,如果我们在进行路
发表于:2023-12-17 浏览:347 TAG:
【UniApp】uniapp中使用PhotoSphereViewer全景图
近期有个项目要用到全景图,就开始研究做了一个demo,每次使用一个新东西,迎接的都是挑战本案例是在uniapp中引入全景图,插入markers节点:1. 下载依赖包npm install photo-sphere-viewer安装之后下载下来的包含 three.js  uevent.js  photo-sphere-viewer注: 可以不用在当前项目下创建node_modules,只需要把用到的文件复制到项目目录下即可2.uniapp中使用es6引入外部
发表于:2024-01-10 浏览:496 TAG:
【UniApp】uniapp 软键盘不自动关闭怎么解决
随着移动互联网的发展,使用框架、工具来快速开发APP的方式成为主流,uniapp作为跨平台的开发框架在开发中有着不可替代的作用,它可以支持多种平台,同时拥有着方便快捷、代码复用率高等优点。在uniapp开发中,软键盘的使用是非常常见的,但是,有时候开发者会遇到软键盘不自动关闭的问题,这就会导致用户在使用APP时的体验差,本文将介绍如何解决uniapp软键盘不自动关闭的问题。一、问题概述在开发uniapp过程中经常会使用input元素进行输入数据,这时候键盘会自动弹出,并自动关闭,在某些
发表于:2023-12-17 浏览:409 TAG:
【Uniapp】uniapp如何传递参数
一、通过URL传递参数URL是一种描述文件在计算机网络中位置的方式。在uniapp中,可以通过URL传递参数。在web开发中,可以通过query string来传递参数。在uniapp中有两种方式来进行URL传参:路由跳转和h5页面跳转:1.路由跳转uniapp中提供了一些路由相关的API,其中,uni.navigateTo和uni.redirectTo这两个API可以在跳转时携带参数。在跳转时,可以将参数以对象的形式传递给URL,并以query string(查询字符串)的形式来表示。如下所示
发表于:2024-03-26 浏览:324 TAG:
【UniApp】UniApp原生讯飞语音插件-YL-SpeechRecognition
由于插件文档图片部分可能无法显示,可以移步到CSDN博客,查看完整文档:https://blog.csdn.net/baiyuliang2013/article/details/130925332插件说明:支持安卓IOS双端!新版本已由必须联系本人打离线包,升级为线上购买后自主导入sdk打包,更方便快捷!当然,您在使用时遇到问题依然可以联系本人QQ:453503875,微信:同qq。若您只需要安卓端,可使用:Uts版插件:https://ext.dcloud.net.cn/plugin?id=1
发表于:2023-12-07 浏览:358 TAG:
【UniApp】uniapp应用如何实现绘画训练和动画制作
uniapp应用如何实现绘画训练和动画制作引言:随着移动互联网技术的不断发展,移动应用程序的开发变得越来越普遍。uniapp作为一款基于Vue.js框架的跨平台开发工具,为开发人员提供了一种简单高效的方式来构建跨平台的应用程序。本文将介绍如何使用uniapp实现绘画训练和动画制作,并附上具体的代码示例。一、绘画训练实现绘画训练可以让用户提升艺术技巧和创造力,uniapp提供了Canvas组件来实现绘画功能。下面是一个简单的绘画训练应用的示例代码:在uniapp的pages目录下创建一个
发表于:2023-12-11 浏览:423 TAG:
【UniApp】Flutter和uniapp的区别:适用场景、生态系统和社区支持
随着移动应用开发领域的迅速发展,各种跨平台开发框架也应运而生。在这些框架中,Flutter和uniapp无疑是两个备受关注的热门选择。它们都具有跨平台开发的能力,但在适用场景、生态系统和社区支持等方面存在一些区别。首先,适用场景是选择开发框架的重要考虑因素之一。Flutter是Google推出的UI框架,使用Dart语言进行跨平台开发。它主要适用于开发高性能的移动应用程序,特别是那些对视觉效果和动画效果要求较高的应用。Flutter具有热重载功能,在开发过程中能够实时预览修改后的效果,提高开发效
发表于:2024-03-31 浏览:316 TAG:
【UniApp】Flutter与uniapp哪个更适合移动应用开发需求
今天,移动应用开发已成为越来越多企业和个人关注的重点领域。对于开发者来说,选择一种适合自己需求的开发框架至关重要。在众多可选的开发框架中,Flutter和uniapp都是备受关注的两个。本文将比较这两个框架的优缺点,帮助读者选择最适合自己的移动应用开发方案。首先,让我们来了解一下这两个框架。Flutter是由谷歌开发的跨平台移动应用开发框架,其使用Dart语言进行编码。而uniapp是由DCloud开发的跨平台应用框架,其使用了Vue.js作为基础框架。对比Flutter和uniapp,首先要考
发表于:2024-03-31 浏览:289 TAG: