找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

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

作者:模板之家 2017-12-8 17:40 5768人关注

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

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

 

[javascript] view plain copy
 
  1. //index.js  
  2. //获取应用实例  
  3. var app = getApp()  
  4. Page({  
  5.   data: {  
  6.     info: app.data.info,  
  7.     infofromindex: '来自index.js的信息',  
  8.     infofrominput: ''  
  9.   },  
  10.   onLoad: function () {  
  11.   },  
  12.   //跳转到新页面  
  13.   gotonewpage: function () {  
  14.     wx.navigateTo({  
  15.       url: "../newpage/newpage?infofromindex=" + this.data.infofromindex,  
  16.     });  
  17.   },  
  18.   //获取输入值  
  19.   searchInputEvent: function (e) {  
  20.     console.log(e.detail.value)  
  21.     this.setData({ infofrominput: e.detail.value })  
  22.   },  
  23.   //保存参数  
  24.   saveinput: function () {  
  25.     try {  
  26.       wx.setStorageSync('infofrominput'this.data.infofrominput)  
  27.     } catch (e) {  
  28.     }  
  29.   }  
  30. })  
2.index.wxml
[html] view plain copy
 
  1. <!--index.wxml-->  
  2. <view>  
  3. <button style="background-color:#00ff00;margin:20rpx" bindtap="gotonewpage">跳转</button>  
  4. <input  style="background-color:#eee;margin:20rpx;height:80rpx" placeholder="请输入需要保存的参数" bindinput="searchInputEvent" />  
  5. <button style="background-color:#ff0000;margin:20rpx" bindtap="saveinput">存入Storage</button>  
  6. </view>  
3.newpage.js

 

[javascript] view plain copy
 
  1. //newpage.js  
  2. //获取应用实例  
  3. var app = getApp()  
  4. Page({  
  5.     data: {  
  6.         infofromapp: app.data.infofromapp,  
  7.         infofromindex: '',  
  8.         infofromstorage: '',  
  9.     },  
  10.     onLoad: function (options) {  
  11.         var _this = this;  
  12.         var infofromindex = options.infofromindex;  
  13.         this.setData({  
  14.             infofromindex: infofromindex  
  15.         })  
  16.         //获取  
  17.         wx.getStorage({  
  18.             key: 'infofrominput',  
  19.             success: function (res) {  
  20.                 _this.setData({  
  21. 邀请

路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)