微信小程序开发之数据存储 参数传递 数据缓存

网友投稿 274 2023-05-23


微信小程序开发之数据存储 参数传递 数据缓存

微信小程序开发内测一个月.数据传递的方式很少.经常遇到页面销毁后回传参数的问题,小程序中并没有类似android的startActivityForResult的方法,也没有类似广播这样的通讯方式,更没有类似eventbus的轮子可用.

现在已知传递参数的方法只找到三种,先总结下.由于正处于内测阶段,文档也不是很稳定,经常修改,目前尚没有人造轮子.

先上GIF:

1.APP.js

我把常用且不会更改的参数放在APP.js的data里面了.在各个page中都可以拿到var app = getApp();

app上就可以拿到存在data中的参数.

2. wx.navigateTo({})中URL携带参数

demo中已经写出:

wx.navigateTo({

url: "../newpage/newpage?infofromindex=" + this.data.infofromindex,

});

页面间传递参数的笔记

3.wx.setStorage(OBJECT) 数据缓存

微信开发文档中的数据缓存方法:

①存储数据

try {

wx.setStorageSync('infofrominput', this.data.infofrominput)

} catch (e) {

}

②获取数据

//获取

wx.getStorage({

key: 'infofrominput',

success: function (res) {

_this.setData({

infofromstorage: res.data,

})

}

})

key是本地缓存中的指定的 key,data是需要存储的内容.

详情见微信小程序开发文档:文档

贴上代码:

1.index.js

//index.js

/http:///获取应用实例

var app = getApp()

Page({

data: {

info: app.data.info,

infofromindex: '来自index.js的信息',

infofrominput: ''

},

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('infofrominput', this.data.infofrominput)

} catch (e) {

}

}

})

2.index.wxml

3.newpage.js

//newpage.js

//获取应用实例

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

infofromapp:{{infofromapp}}

infofromindex:{{infofromindex}}

infofromstorage:{{infofromstorage}}

5.app.js

//app.js

App({

data: {

infofromapp: '来自APP.js的信息'

},

onLaunch: function () {

}

})


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Java5、Java6、Java7的新特性
下一篇:Java 继承方法实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~