<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: &#39;test?id=1&#39;</p><p>});</p><p>3. 数据缓存</p><p>①wx.setStorageSync(KEY,DATA)存储数据</p><p>try {</p><p> wx.setStorageSync(&#39;key&#39;, &#39;value&#39;)</p><p>} catch (e) { </p><p>}</p><p>②wx.getStorageSync(KEY)获取数据</p><p>try {</p><p> var value = wx.getStorageSync(&#39;key&#39;)</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: &#39;key&#39;,</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: &#39;xiaochengxu&#39;</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: &#39;/test/test?str=&#39;+this.data.testStr</p><p> })</p><p> }</p><p>})</p><p>Page({</p><p> onLoad:function(options){</p><p> console.log(&quot;接收到的参数是str=&quot;+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:&#39;username&#39;, password:&#39;password&#39;}</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: &#39;/test/test?testData=&#39;+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(&quot;接收到的参数是testData=&quot;+options.testData);</p><p> this.data.testData = JSON.parse(options.testData);</p><p>}})</p><p>打印内容:</p><p>接收到的参数是testData={&quot;name&quot;:&quot;username&quot;,&quot;password&quot;:&quot;password&quot;}</p><p></p><p>3,传递数组集合</p><p>Page({</p><p> data: {</p><p> list:[&#39;item-A&#39;,&#39;item-B&#39;]</p><p> },</p><p> next: function(e){</p><p> wx.navigateTo({</p><p> url: &#39;/test/test?list=&#39;+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(&quot;接收到的参数是list=&quot;+options.list);</p><p> this.data.list = JSON.parse(options.list);</p><p>}})</p><p>打印内容:接收到的参数是list=[&quot;item-A&quot;,&quot;item-B&quot;]</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>
T:0.006907s,M:248.02 KB
返回顶部 留言