微信小程序中页面间数据传递
在微信小程序中,把数据从以一个页面传递到另一个页面一共有两种方式:
简单的变量传递
简单的变量传递我们可以在页面跳转的时候通过url传递参数的方式来传递数据,例如:
wx.navigateTo({
url: 'test?id=1'
})
这样我们就能把id=1
传递到test
页面,在test
页面可以在onLoad()
方法中获取,获取的方式是:
onLoad: function(option){
console.log(option.query)
}
这样就可以获取到id
的值为1。
传递一个字典或者数组
对于这种相对复杂的数据传递,url传参的方式就显得很乏力,实现起来十分困难。这时可以通过使用本地缓存的方式来进行数据传递。例如:
A页面有如下数据要传递到B页面:
info:{
"name": "cjluzzl",
"age": 22,
"lover: "Jangson"
}
我们可以在A跳转到B之前使用wx.setStorageSync('info', this.data.info);
这个方法,将数据缓存到本地中。
在B页面的onLoad()
方法里,通过使用var data = wx.getStorageSync('info')
来获取到数据,然后可以通过setData的方法设置到Page的data数据里。