[uniapp的页面传参]详细讲解uniapp中页面传参的传递方式和接受方式 使用案例 代码注释
目录
- 一、传递方式
- 1. URL传参
- 2. Storage传参
- 3. Vuex传参
- 4.api传参eventChannel
- 二、接受方式
- 1. URL传参
- 2. Storage传参
- 3. Vuex传参
- 4.api传参eventChannel
- 三、使用案例
- 四.提醒
在uniapp中,页面传参是非常常见的需求。本文将详细讲解uniapp中页面传参的传递方式和接受方式,以及使用案例,同时附上代码注释。
一、传递方式
1. URL传参
URL传参是一种比较简单的传递方式,它是通过URL地址来传递参数的。我们可以在URL地址后面加上参数,例如:
<uni-button @click="goToDetail">跳转到详情页</uni-button>//编程式传参 比较常用
<navigator url="/pages/detail/detail?id=123">跳转到详情页</navigator>//标签传参
// 跳转到详情页,并传递id参数
goToDetail() {uni.navigateTo({url: '/pages/detail/detail?id=123'})
}
在接收页面中,我们可以通过this.$route.query来获取传递的参数:
export default {onLoad() {console.log(this.$route.query.id) // 输出:123}
}
对于微信小程序 this.$ route.query.id 可能不能使用 因为微信小程序不识别 this.$ route
而替代方案
不使用this.$ route 使用 onload传参
onLoad(getData) {//getData就是参数对象 兼用微信小程序console.log(getData.id);
}
2. Storage传参
Storage传参是通过uni-app提供的Storage API来传递参数的。我们可以在跳转之前将参数存储到Storage中,然后在接收页面中获取:
<uni-button @click="goToDetail">跳转到详情页</uni-button>// 跳转到详情页,并将id参数存储到Storage中
goToDetail() {uni.setStorageSync('id', 123)uni.navigateTo({url: '/pages/detail/detail'})
}
在接收页面中,我们可以通过uni.getStorageSync来获取存储的参数:
export default {onLoad() {console.log(uni.getStorageSync('id')) // 输出:123}
}
3. Vuex传参
Vuex传参是通过uni-app提供的Vuex API来传递参数的。我们可以在跳转之前将参数存储到Vuex中,然后在接收页面中获取:
<uni-button @click="goToDetail">跳转到详情页</uni-button>// 跳转到详情页,并将id参数存储到Vuex中
goToDetail() {uni.$emit('setId', 123)uni.navigateTo({url: '/pages/detail/detail'})
}
在Vuex中,我们可以定义一个state来存储参数:
const store = new Vuex.Store({state: {id: ''},mutations: {setId(state, id) {state.id = id}}
})
在接收页面中,我们可以通过mapState来获取存储的参数:
import { mapState } from 'vuex'export default {computed: {...mapState(['id'])},onLoad() {console.log(this.id) // 输出:123}
}
4.api传参eventChannel
api传参是通过uni-app提供的API来传递参数的。我们可以在跳转之前将参数存储到options中,例如:
<uni-button @click="goToDetail">跳转到详情页</uni-button>// 跳转到详情页,并传递id参数
goToDetail() {uni.navigateTo({url: '/pages/detail/detail',success: (res) => {res.eventChannel.emit('acceptDataFromOpenerPage', { id: 123 })}})
}
在这个例子中,我们使用了eventChannel来传递参数。我们在跳转之前,通过success回调函数来获取eventChannel,然后通过emit方法来传递参数。
在api传参的方式中,我们可以通过uni.on来监听传递的参数:
export default {onLoad() {const eventChannel = this.getOpenerEventChannel()eventChannel.on('acceptDataFromOpenerPage', (data) => {console.log(data.id) // 输出:123})}
}
在这个例子中,我们通过getOpenerEventChannel方法来获取eventChannel,然后通过on方法来监听传递的参数。
二、接受方式
1. URL传参
在URL传参的方式中,我们可以通过this.$route.query来获取传递的参数:
export default {onLoad() {console.log(this.$route.query.id) // 输出:123}
}
2. Storage传参
在Storage传参的方式中,我们可以通过uni.getStorageSync来获取存储的参数:
export default {onLoad() {console.log(uni.getStorageSync('id')) // 输出:123}
}
3. Vuex传参
在Vuex传参的方式中,我们可以通过mapState来获取存储的参数:
import { mapState } from 'vuex'export default {computed: {...mapState(['id'])},onLoad() {console.log(this.id) // 输出:123}
}
4.api传参eventChannel
在api传参的方式中,我们可以通过uni.on来监听传递的参数:
export default {onLoad() {const eventChannel = this.getOpenerEventChannel()eventChannel.on('acceptDataFromOpenerPage', (data) => {console.log(data.id) // 输出:123})}
}
在这个例子中,我们通过getOpenerEventChannel方法来获取eventChannel,然后通过on方法来监听传递的参数。
三、使用案例
下面是一个完整的使用案例,包括传递和接收参数的方式:
// pages/index/index.vue
<template><view><uni-button @click="goToDetail">跳转到详情页</uni-button></view>
</template><script>
export default {methods: {goToDetail() {// URL传参// uni.navigateTo({// url: '/pages/detail/detail?id=123'// })// Storage传参// uni.setStorageSync('id', 123)// uni.navigateTo({// url: '/pages/detail/detail'// })// Vuex传参uni.$emit('setId', 123)uni.navigateTo({url: '/pages/detail/detail'})}}
}
</script>// pages/detail/detail.vue
<template><view><text>{{ id }}</text></view>
</template><script>
import { mapState } from 'vuex'export default {computed: {...mapState(['id'])},onLoad() {// URL传参// console.log(this.$route.query.id)// Storage传参// console.log(uni.getStorageSync('id'))// Vuex传参// console.log(this.id)}
}
</script>// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {id: ''},mutations: {setId(state, id) {state.id = id}}
})uni.$on('setId', id => {store.commit('setId', id)
})export default store
以上就是uniapp中页面传参的传递方式和接受方式的详细讲解,以及使用案例和代码注释。希望对大家有所帮助!
四.提醒
以上的页面传参方式中
- URL传参
- Storage传参
比较常用 可以满足大家的开发需求
另外的传参方式 看场景和需求在做处理
希望对你有所帮助
相关文章:
[uniapp的页面传参]详细讲解uniapp中页面传参的传递方式和接受方式 使用案例 代码注释
目录 一、传递方式1. URL传参2. Storage传参3. Vuex传参4.api传参eventChannel 二、接受方式1. URL传参2. Storage传参3. Vuex传参4.api传参eventChannel 三、使用案例四.提醒 在uniapp中,页面传参是非常常见的需求。本文将详细讲解uniapp中页面传参的传递方式和接受…...
Python实现时间序列分析霍尔特季节性平滑模型(Holt算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 霍尔特季节性平滑模型是指数平滑技术的一种扩展形式,由E. S. Holt和P. R. Winters分别独立…...
Rokid Station 进fastboot
前一阵子手里的station开不开机了,反复重启,摸索出进fastboot的方法: 关机状态下同时按电源键下面的确认键(○键),指示灯会进入白色常亮状态,插入电脑会在设备管理器内显示DNL设备(…...
Java支持的默认访问修饰符是什么?
Java支持的默认访问修饰符是没有指定任何访问修饰符,通常被称为“包访问级别”或“默认访问级别”。当一个类成员(包括类、接口、变量以及方法)没有显式地指定任何访问修饰符时,它就会拥有默认访问级别。 在默认访问级别下&#…...
Java使用Documents4j实现Word转PDF(知识点+案例)
文章目录 前言源码获取一、认识Documents4j二、快速集成2.1、pom.xml依赖2.2、word转PDF实现项目目录WordUtils.javaDemo6.java测试效果 参考文章资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里…...
CSimplemathproblem ---- 牛客网
题目描述 这一节课,Priest给大家做了一个小测试。 老师给了你两个正整数X, Y。并按照一下规则做运算,求出答案Z。 如果X是Y的因数,则Z等于X Y。否则Z Y - X。 输入描述: 输入两个正整数X, Y。 (1 < X < Y < 100000000000000)。 输…...
[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令
目录 一、rtconfig.h 1.1 概述 1.2 软硬件资源配置 1.3 功能模块选择 1.4 内核配置详解 1.5 调度器配置 1.6 硬件设备驱动配置 1.7 网络配置 1.8 调试配置 二、menuconfig 2.1 概述 2.2 主要功能 三、RT Thread配置 VS Linux配置 一、rtconfig.h 1.1 概述 rtco…...
C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】
C面向对象程序设计-北京大学-郭炜【课程笔记(一)】 1、引用的概念1.1、引用应用的简单示例1.2、常引用 2、"const"关键字的用法(常量指针/指针常量)3、动态内存分配4、内联函数5、函数重载5.1、什么是函数重载5.2、函数…...
C语言:国家名称按字母表排序
题目描述 输入一个整数n(n<20),表示待输入国家的数量。随后输入n个国家或地区的名称 (名称长度为1~30),要求按字母顺序升序输出。 注意:名称中可能包含空格符。 提示 字符串比较请使用函数: int strcmp(const char* str1&a…...
2/18作业
1. #!/bin/bash function fun() { uidgrep ^ubuntu /etc/passwd | cut -d : -f 3 gidgrep ^ubuntu /etc/passwd | cut -d : -f 4 echo "uid为$uid,gid为$gid" } resultfun echo $result...
书生浦语笔记与作业汇总
第一节笔记 第二节笔记与作业 第三节笔记 第三节作业 第四节笔记 第四节作业 第五节笔记 第五节作业 第六节笔记 第六节作业...
嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之自动创建节点 (物联技术666)
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码:1688 驱动程序编写好后,还需要创建设备节点,有两种方式,一是通过mknod命令去手动创建,例如:mknod /dev/hello c 250 0&…...
基于51/STM32单片机的智能药盒 物联网定时吃药 药品分类
功能介绍 以51/STM32单片机作为主控系统; LCD1602液晶显示当前时间、温湿度、药品重量 3次吃药时间、药品类目和药品数量 HX711压力采集当前药品重量 红外感应当前药盒是否打开 DS1302时钟芯片显示当前年月日、时分秒、星期 DHT11采集当前环境温度和湿度 …...
【学网攻】 第(27)节 -- HSRP(热备份路由器协议)
系列文章目录 目录 系列文章目录 文章目录 前言 一、HSRP(热备份路由器协议)是什么? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交…...
【实战】二、Jest难点进阶(三) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(七)
文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶3.mock timers 学习内容来源:Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程,我在学习开始时(2023.08)采用的是当前最新版本: 项版本babel/core…...
Python编程中的异常处理
什么是异常? 程序错误(errors)有时也被称为程序异常(exceptions),这是每个编程人员都会经常遇到的问题。在过去,当遇到这类情况时,程序会终止执行并显示错误信息,通常是…...
mysql3.7之触发器
1.触发器的定义 触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行…...
12.QT文件对话框 文件的弹窗选择-QFileDialog
目录 前言: 技能: 内容: 1. 界面 2.信号槽 3.其他函数 参考: 前言: 通过按钮实现文件弹窗选择以及关联的操作 效果图就和平时用电脑弹出的选文件对话框一样 技能: QString filename QFileDialog::ge…...
ArcGIS学习(八)基于GIS平台的控规编制办法
ArcGIS学习(八)基于GIS平台的控规编制办法 上一任务我们学习了”如何进行图片数据的矢量化?" 这一关我们来学习一个比较简单的案例一一”如何在ArcGIS中录入控规指标,绘制控规图纸?" 首先,先来看看这个案例的分析思路以及导入CAD格式的控规图纸。 接着,来看…...
软件测试-自动化测试-面试题研究,知识要点,高频、重点知识点,自动化测试知识要点、知识梳理-PYTHON+自动化,评估试题
自动化项目实战能力评估 介绍一下你的自动化测试框架? 我的框架主要根据分层思想设计了几个独立模块: 模块一:主要存放通用业务代码,比如接口访问,数据库操作,excel 操作,等等 模块二…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
