博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序 - 参数传递
阅读量:4352 次
发布时间:2019-06-07

本文共 1981 字,大约阅读时间需要 6 分钟。

小程序传递参数的方式有三种:

(1)通过在App.js中设置全局变量

(2)通过拼接URL直接传递

(3)通过数据缓存存储再获取

1.app.js

通常把不会更改的数据放在app.js的Data中,在各个页面中都可以通过APP实例获取Data数据。

var app = getApp();var data = app.data;

2.wx.navigateTo({})中URL携带参数

wx.navigateTo({  url: 'test?id=1'});

3. 数据缓存

①wx.setStorageSync(KEY,DATA)存储数据

try {  wx.setStorageSync('key', 'value')} catch (e) {    }

②wx.getStorageSync(KEY)获取数据

try {  var value = wx.getStorageSync('key')  if (value) {    // Do something with return value  }} catch (e) {   // Do something when catch error}或wx.getStorage({  key: 'key',  success: function(res) {     console.log(res.data)  }})

然而,根据所传递参数的数据类型的不同,如对象、数组集合需要进行相应的处理。本质上都是String类型的传递。

 

1、传递基本数据类型

Page({    data: {    testStr: 'xiaochengxu'  },  next: function(e){    wx.navigateTo({      url: '/test/test?str='+this.data.testStr    })  }})
Page({  onLoad:function(options){      console.log("接收到的参数是str="+options.str);    }})

打印内容:接收到的参数是str=xiaochengxu

 

2,传递对象

Page({  data: {    testData:{name:'username', password:'password'}    },  next: function(e){    wx.navigateTo({       url: '/test/test?testData='+JSON.stringify(this.data.testData)    })  }})
Page({  data:{    testData:null  },onLoad:function(options){   console.log("接收到的参数是testData="+options.testData);   this.data.testData = JSON.parse(options.testData);}})

打印内容:

接收到的参数是testData={"name":"username","password":"password"}

 

3,传递数组集合

Page({  data: {    list:['item-A','item-B']  },  next: function(e){    wx.navigateTo({      url: '/test/test?list='+JSON.stringify(this.data.list),    })  }})
Page({    data:{    list:[]  },onLoad:function(options){   console.log("接收到的参数是list="+options.list);    this.data.list = JSON.parse(options.list);  }})

打印内容:接收到的参数是list=["item-A","item-B"]

统一处理:var dealParam = function(data) {  for(var i in data) {    if (typeof data[i] == ‘string’){      console.log(“key=”+i+“; value=”+data[i]);    } else if (typeof data[i] == ‘object’) {      dealParam(data[i]);    }  }}

 

 

转自:

转载于:https://www.cnblogs.com/ourLifes/p/11352115.html

你可能感兴趣的文章
数据库中主键和外键的设计原则
查看>>
怎样理解阻塞非阻塞与同步异步的区别?
查看>>
Xcode 警告信息处理:Format string is not a string literal (potentially insecure)
查看>>
关于jQuery表单校验的应用
查看>>
matplotlib----初探------5直方图
查看>>
jquery之ajax
查看>>
@Component单例与并发(未解决)
查看>>
mysql事物的特性即实现原理
查看>>
Mac Pro的HDMI接口与WI-FI可能存在冲突的解决方法
查看>>
Liunx-history命令
查看>>
js基础知识之_流程控制语句
查看>>
Discuz! X2.5数据库字典【转载】
查看>>
Pro Git(中文版)
查看>>
解决phpmyadmin-1800秒超时链接失效问题
查看>>
OpenGL第十一节:拉伸和过滤
查看>>
nyoj VF
查看>>
【BT+Log】BT抓取log方法以及log级别修改(HCI+Logcat)
查看>>
Cortex-M3开发经验(一):函数指针的应用
查看>>
SSL证书申请,如何快速通过SSL文件验证。
查看>>
Building Tool(Maven/Gradle)
查看>>