微信小程序開發(fā)內(nèi)測一個月.數(shù)據(jù)傳遞的方式很少.經(jīng)常遇到頁面銷毀后回傳參數(shù)的問題,小程序中并沒有類似Android的startActivityForResult的方法,也沒有類似廣播這樣的通訊方式,更沒有類似eventbus的輪子可用.
現(xiàn)在已知傳遞參數(shù)的方法只找到三種,先總結(jié)下.由于正處于內(nèi)測階段,文檔也不是很穩(wěn)定,經(jīng)常修改,目前尚沒有人造輪子.
先上GIF:

1.APP.js
我把常用且不會更改的參數(shù)放在APP.js的data里面了.在各個page中都可以拿到var app = getApp();
app上就可以拿到存在data中的參數(shù).
2. wx.navigateTo({})中URL攜帶參數(shù)
demo中已經(jīng)寫出:
wx.navigateTo({ url: "../newpage/newpage?infofromindex=" + this.data.infofromindex, });3.wx.setStorage(OBJECT) 數(shù)據(jù)緩存
微信開發(fā)文檔中的數(shù)據(jù)緩存方法:
①存儲數(shù)據(jù)
try { wx.setStorageSync('infofrominput', this.data.infofrominput) } catch (e) { }②獲取數(shù)據(jù)
//獲取 wx.getStorage({ key: 'infofrominput', success: function (res) { _this.setData({ infofromstorage: res.data, }) } })key是本地緩存中的指定的 key,data是需要存儲的內(nèi)容.
詳情見微信小程序開發(fā)文檔:文檔
貼上代碼:
1.index.js
//index.js //獲取應(yīng)用實例 var app = getApp() Page({ data: { info: app.data.info, infofromindex: '來自index.js的信息', infofrominput: '' }, onLoad: function () { }, //跳轉(zhuǎn)到新頁面 gotonewpage: function () { wx.navigateTo({ url: "../newpage/newpage?infofromindex=" + this.data.infofromindex, }); }, //獲取輸入值 searchInputEvent: function (e) { console.log(e.detail.value) this.setData({ infofrominput: e.detail.value }) }, //保存參數(shù) saveinput: function () { try { wx.setStorageSync('infofrominput', this.data.infofrominput) } catch (e) { } } }) 2.index.wxml
<!--index.wxml--> <view> <button style="background-color:#00ff00;margin:20rpx" bindtap="gotonewpage">跳轉(zhuǎn)</button> <input style="background-color:#eee;margin:20rpx;height:80rpx" placeholder="請輸入需要保存的參數(shù)" bindinput="searchInputEvent" /> <button style="background-color:#ff0000;margin:20rpx" bindtap="saveinput">存入Storage</button> </view>
3.newpage.js
//newpage.js //獲取應(yīng)用實例 var app = getApp() Page({ data: { infofromapp: app.data.infofromapp, infofromindex: '', infofromstorage: '', }, onLoad: function (options) { var _this = this; var infofromindex = options.infofromindex; this.setData({ infofromindex: infofromindex }) //獲取 wx.getStorage({ key: 'infofrominput', success: function (res) { _this.setData({ infofromstorage: res.data, }) } }) } }) 4.newpage.wxml
<!--newpage.wxml--> <view style="width:100%;margin:30rpx">infofromapp:{{infofromapp}}</view> <view style="width:100%;margin:30rpx">infofromindex:{{infofromindex}}</view> <view style="width:100%;margin:30rpx">infofromstorage:{{infofromstorage}}</view> 5.app.js
//app.js App({ data: { infofromapp: '來自APP.js的信息' }, onLaunch: function () { } }) 以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!
新聞熱點
疑難解答