当前位置: 首页 > news >正文

微信小程序页面传递参数方法

说明

        页面跳转方法有很多中,但经常会通过一个页面传递参数给另一个页面,非常的常见。但数据量大的时候,通常用字符串传递,但会显得过于臃肿,下面介绍页面传递参数的各种方式。


一、页面跳转链接携带参数

例如:A跳转到B页面携带参数

特点:只能传递单个页面,数据量少

A页面:
wx.navigateTo({url: '/pages/login/login?id=XXX'
});B页面接收数据
onLoad(options) {if (options.id) {console.log(options.id)//接收到参数}
}

当然,如果过多的参数时候,将会显示url: '/pages/login/login?id=XXX&id2=XXX&id3=XXX...'就会显得很臃肿,不易于维护和修改数据。

二、使用对象进行传递

将过多的数据进行对象化,然后再转成字符类型进行传递,传递之后再换成json格式

特点:只能传递单个页面,数据量可大

A页面:handletap: function() {var data = JSON.stringify(obj);wx.navigataTo({url: ‘url?data=’ + data    })
}B页面:
onload: function(option) { var data = JSON.parse(option.data)//传递参数
}
 

 三、监听acceptDataFromOpenerPage事件

监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据

特点:只能传递单个页面,数据量可大

A页面:handletap: function() {wx.navigateTo({url: '/pages/set_up/set_up',success: function(res) {// 通过eventChannel向被打开页面传送数据res.eventChannel.emit('adviser_list', adviser_list)}})
}B页面:
onload: function(option) { const eventChannel = this.getOpenerEventChannel()// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据eventChannel.on('adviser_list', function (data) {console.log(adviser_list)//传递参数});
}

 

四、通过公共js来缓存传递方法

在app.js文件里面,声明一个对象,然后将需要的数值存储进该方法里面,在需要的页面进行调用即可

特点:可以跨页面、多页面使用、关闭小程序自动清空

app.js{globalData: {adviser_list:"";//数据}
}
A页面:const App = getApp();handletap: function() {App.globalData.adviser_list="小明";//重点wx.navigateTo({url: '/pages/set_up/set_up',})
}B页面:
onload: function(option) { let adviser_lis = App.globalData.adviser_lis//传递的参数
}

五、通过缓存来进行数据传递

通过上一个页面缓存到内存里面,然后在需要的页面进行数据获取,可以跨多页面使用,数据永久有效,但是会增加多余缓存,需要清理,传递少的数据,建议使用前面方法

特点:可以跨页面、多页面使用、增加缓存,关闭小程序不会清空,永久使用

A页面:handletap: function() {let adviser_list={name:1,age:100}wx.setStorageSync('adviser_list',userInfo);//重点wx.navigateTo({url: '/pages/set_up/set_up',})
}B页面:
onload: function(option) { let adviser_list= wx.getStorageSync('adviser_list')||'';//获得参数,可以在想要的方法里面获取,不一定需要在onload方法里面。
}

还有组件传递参数,以及数据监听传递参数等,将不作过多的介绍,感兴趣的小伙伴可以在文章中寻找查看。


总结

文档主要介绍了页面传递参数的方法,少量的参数单页面使用可以采用方法一、大量的单页面使用可以采用方法二或三,多页面暂时缓存数据可以使用方法四,大量的数据多页面永久使用可以采用方法五。

相关文章:

微信小程序页面传递参数方法

说明 页面跳转方法有很多中,但经常会通过一个页面传递参数给另一个页面,非常的常见。但数据量大的时候,通常用字符串传递,但会显得过于臃肿,下面介绍页面传递参数的各种方式。 一、页面跳转链接携带参数 例如&#xf…...

出行类app如何提升广告变现收益?

出行类APP已经成为越来越多人们出行的首选,出行类app在变现方式上存在以下痛点:APP功能单一、使用场景单一;用户使用时间集中,粘性低...这些痛点使得开发者获取收益的提升面临极大的挑战。 https://www.shenshiads.com 如何让出…...

万能在线答题考试小程序源码系统 既能刷题 又能考试 带完整的搭建教程

现如今,线上学习和考试已经成为一种趋势。近年来,移动端的普及以及微信小程序的兴起,使得在线答题考试系统变得更加便捷和高效。今天罗峰就来给大家介绍一款万能在线答题考试小程序源码系统,既能刷题,又能考试&#xf…...

《Linux从练气到飞升》No.30 深入理解 POSIX 信号量与生产消费模型

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...

高防IP可以抵御哪些恶意攻击

高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性。能够有效抵御常见的恶意攻击类型ICMPFlood、UDPFlood、 TCPFlood、SYNFlood、ACKFlood等,帮助游戏、金 融、电子商务、互联网、政企等行业抵…...

vivado产生报告阅读分析6-时序报告2

1、复查时序路径详情 单击“ OK ”运行报告命令后 , 将打开一个新窗口。这样您即可复查其中内容。在其中可查看执行选定的每种类型 (min/max/min_max ) 的分析之后所报告的 N 条最差路径。 下图显示的“Report Timing ” ( 时序报告 ) 窗口…...

电脑怎么备份文件?简单几步,轻松备份!

电脑中存储着大量的个人和工作文件,包括照片、文档、音乐和视频等。但突发状况,如硬件故障、病毒感染或误删文件,可能会导致数据丢失。因此,备份文件至关重要。在本文中,我们将介绍三种电脑怎么备份文件的方法&#xf…...

获得不同干扰程度的模糊图像

同时对一共父级文件夹遍历。获得对应不同干扰程度的模糊图像 # This isimport cv2 import numpy as npdef reduce_resolution(image, factor):height, width, _ image.shape # 获取原始图像的宽度和高度new_width int(width / factor) # 计算新的宽度和高度new_height i…...

spring为什么要使用三级缓存来解决循环依赖

出现循环依赖的原因 AService依赖BService Service("aService") public class AService {AutowiredBService bService; } BService依赖AService Service("bService") public class BService {AutowiredAService aService; } 此时就出现了循环依赖 想…...

【自留地】前端 - uniapp - Vue - React - Flutter

uniapp uniapp自用速查表 - 我的常用组件 uniapp自用速查表 - 我的常用组件_uniapp static/customicons.css-CSDN博客文章浏览阅读1.8k次。uniapp项目登录退出、全局变量与状态、本地存储、Tabbar标签栏、顶部导航栏、下拉刷新、触底刷新、Ajax交互、内置组件样式修改、自定义…...

深度学习损失函数

Loss 是深度学习算法中重要的一部分,它的主要功能是评价网络预测的准确性和指导权重更新。合适 Loss 可以让网络收敛更快,预测更准。这个项目介绍了损失函数的基本概念以及7种常用损失函数的形式,性质,参数,使用场景及…...

百度智能云正式上线Python SDK版本并全面开源

文章目录 前言一、SDK的优势二、千帆SDK:快速落地LLM应用三、如何快速上手千帆SDK3.1、SDK快速启动3.2. SDK进阶指引 3.3. 通过Langchain接入千帆SDK4、开源社区 前言 百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线…...

Elasticsearch的配置学习笔记

文/朱季谦 Elasticsearch是一个基于Lucene的搜索服务器。它提供一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java语言开发的。 关于Elasticsearch系列笔记,主要从Elasticsearch的配置、核心组件、架构设计、使…...

LeetCode(25)验证回文串【双指针】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 验证回文串 1.题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&…...

Android设计模式--工厂模式

一,定义 工厂模式与Android 设计模式--单例模式-CSDN博客,Android设计模式--Builder建造者模式-CSDN博客,Android设计模式--原型模式-CSDN博客 一样,都是创建型设计模式。 工厂模式就是定义一个用于创建对象的接口,让…...

EasyExcel入门使用教程

文章目录 简介一、工程创建🎑二、读操作🎊二、写操作🎄总结 简介 数据导入导出意义 后台管理系统是管理、处理企业业务数据的重要工具,在这样的系统中,数据的导入和导出功能是非常重要的,其主要意义包括以下…...

Golang实现一个一维结构体,根据某个字段排序

package mainimport ("fmt""sort" )type Person struct {Name stringAge int }func main() {// 创建一个一维结构体切片people : []Person{{"Alice", 25},{"Bob", 30},{"Charlie", 20},{"David", 35},{"Eve…...

python语言实现背包问题动态规划

背包问题是一个经典的动态规划问题,实现方式如下: 假设有一个背包,容量为 W,有 n 个物品,每个物品有两个属性:体积 v 和价值 w。要求在不超过背包容量的情况下,选取一些物品放入背包&#xff0…...

将Python程序(.py)转换为Windows可执行文件(.exe)

python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http://www.jianshu.com/p/8abcf73adba3),并要将软件打包为可执行文件(.exe结尾),那如何将.py转为.exe ? 将.py转为.exe 第一步:安装pyinstaller(临时调用了国内豆…...

Oracle 查找非系统用户结合了10,11,12,19

oracle 12开始有了INHERITEDYES;字段来区分系统用户 select username from dba_users where INHERITEDYES; 对于12以下的版本,按created日期字段筛选会发现创建时间间隔比较大,好区分。 本人当前有个需求需要找出所有数据库的非系统用户,来…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...