uniapp页面传值详解

uniapp是基于Vue框架开发的跨平台应用开发框架,能够同时生成iOS、Android和H5等多个平台的应用程序。在uniapp开发中,页面之间的参数传递无疑是一个非常核心的部分。接下来我们从多个方面对uniapp页面传值做详细的阐述。

一、uniapp页面传值异步

在uniapp开发中,页面传值的方式有很多种。最为常见的是异步传值方式,即先打开目标页面,然后再传递参数过去。下面是一个简单的传递字符串的例子:

//在当前页面传递参数
uni.navigateTo({
  url: 'targetPage?message=hello',
  success: function() {
    console.log('success');
  }
});

//在目标页面接收参数
export default {
  data() {
    return {
      message: ''
    }
  },
  onLoad(options) {
    this.message = options.message;
    console.log(this.message); //hello
  }
}

通过上述代码可以看到,使用uni.navigateTo跳转到目标页面时,在url的后面拼接参数message=hello,目标页面可以通过onLoad生命周期函数中的options参数获取到当前页面传递过来的参数,并将其赋值到本页面的data属性中。

二、uniapp页面传对象

除了传递字符串,我们还可以将对象传递给目标页面。同样地,在当前页面先打开目标页面,然后将对象通过url参数传递过去。目标页面同样可以通过onLoad生命周期函数中的options参数获取到当前页面传递过来的参数,然后将其赋值到本页面的data属性中。下面是一个传递对象的例子:

//在当前页面传递参数
uni.navigateTo({
  url: 'targetPage?name=张三&age=18',
  success: function() {
    console.log('success');
  }
});

//在目标页面接收参数
export default {
  data() {
    return {
      person: {}
    }
  },
  onLoad(options) {
    this.person.name = options.name;
    this.person.age = options.age;
    console.log(this.person); //{name: "张三", age: "18"}
  }
}

三、uniapp页面传值的几种方式

1. uniapp页面之间传值

在uniapp页面之间传递数据,除了可以使用异步传值方式,还可以使用全局变量、缓存、Vuex等方式实现。下面是使用全局变量传值的示例:

//在main.js文件中定义全局变量
Vue.prototype.global = {
  message: ''
}

//在当前页面设置全局变量的值
this.global.message = 'hello';

//在目标页面获取全局变量的值
console.log(this.global.message); //hello

2. uniapp页面传参数

除了使用url参数传递数据,还可以在跳转页面时通过query参数传递数据。与url参数传递数据的方式类似,只需要在生成路由时传递参数即可。下面是一个使用query参数传递数据的示例:

//在当前页面传递参数
uni.navigateTo({
  url: 'targetPage?name=张三&age=18',
  query: {
    message: 'hello'
  },
  success: function() {
    console.log('success');
  }
});

//在目标页面获取query参数的值
console.log(this.$route.query.message); //hello

3. uniapp页面之间传递参数

在uniapp中,页面之间可以通过事件总线传递参数。我们可以在全局挂载一个事件总线,然后不同的页面通过事件总线进行传递信息。下面是使用事件总线传递参数的示例:

//在main.js文件中定义事件总线
Vue.prototype.eventBus = new Vue();

//在发送页面发送事件
this.$eventBus.$emit('message', 'hello');

//在接收页面接收事件
mounted() {
  this.$eventBus.$on('message', message => {
    console.log(message); //hello
  })
}

四、uniapp传值方法

在uniapp中,页面之间的传值方式非常多,我们可以根据不同的需求选择合适的传值方式。下面是一个汇总uniapp传值方法的示例:

export default {
  data() {
    return {
      person: {},
      message: '',
      count: 0
    }
  },
  computed: {
    doubleCount() {
      return this.count * 2;
    }
  },
  methods: {
    handleClick() {
      //使用异步传值方式
      uni.navigateTo({
        url: 'targetPage?name=张三&age=18',
        success: function() {
          console.log('success');
        }
      });

      //使用全局变量传值方式
      this.global.message = 'hello';

      //使用query参数传值方式
      uni.navigateTo({
        url: 'targetPage?name=张三&age=18',
        query: {
          message: 'hello'
        },
        success: function() {
          console.log('success');
        }
      });

      //使用事件总线传递参数
      this.$eventBus.$emit('message', 'hello');
    }
  }
}

五、uniapp组件传值

在uniapp中,组件之间也需要传值。与页面传值相同,我们也可以通过props、$emit、事件总线等方式进行组件之间的传值。下面是一个使用props传值的示例:

//在父组件中传递参数

原创文章,作者:PAPS,如若转载,请注明出处:https://www.506064.com/n/149384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PAPSPAPS
上一篇 2024-11-04 17:50
下一篇 2024-11-04 17:50

相关推荐

  • 打包后页面空白的解决方案

    当我们在调试阶段时,我们的app可能看起来完美无缺,但当我们进行打包时,在运行app时,我们可能会遇到白屏或空白的问题。在这篇文章中,我们将探讨如何解决这种问题。 一、检查文件路径…

    编程 2025-04-29
  • Python操作Web页面

    本文将从多个方面详细介绍Python操作Web页面的技巧、方法和注意事项。 一、安装必要的库 在Python中操作Web页面,需要用到一些第三方库。 pip install req…

    编程 2025-04-28
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • uniapp分页第二次请求用法介绍

    本文将从多个方面对uniapp分页第二次请求进行详细阐述,并给出对应的代码示例。 一、请求参数的构造 在进行分页请求时,需要传递的参数体包含当前页码以及每页显示的数据量。对于第二次…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • C语言贪吃蛇详解

    一、数据结构和算法 C语言贪吃蛇主要运用了以下数据结构和算法: 1. 链表 typedef struct body { int x; int y; struct body *nex…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25

发表回复

登录后才能评论