本文主要介绍了微信小程序开发之数据存储、参数传递、数据缓存的相关知识。具有很好的参考价值。下面一起来看下吧
微信小程序开发内测一个月.数据传递的方式很少.经常遇到页面销毁后回传参数的问题,小程序中并没有类似Android的startActivityForResult的方法,也没有类似广播这样的通讯方式,更没有类似eventbus的轮子可用.
现在已知传递参数的方法只找到三种,先总结下.由于正处于内测阶段,文档也不是很稳定,经常修改,目前尚没有人造轮子。
先上GIF:
1.APP.js
我把常用且不会更改的参数放在APP.js的data里面了.在各个page中都可以拿到var app = getApp();
app上就可以拿到存在data中的参数.
2. wx.navigateTo({})中URL携带参数
demo中已经写出:
1 2 3 | wx.navigateTo({
url: "../newpage/newpage?infofromindex=" + this .data.infofromindex,
});
|
页面间传递参数的笔记
3.wx.setStorage(OBJECT) 数据缓存
微信开发文档中的数据缓存方法:
①存储数据
1 2 3 4 | try {
wx.setStorageSync(& #39;infofrominput', this.data.infofrominput)
} catch (e) {
}
|
②获取数据
1 2 3 4 5 6 7 8 9 | wx.getStorage({
key: & #39;infofrominput',
success: function (res) {
_this.setData({
infofromstorage: res.data,
})
}
})
|
key是本地缓存中的指定的 key,data是需要存储的内容.
详情见微信小程序开发文档:文档
贴上代码:
1.index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | var app = getApp()
Page({
data: {
info: app.data.info,
infofromindex: & #39;来自index.js的信息',
infofrominput: & #39;'
},
onLoad: function () {
},
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 })
},
saveinput: function () {
try {
wx.setStorageSync(& #39;infofrominput', this.data.infofrominput)
} catch (e) {
}
}
})
|
2.index.wxml
1 2 3 4 5 6 | < view >
< button style = "background-color:#00ff00;margin:20rpx" bindtap = "gotonewpage" >跳转</ button >
< input style = "background-color:#eee;margin:20rpx;height:80rpx" placeholder = "请输入需要保存的参数" bindinput = "searchInputEvent" />
< button style = "background-color:#ff0000;margin:20rpx" bindtap = "saveinput" >存入Storage</ button >
</ view >
|
3.newpage.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var app = getApp()
Page({
data: {
infofromapp: app.data.infofromapp,
infofromindex: & #39;',
infofromstorage: & #39;',
},
onLoad: function (options) {
var _this = this ;
var infofromindex = options.infofromindex;
this .setData({
infofromindex: infofromindex
})
wx.getStorage({
key: & #39;infofrominput',
success: function (res) {
_this.setData({
infofromstorage: res.data,
})
}
})
}
})
|
4.newpage.wxml
1 2 3 4 | < 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
1 2 3 4 5 6 7 8 9 | App({
data: {
infofromapp: & #39;来自APP.js的信息'
},
onLaunch: function () {
}
})
|
以上就是本文的全部内容,希望对大家的学习有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~