微信小程序,跳转到新页面,传递参数的方法。
方法1:在跳转地址上面写上参数,如:A页面要跳转到B页面,向B页面传递参数key,之是woaixuexi,
<navigator open-type="navigateTo" url="../../b/b?key=woaixuexi" />
路由后的页面会触发生命周期函数onLoad, onShow,其中onLoad会有一个参数,options,类型是对象。接收到的参数名,是这个对象的其中一个key,而传递的参数就是这个key的值。
/** * 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log('这个是通过在路由上面加参数来获得的:\n' + options.url); }
方法2:绑定元素的tap事件,在路由页面前,执行一段js代码,将要传递的参数存进缓存,注意:到了新页面后,记得将缓存清掉。代码如下
路由之前的页面,A.wxml
<button bindtap="btnClick" >跳转</button>
A.js
/* 将key存入缓存*/ btnClick:function(){ try { wx.setStorageSync('h5Url', 'woaixuexi'); } catch (e) { console.log(e); } //调用路由api wx.redirectTo({ url: '../b/b, }) }
B.js
onLoad: function (options) { var key = (function () { /* 获取缓存中的key,获取完之后记得立即清除缓存 */ var key = ''; wx.getStorage({ key: 'key', success(res) { console.log(res.data); key= res.data; } }) /* 清除缓存,获得之后,以免出现问题。 */ try { wx.removeStorageSync('key') } catch (e) { // Do something when catch error console.log(e); } return key; }()); console.log('这个是通过缓存获得的' + key); }