盘点微信小程序跨页面传值的若干方式
直接给大家上干货
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)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...
随机推荐
- scrapy框架爬取国际庄2011-2022的天气情况
目标网站:http://www.tianqihoubao.com/lishi/ 一.创建项目+初始化爬虫文件: scrapy startpoject tianqihoubaocd tianqihoub ...
- mysql获取表的列名
DESC test4 SHOW COLUMNS FROM test4 SELECT COLUMN_NAME FROM information_schema.columns WHERE table_n ...
- 用 JS(JavaScript )实现多选、全选、反选
JS小例题 学习内容: 需求 总结: 学习内容: 需求 用 JavaScript 实现全选.反选.多选 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- JAVA环境搭建之MyEclipse10+jdk1.8+tomcat8环境搭建详解
一.安装JDK 1.下载得到jdk-8u11-windows-i586.1406279697.exe,直接双击运行安装,一直next就可以,默认是安装到系统盘下面Program Files, 我这里装 ...
- html是什么,html5是什么?web开发必备知识之html
如果你要写一篇文章,你可以能会这样写:"我是小明,今年6岁了,现在在上小学一年级.我喜欢吃鲍鱼." 当时如果你像让"鲍鱼"这两个字红色并且字体大一点怎么办?? ...
- data_loader读取器
import random import numpy as np import pandas as pd import cv2 def date_loader(image_dir, file_name ...
- 百度离线人脸识别sdk的使用
1.1下载sdk运行 百度离线人脸识别sdk的使用 1.2配置环境 添加至项目,可以拖动复制或者以类库形式添加face-resource此文件夹 放到根目录上一层 激活文件与所有dll引用放到根目录嫌 ...
- Leetcode78/90/491之回溯中的子集问题
回溯之子集问题 子集问题和组合问题特别像 Leetcode78-子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集) 解集 不能 包含重复的子集.你可以按 任 ...
- C++ 限定符Const和指针
指向常量的指针 指向常量的指针不能用于其所指对象的值.若想存放常量对象的地址,只能使用指向常量的指针. const int a = 3; //a是个常量,其值不能改变 int *b = &a; ...
- Go xmas2020 学习笔记 07、Formatted & File I/O
07-Formatted & File I/O. I/O steams. formatted I/O. fmt functions. file I/O. Practice ① I/O. Alw ...