直接给大家上干货

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);
});
},
});

效果如下

盘点微信小程序跨页面传值的若干方式的更多相关文章

  1. 微信小程序之页面传值(路由、页面栈、globalData、缓存)

    1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: <!--pages/list/list.js--&g ...

  2. 微信小程序跨页面获取数据示例

    index.wxml <navigator class="navs" url="{{urls}}"> 中国 </navigator> i ...

  3. 微信小程序返回页面传值

    一.通过url传递参数,但由于navigateTo无法跳转到导航页,所以无法往导航页传递参数 wx.navigateTo({ url: 'test?id=1' }) 二.通过wx.navigateBa ...

  4. 微信小程序之页面传值并且根据产品类别(主从关系)的赋值操作

    <view class="title"> <view class="titleName">{{cname}}</view> ...

  5. 微信小程序:页面配置 page.json

    微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...

  6. 微信小程序开发--页面结构

    一.微信小程序开发--页面文件组成 [page.name].js 页面逻辑文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 [page.name].wxml wxml指的是Wei Xin M ...

  7. 微信小程序前端页面书写

    微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...

  8. 图解微信小程序---实现页面的跳转与返回操作

    图解微信小程序---实现页面的跳转与返回操作 代码笔记 操作步骤 第一步:在app.json配置文件中,创建跳转页面 第二步:编写首页跳转(注意跳转方式,和设置点击样式类名) 第三步:编写首页样式 第 ...

  9. 开发 | 如何在微信小程序的页面间传递数据?

    我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...

随机推荐

  1. 【uniapp 开发】Date.parse Firefox返回Nan的解决办法

  2. PAT B1031查验身份证

    一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...

  3. java中请给出一个return this的例子。

    [新手可忽略不影响继续学习]下面例子中setYear中的return this;返回了一个指向对象的指针,this.setMonth(8).setDay(20);是合法的,如果像原来的例子一样什么都不 ...

  4. CCF201909-2小明种苹果(续)

    解题思路:解题思路很简答,就是用数组将数据存起来然后再进行统计,具体思路就见代码注释,记录这道题的是为了警示自己好好审题啊...... 审题有问题,写题火葬场啊.......以为每棵树就疏一次果,把D ...

  5. vant弹窗提示

    函数调用 Dialog 是一个函数而不是组件,因此可以直接调用,展示对应的提示弹窗 import { Dialog } from 'vant'; Dialog({ message: '提示' }); ...

  6. 实现call、apply 及 bind 函数

    今日学习内容: (1)call 函数的实现步骤: 判断调用对象是否为函数,即使是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况. 判断传入上下文对象是否存在,如果不存在,则设置为 ...

  7. python---括号匹配

    """ 括号匹配 输入: "()[]{}" 输出true 输入:"([)]" 输出false 输入:")(()))&qu ...

  8. /application/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

    在启动/usr/local/zabbix/sbin/zabbix_server 时报错如下 此时需要配置一个软连接指向该位置. ln -s /usr/local/mysql/lib/libmysqlc ...

  9. 帝国CMS随机调用栏目

    [e:loop={'select * from [!db.pre!]enewsclass where bclassid in(1) order by rand() desc limit 10',10, ...

  10. drf过滤和排序及异常处理的包装

    过滤和排序(4星) 查询所有才需要过滤(根据过滤条件),排序(按某个规律排序) 使用前提: 必须继承的顶层类是GenericAPIView 内置过滤类 内置过滤类使用,在视图类中配置,是模糊查询 使用 ...