<p>小程序传递参数的方式有三种:</p><p>(1)通过在App.js中设置全局变量</p><p>(2)通过拼接URL直接传递</p><p>(3)通过数据缓存存储再获取</p><p>1.app.js</p><p>通常把不会更改的数据放在app.js的Data中,在各个页面中都可以通过APP实例获取Data数据。</p><p>var app = getApp();</p><p>var data = app.data;</p><p>2.wx.navigateTo({})中URL携带参数</p><p>wx.navigateTo({</p><p> url: 'test?id=1'</p><p>});</p><p>3. 数据缓存</p><p>①wx.setStorageSync(KEY,DATA)存储数据</p><p>try {</p><p> wx.setStorageSync('key', 'value')</p><p>} catch (e) { </p><p>}</p><p>②wx.getStorageSync(KEY)获取数据</p><p>try {</p><p> var value = wx.getStorageSync('key')</p><p> if (value) {</p><p> // Do something with return value</p><p> }</p><p>} catch (e) {</p><p> // Do something when catch error</p><p>}</p><p>或</p><p>wx.getStorage({</p><p> key: 'key',</p><p> success: function(res) {</p><p> console.log(res.data)</p><p> }</p><p>})</p><p>然而,根据所传递参数的数据类型的不同,如对象、数组集合需要进行相应的处理。本质上都是String类型的传递。</p><p></p><p>1、传递基本数据类型</p><p>Page({</p><p> data: {</p><p> testStr: 'xiaochengxu'</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: '/test/test?str='+this.data.testStr</p><p> })</p><p> }</p><p>})</p><p>Page({</p><p> onLoad:function(options){</p><p> console.log("接收到的参数是str="+options.str);</p><p> }</p><p>})</p><p>打印内容:接收到的参数是str=xiaochengxu</p><p></p><p>2,传递对象</p><p>Page({</p><p> data: {</p><p> testData:{name:'username', password:'password'}</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: '/test/test?testData='+JSON.stringify(this.data.testData)</p><p> })</p><p> }</p><p>})</p><p>Page({</p><p> data:{</p><p> testData:null</p><p> },</p><p>onLoad:function(options){</p><p> console.log("接收到的参数是testData="+options.testData);</p><p> this.data.testData = JSON.parse(options.testData);</p><p>}})</p><p>打印内容:</p><p>接收到的参数是testData={"name":"username","password":"password"}</p><p></p><p>3,传递数组集合</p><p>Page({</p><p> data: {</p><p> list:['item-A','item-B']</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: '/test/test?list='+JSON.stringify(this.data.list),</p><p> })</p><p> }</p><p>})</p><p>Page({</p><p> data:{</p><p> list:[]</p><p> },</p><p>onLoad:function(options){</p><p> console.log("接收到的参数是list="+options.list);</p><p> this.data.list = JSON.parse(options.list);</p><p>}})</p><p>打印内容:接收到的参数是list=["item-A","item-B"]</p><p>统一处理:</p><p>var dealParam = function(data) {</p><p> for(var i in data) {</p><p> if (typeof data[i] == ‘string’){</p><p> console.log(“key=”+i+“; value=”+data[i]);</p><p> } else if (typeof data[i] == ‘object’) {</p><p> dealParam(data[i]);</p><p> }</p><p> }</p><p>}</p>