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

微信小程序使用路由传参和传对象的方法

近期在做微信小程序开发,在页面跳转时,需要携带参数到下一个页面,尤其是将对象传入页面。为了方便重温,特此记录。

路由传字符串参数

原始页面

传递字符串参数比较简单。路由跳转有两种方式,一种是通过navigator组件的url完成,另一种是使用wx.navigateTo()跳转。wxml代码如下:

<!--pages/tim/index/index.wxml-->
<view>Author:益添</view>
<view><navigator url="/pages/tim/demo/demo?name=Tim&sex=男" hover-class="navigator-hover">navigator携带字符串参数</navigator>
</view>
<button bind:tap="tapStringParameter">传递字符串参数</button>

需要通过按钮的方法响应传递,则在js中,定义一个tapStringParameter方法,处理点击后的工作

  tapStringParameter(){console.log("tapStringParameter")wx.navigateTo({url: '/pages/tim/demo/demo?name=Tim&sex=男'})},

接收参数的页面

在对应的pages/tim/demo/demo页面,在onLoad方法中接收参数,代码和示例如下:

  onLoad(options) {console.log(options)console.log(options.name, options.sex)}

效果如下,分别点击navigator和按钮,都可以获取到对应的参数。

路由传递对象

由于字符串传递的参数需要转换,且参数的长度有限(路由字符串具体长度笔者未看到说明,可能和http的get方法一样,在实际开发过程中遇到过超限无法完整传递的情况)。因此要传递对象,就需要使用wx.navigateTo()中的回调函数。

原始页面

接下来,在上述的wxml页面上,增加一个按钮

<!--pages/tim/index/index.wxml-->
<view>Author:益添</view>
<view><navigator url="/pages/tim/demo/demo?name=Tim&sex=男" hover-class="navigator-hover">navigator携带字符串参数</navigator>
</view>
<button bind:tap="tapStringParameter">传递字符串参数</button>
<button bind:tap="tapObjectParameter">传递对象参数</button>

在js中,我们增加“tapObjectParameter”方法。在方法中创建一个对象,并在wx.navigateTo()的success回调中,添加一个事件,命名为“acceptDataFromOpenerPage”,将对象传入。在url中,我们还是可以通过字符串传递参数。

// pages/tim/index/index.ts
Page({tapStringParameter(){console.log("tapStringParameter")wx.navigateTo({url: '/pages/tim/demo/demo?name=Tim&sex=男'})},tapObjectParameter(){console.log("tapObjectParameter")let person = {name: '益添',sex: '男'}wx.navigateTo({url: '/pages/tim/demo/demo?name=Tim&sex=男',success: function(res) {// 通过eventChannel向被打开页面传送数据res.eventChannel.emit('acceptDataFromOpenerPage', person)}})}
})

接收参数的页面

在onLoad函数中,使用this.getOpenerEventChannel()获取当前的事件频道,然后监听“acceptDataFromOpenerPage”事件,在回调中,即可获取传递过来的参数。

// pages/tim/demo/demo.ts
Page({onLoad(options) {console.log(options)console.log(options.name, options.sex)const eventChannel = this.getOpenerEventChannel()// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据eventChannel.on('acceptDataFromOpenerPage', function (data) {console.log("acceptDataFromOpenerPage")console.log(data)console.log(data.name, data.sex)})}
})

点击按钮,可以看到各页面传入的中的参数能正常输出。

参考链接:

导航 / navigator (qq.com)

路由 / wx.navigateTo (qq.com)

相关文章:

微信小程序使用路由传参和传对象的方法

近期在做微信小程序开发&#xff0c;在页面跳转时&#xff0c;需要携带参数到下一个页面&#xff0c;尤其是将对象传入页面。为了方便重温&#xff0c;特此记录。 路由传字符串参数 原始页面 传递字符串参数比较简单。路由跳转有两种方式&#xff0c;一种是通过navigator组件…...

中国创可贴市场研究与未来预测报告(2023版)

内容简介&#xff1a; 创可贴由胶布&#xff08;带&#xff09;、吸水垫、防粘层等组成&#xff0c;胶布以弹性布、棉布、无纺布或PE、PVC、PU打孔膜、TPU等材料为常见基材&#xff0c;涂以氧化锌和橡胶为主要原料的胶浆或医用压敏胶黏剂或丙烯酸酯胶粘剂制成。 目前中国主要…...

水库安全监测方案(实时数据采集、高速数据传输)

​ 一、引言 水库的安全监测对于防止水灾和保障人民生命财产安全至关重要。为了提高水库安全监测的效率和准确性&#xff0c;本文将介绍一种使用星创易联DTU200和SG800 5g工业路由器部署的水库安全监测方案。 二、方案概述 本方案主要通过使用星创易联DTU200和SG800 5g工业路…...

vue项目 ueditor使用示例

简介 UEditor是由百度Web前端研发部开发的所见即所得富文本web编辑器&#xff0c;具有轻量&#xff0c;功能丰富&#xff0c;易扩展等特点。UEditor支持常见的文本编辑功能&#xff0c;如字体、颜色、大小、加粗、斜体、下划线、删除线等&#xff0c;同时还支持超链接、图片上…...

深度学习笔记之优化算法(四)Nesterov动量方法的简单认识

机器学习笔记之优化算法——Nesterov动量方法的简单认识 引言回顾&#xff1a;梯度下降法与动量法Nesterov动量法Nesterov动量法的算法过程描述总结 引言 上一节对动量法进行了简单认识&#xff0c;本节将介绍 Nesterov \text{Nesterov} Nesterov动量方法。 回顾&#xff1a;…...

比 N 小的最大质数

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...

JavaScript 生成随机颜色

代码 function color(color) {return (color "0123456789abcdef"[Math.floor(Math.random() * 6)]) && (color.length 6 ? color : arguments.callee(color)); }使用 // 用法1&#xff1a;全部随机生成 "#" color(""); // #201050…...

Savepoints

语法 SAVEPOINT 名称 RELEASE SAVEPOINT 名称 ROLLBACK TRANSACTION TO SAVEPOINT 名称 Savepoints 与BEGIN和COMMIT类似的创建事务的方法&#xff0c;名称不要求唯一且可以嵌套使用。 可以用在BEGIN…COMMIT定义的事务内部或外部。当在外部时&#xff0c;最外层的savepoin…...

【MySQL】基本查询(二)

文章目录 一. 结果排序二. 筛选分页结果三. Update四. Delete五. 截断表六. 插入查询结果结束语 操作如下表 //创建表结构 mysql> create table exam_result(-> id int unsigned primary key auto_increment,-> name varchar(20) not null comment 同学姓名,-> chi…...

Qt:多语言支持,构建全面应用程序“

Qt&#xff1a;强大API、简化框架、多语言支持&#xff0c;构建全面应用程序" 强大的API&#xff1a;Qt提供了丰富的API&#xff0c;包括250多个C类&#xff0c;基于模板的集合、序列化、文件操作、IO设备、目录管理、日期/时间等功能。还包括正则表达式处理和支持2D/3D…...

性能监控-链路级监控工具

常见的链路监控工具&#xff0c;我们都称之为 APM 开源工具 几个开源的好用的工具&#xff0c;它们分别是 Pinpoint、SkyWalking、Zipkin、CAT 网络上也有人对这几个工具做过测试 比对&#xff0c;得到的结论是每个产品对性能的影响都在 10% 以下&#xff0c;其中 SkyWalking …...

clickonce 程序发布到ftp在使用cnd 加速https 支持下载,会不会报错

ClickOnce 是一种用于发布和部署.NET应用程序的技术&#xff0c;通常用于本地部署或通过网络分发应用程序。将 ClickOnce 程序发布到 FTP 服务器并使用 CDN&#xff08;内容分发网络&#xff09;进行加速是可能的&#xff0c;但要确保配置正确以避免出现错误。 在使用 CDN 加速…...

Nginx详细学习记录

1. Nginx概述 Nginx是一个轻量级的高性能HTTP反向代理服务器&#xff0c;同时它也是一个通用类型的代理服务器&#xff0c;支持绝大部分协议&#xff0c;如TCP、UDP、SMTP、HTTPS等。 1.1 Nginx基础架构 Nginx默认采用多进程工作方式&#xff0c;Nginx启动后&#xff0c;会运行…...

golang gin——中间件编程以及jwt认证和跨域配置中间件案例

中间件编程jwt认证 在不改变原有方法的基础上&#xff0c;添加自己的业务逻辑。相当于grpc中的拦截器一样&#xff0c;在不改变grpc请求的同时&#xff0c;插入自己的业务。 简单例子 func Sum(a, b int) int {return a b }func LoggerMiddleware(in func(a, b int) int) f…...

如何快速制作令人惊叹的长图海报

在当今的数字时代&#xff0c;制作一张吸引人的长图海报已成为许多人的需求。无论是为了宣传活动&#xff0c;还是展示产品&#xff0c;一张设计精美的长图海报都能引起人们的注意。下面&#xff0c;我们将介绍一种简单的方法&#xff0c;使用在线海报制作工具来创建长图海报。…...

D (1092) : DS循环链表—约瑟夫环(Ver. I - A)

Description N个人坐成一个圆环&#xff08;编号为1 - N&#xff09;&#xff0c;从第S个人开始报数&#xff0c;数到K的人出列&#xff0c;后面的人重新从1开始报数。依次输出出列人的编号。 例如&#xff1a;N 3&#xff0c;K 2&#xff0c;S 1。 2号先出列&#xff0c;然…...

Python爬虫(二十二)_selenium案例:模拟登陆豆瓣

本篇博客主要用于介绍如何使用seleniumphantomJS模拟登陆豆瓣&#xff0c;没有考虑验证码的问题&#xff0c;更多内容&#xff0c;请参考&#xff1a;Python学习指南 #-*- coding:utf-8 -*-from selenium import webdriver from selenium.webdriver.common.keys import Keysimp…...

1. Flink程序打Jar包

文章目录 步骤注意事项 步骤 用 maven 打 jar 包&#xff0c;需要在 pom.xml 文件中添加打包插件依赖 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><ver…...

水波纹文字效果动画

效果展示 CSS 知识点 text-shadow 属性绘制立体文字clip-path 属性来绘制水波纹 工具网站 CSS clip-path maker 效果编辑器 页面整体结构实现 使用多个 H2 标签来实现水波纹的效果实现&#xff0c;然后使用clip-path结合动画属性一起来进行波浪的起伏动画实现。 <div …...

【1.1】神经网络:关于神经网络的介绍

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…...

java项目中git的.ignore文件设置

在Git中&#xff0c;ignore是用来指定Git应该忽略的故意不被追踪的文件。它并不影响已经被Git追踪的文件。我们可以通过.ignore文件在Git中指定要忽略的文件。 当我们执行git add命令时&#xff0c;Git会检查.gitignore文件&#xff0c;并自动忽略这些文件和目录。这样可以避免…...

11.3 读图举例

一、低频功率放大电路 图11.3.1所示为实用低频功率放大电路&#xff0c;最大输出功率为 7 W 7\,\textrm W 7W。其中 A \textrm A A 的型号为 LF356N&#xff0c; T 1 T_1 T1​ 和 T 3 T_3 T3​ 的型号为 2SC1815&#xff0c; T 4 T_4 T4​ 的型号为 2SD525&#xff0c; T 2…...

黑马JVM总结(二十八)

&#xff08;1&#xff09;语法糖-foreach &#xff08;2&#xff09;语法糖-switch-string &#xff08;3&#xff09;语法糖-switch-enum &#xff08;4&#xff09;语法糖-枚举类 枚举类 &#xff08;5&#xff09;语法糖-twr1...

2023年DDoS攻击发展趋势的分析和推断

DDoS是一种非常“古老”的网络攻击技术&#xff0c;随着近年来地缘政治冲突对数字经济格局的影响&#xff0c;DDoS攻击数量不断创下新高&#xff0c;其攻击的规模也越来越大。日前&#xff0c;安全网站Latest Hacking News根据DDoS攻击防护服务商Link11的统计数据&#xff0c;对…...

RT-Thread 内存管理(学习二)

内存堆管理应用示例 这是一个内存堆的应用示例&#xff0c;这个程序会创建一个动态的线程&#xff0c;这个线程会动态申请内存并释放&#xff0c;每次申请更大的内存&#xff0c;当申请不到的时候就结束。 #include <rtthread.h>#define THREAD_PRIORITY 25 #defi…...

怎么修改jupyter lab 的工作路径而不是直接再桌面路径打开

要修改Jupyter Lab的工作路径&#xff0c;你可以按照以下步骤操作&#xff1a; 打开终端或命令提示符窗口。 输入 jupyter lab --generate-config 命令来生成Jupyter Lab的配置文件。 找到生成的配置文件&#xff0c;通常会位于 ~/.jupyter/jupyter_notebook_config.py。 使…...

高精度NTP时钟服务器(时间同步服务器)技术方案探讨

高精度NTP时钟服务器&#xff08;时间同步服务器&#xff09;技术方案探讨 高精度NTP时钟服务器&#xff08;时间同步服务器&#xff09;技术方案探讨 四分天下目前&#xff0c;全球的 GPS卫星同步系统处于“四分天下”状态&#xff0c;以美俄两国的系统处于领导地位&#xff…...

LFU 缓存 -- LinkedHashSet

相关题目&#xff1a; 460. LFU 缓存 相关文章 LRU 缓存 – 哈希链表 # 460. LFU 缓存 # Python中和 LinkedHashSet 相似的数据结构 OrderedDict from collections import OrderedDict class LFUCache:# key 到 val 的映射&#xff0c;我们后文称为 KV 表keyToVal {}# key 到…...

用IDEA操作数据库--MySQL

IDEA集成了DataGrip的操作数据库的功能 就可以省略我们下载SQLyog/Navicat/DataGrip这些图形化操作工具了 以下是IDEA的使用 输入数据库的用户和密码...

扫雷游戏的递归解法

目录 一&#xff0c;题目 二&#xff0c;题目接口 三&#xff0c;解题思路 四&#xff0c;解题代码 一&#xff0c;题目 让我们一起来玩扫雷游戏&#xff01; 给你一个大小为 m x n 二维字符矩阵 board &#xff0c;表示扫雷游戏的盘面&#xff0c;其中&#xff1a; M 代表一…...

做网站接活全流程/网站推广多少钱

VLAN&#xff08;Virtual Local Area Network&#xff09;虚拟局域网一种将局域网内的设备通过逻辑地划分成为一个个网段来进行管理的技术VLAN是建立在物理网络基础上的一种逻辑子网&#xff0c;因此建立VLAN需要相应的支持VLAN技术的网络设备当网络中的不同VLAN间进行相互通信…...

苏州企业网站制作电话/东营网站建设哪家更好

2-3树真的是非常完美的平衡二叉树了&#xff0c;平衡二叉树(BST)的要点在于它的每条从根节点到叶子节点的路径都具有相同的长度&#xff0c;并且在数据结构中&#xff0c;对于查找和插入操作&#xff0c;最糟糕的情况下时间复杂度为O(log n)。与我在第四十五天讲的BST有什么不一…...

山东网站排行/个人网站推广

package com.tiger;import java.nio.ByteBuffer;/*** 缓冲区分片案例* 在现有缓冲区对象中创建一个子缓冲区&#xff0c;即在现有缓冲区上切出一片作为一个新的缓冲区&#xff0c;* 但现有缓冲区与创建的子缓冲区在底层数组层面上是数据共享&#xff1b;* 也就是说&#xff0c;…...

郎溪网站建设/人民网疫情最新消息

今天​在安装zblog的时候出现了提示“release.xml不存在!”导致无法正常安装的问题&#xff1a;​ 解决后发篇文章分享下&#xff0c;如果遇到同样问题可以尝试按照本文操作下。 先说解决办法&#xff1a; 重新去zblog官方下载最新版的安装程序重新上传安装即可解决。 问题原因…...

东莞创建网站/百度投放广告收费标准

克鲁斯卡尔算法 迪杰斯特拉算法 笛卡尔乘积 欧拉回路 对称差 幂集 主析取范式 偏序集合 可达矩阵 奥尔定理 贪心算法...

500人在线网站建设配置/找代写文章写手

npm list 查看具体模块 如&#xff1a; npm list antv/g6 如需要安装指定的模块和版本 保存时 - --save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西。 如&#xff1a; npm install --save antv/g61.2.2...