微信小程序之数据传递

本文主要介绍,页面跳转间的数据传递。传递的数据类型主要有1,基本数据类型;2,对象;3,数组集合;

 

先告诉你,本质上都是string类型传递。但是对于对象和数组集合的传递需要小小的处理一下传递时的数据和接收后的数据。

1,传递基本数据类型

index.js 发送页JS

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. Page({  
  2.   data: {  
  3.     testStr: '字符串str'  
  4.   },  
  5.   onLoad: function () {  
  6.   },  
  7.   next: function(e){  
  8.     wx.navigateTo({  
  9.       url: '/pages/test/test?str='+this.data.testStr,  
  10.     })  
  11.   }  
  12. })  

test.js 接受页JS

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. Page({  
  2.   data:{  
  3.   },  
  4.   onLoad:function(options){  
  5.     console.log("接收到的参数是str="+options.str);  
  6.   }  
  7. })  

打印的Log如下:

接收到的参数是str=字符串str

 

2,传递对象{}

index.js 发送页JS

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. Page({  
  2.   data: {  
  3.     testData:{name:'我是name', extra:'我是extra'}  
  4.   },  
  5.   onLoad: function () {  
  6.   },  
  7.   next: function(e){  
  8.     wx.navigateTo({  
  9.       url: '/pages/test/test?extra='+JSON.stringify(this.data.testData)  
  10.     })  
  11.   }  
  12. })  

test.js 接受页JS

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. Page({  
  2.   data:{  
  3.     testData:null  
  4.   },  onLoad:function(options){      

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. <span style="white-space:pre">  </span>console.log("接收到的参数是obj="+options.extra);//此处打印出来的仅仅是字符串 需要解析,解析如下  
  2.     this.dat.testData = JSON.parse(options.extra);//解析得到对象  
  3.   }})  

打印的Log如下:

test.js [sm]:16 接收到的参数是obj={"name":"我是name","extra":"我是extra"}

 

3,传递数组集合[]

index.js 发送页JS

[javascript] view plain copy  print?在CODE上查看代码片派生到我的代码片

  1. Page({  
  2.   data: {  
  3.     list:['item-A','item-B']  
  4.   },  
  5.   onLoad: function () {  
  6.   },  
  7.   next: function(e){  
  8.     wx.navigateTo({  
  9.       url: '/pages/test/test?list='+JSON.stringify(this.data.list),  
  10.     })  
  11.   }  
  12. })  

test.js 接受页JS

[javascript] view plain copy print?在CODE上查看代码片派生到我的代码片

  1. <span style="font-size:14px;">Page({  
  2.   data:{  
  3.     list:[]  
  4.   },    
  5. <span style="white-space:pre">  </span>onLoad:function(options){      
  6. <span style="white-space:pre">  </span>console.log("接收到的参数是list="+options.list);//此处打印出来的是字符串,解析如下        
  7.  <span style="white-space:pre"> </span></span><span style="font-size: 14px; white-space: pre-wrap; font-family: Arial, Helvetica, sans-serif;">this.data.list = JSON.parse(options.list);//解析得到集合</span><span style="font-size:14px;">  
  8.  }})</span>  

 

打印的Log如下:

test.js [sm]:17 接收到的参数是list=["item-A","item-B"]

 

另外,还可以通过缓存(wx.setStorage(OBJECT),wx.setStorageSync(KEY,DATA))来传递数据,只是保存后需要清除,防止缓存过大的情况.


 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值