微信小程序开发里数据存储、参数传递与数据缓存的详解

why 669 2024-08-19

本文主要介绍了微信小程序开发之数据存储、参数传递、数据缓存的相关知识。具有很好的参考价值。下面一起来看下吧

微信小程序开发内测一个月.数据传递的方式很少.经常遇到页面销毁后回传参数的问题,小程序中并没有类似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('infofrominput', this.data.infofrominput)

} catch (e) {

}


②获取数据


1

2

3

4

5

6

7

8

9

//获取

wx.getStorage({

 key: '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

//index.js

//获取应用实例

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


1

2

3

4

5

6

<!--index.wxml-->

<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

//newpage.js

//获取应用实例

var app = getApp()

Page({

 data: {

 infofromapp: app.data.infofromapp,

 infofromindex: &#39;&#39;,

 infofromstorage: &#39;&#39;,

 },

 onLoad: function (options) {

 var _this = this;

 var infofromindex = options.infofromindex;

 this.setData({

  infofromindex: infofromindex

 })

 //获取

 wx.getStorage({

  key: &#39;infofrominput&#39;,

  success: function (res) {

  _this.setData({

   infofromstorage: res.data,

  })

  }

 })

 }

})


4.newpage.wxml


1

2

3

4

<!--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


1

2

3

4

5

6

7

8

9

//app.js

App({

 data: {

 infofromapp: &#39;来自APP.js的信息&#39;

 },

 onLaunch: function () {

  

 }

})



以上就是本文的全部内容,希望对大家的学习有所帮助。


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

上一篇:绍兴小程序设计开发:提升您的业务和用户体验
下一篇:微信小程序里支付后调用 SDK 的异步通知与验证处理订单的方法解析
相关文章

 发表评论

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