盘点微信小程序跨页面传值的若干方式
直接给大家上干货
1、跳转页面传递参数
pageA.wxml
<button type="primary" bindtap="jumpTo">点击跳转</button>
pageA.js
jumpTo:function(){
//传数字
let number=0
//传字符串
let str="字符串"
//传json对象
let json={
name:'小王',
age:18
}
//传json数组
let jsonArray=[{
name:'小赵',
age:20
},{
name:'小李',
age:18
}]
/**
* url传值只能传字符串或数字,不能直接传json对象
* 所以要把json,jsonArray转化为字符串传值
* 当然到另一个界面要把字符串还原成json,jsonArray对象
*/
let jsonstr=JSON.stringify(json)
let jsonArraystr=JSON.stringify(jsonArray)
//skipurl换成你要跳转的url
//ex: ../page2/page2
wx.navigateTo({
url: 'skipurl?number='+number+'&str='+str+'&json='+jsonstr+'&jsonArray='+jsonArraystr,
})
},
pageB.js
onLoad: function (options) {
//接收number
let number = options.number
//接收str
let str = options.str
//接收json字符串,并将json字符串还原json
let json=JSON.parse(options.json)
//接收jsonArray字符串,并将jsonArray字符串还原jsonArray
let jsonArray=JSON.parse(options.jsonArray)
//打印接收到的数据
console.warn("传输数据成功!!")
console.log(number)
console.log(str)
console.log(json)
console.log(jsonArray)
},
2、缓存
pageA.js 写入
let obj={ name:'小明', age:3 }
wx.setStorage({ data: obj, key: 'test', })
pageB.js 读取
wx.getStorage({
key: 'test',
}).then(res=>{
console.log('获取缓存成功')
console.log(res.data)
})
3、全局的globalData对象
// 全局app.js
globalData: { id: 1 }
// xxxa页面
var app = getApp();
app.globalData.id = 18
// xxxb页面
var app = getApp();
console.log(app.globalData.id) // 18
4、eventChannel发布订阅
index.wxml
<button bindtap="jump">jump to next page</button>
index.js
Page({
jump: function () {
wx.navigateTo({
url: "./test",
events: {
// 监听methodsFromTest事件,并获取传递来的数据
methodsFromTest: function (data) {
console.log("index页面接收数据:", data);
},
},
success: function (res) {
// 通过res.eventChannel触发methodsFromIndex事件并传递出去数据
res.eventChannel.emit("methodsFromIndex", {
data: "send from opener page to test",
});
},
});
},
});
test.js
Page({
onLoad: function (option) {
console.log("test page onLoad");
// 通过this.getOpenerEventChannel()实例对象可以主动触发或监听事件
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit("methodsFromTest", {
data: "send from opened page to index",
});
eventChannel.on("methodsFromIndex", function (data) {
console.log("test页面接收数据:", data);
});
},
});
效果如下
盘点微信小程序跨页面传值的若干方式的更多相关文章
- 微信小程序之页面传值(路由、页面栈、globalData、缓存)
1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: <!--pages/list/list.js--&g ...
- 微信小程序跨页面获取数据示例
index.wxml <navigator class="navs" url="{{urls}}"> 中国 </navigator> i ...
- 微信小程序返回页面传值
一.通过url传递参数,但由于navigateTo无法跳转到导航页,所以无法往导航页传递参数 wx.navigateTo({ url: 'test?id=1' }) 二.通过wx.navigateBa ...
- 微信小程序之页面传值并且根据产品类别(主从关系)的赋值操作
<view class="title"> <view class="titleName">{{cname}}</view> ...
- 微信小程序:页面配置 page.json
微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...
- 微信小程序开发--页面结构
一.微信小程序开发--页面文件组成 [page.name].js 页面逻辑文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 [page.name].wxml wxml指的是Wei Xin M ...
- 微信小程序前端页面书写
微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...
- 图解微信小程序---实现页面的跳转与返回操作
图解微信小程序---实现页面的跳转与返回操作 代码笔记 操作步骤 第一步:在app.json配置文件中,创建跳转页面 第二步:编写首页跳转(注意跳转方式,和设置点击样式类名) 第三步:编写首页样式 第 ...
- 开发 | 如何在微信小程序的页面间传递数据?
我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...
随机推荐
- spark配置双master时一直处于standby的情况
一.情况描述 按照如下配置,使用zookeeper监听 SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspa ...
- leetcode多线程题目
代码附上了力扣没显示出来的测试 按序打印 class Foo { private CountDownLatch latch = new CountDownLatch(1); private Count ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- Mybatis + js 实现下拉列表二级联动
Mybatis + js 实现下拉列表二级联动 学习内容: 一.业务需求 二.实现效果 三.代码实现 1. province_city.jsp 2. TwoController 2. Province ...
- nodeJs入门的第一节课
nodejs是什么? nodejs的架构模式以及优缺点 nodejs异步IO nodejs事件驱动 nodejs单线程 nodejs应用场景 一.nodejs是什么? 1.1nodejs是一个开源的. ...
- Python中用类实现对象和封装
""" 用类实现对象和封装 对象:对应客观世界的事物,将描述事物的一组数据和与这组数据有关的操作封装在一起, 形成一个实体,这个实体就是对象 类:具有相同或相似性质的对象 ...
- 【深度学习 论文篇 01-1 】AlexNet论文翻译
前言:本文是我对照原论文逐字逐句翻译而来,英文水平有限,不影响阅读即可.翻译论文的确能很大程度加深我们对文章的理解,但太过耗时,不建议采用.我翻译的另一个目的就是想重拾英文,所以就硬着头皮啃了.本文只 ...
- 2020西湖论剑一道web题[网盘]
题目: 一个网盘系统 图片: 解题手法 上传".htaccess"文件,改成可以执行lua脚本 内容为: SetHandler lua-script 编写lua脚本,而后进行get ...
- springdata jpa多表查询的方式
方式一:使用@Query注解方式查询主要有JPQL方式,也就是面向对象的方式,这种情况下查表其实查的是对象,字段是实体中的属性,该方式可以直接映射到实体,如下图. 使用jpql的方式模糊查询时候不能使 ...
- Redux基础必知必会 reducer拆分 中间件 单向数据流
什么是 redux? 三大原则? 什么是 redux Redux 是一个基于 js 的全局可预测状态容器,主要用于现代前端框架中进行全局状态管理,能够在不同组件之间进行状态共享 Redux 常与 Re ...