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


Posted in Javascript onApril 13, 2017

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

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

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

<!--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 () { 
 
 } 
})

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript中的16进制字符(改进)
Nov 21 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
js继承实现方法详解
Dec 16 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
分享15个Webpack实用的插件!!!
Mar 31 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 #jQuery
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
Apr 13 #Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 #Javascript
详解vue的数据binding绑定原理
Apr 12 #Javascript
angular学习之ngRoute路由机制
Apr 12 #Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 #Javascript
微信小程序登录态控制深入分析
Apr 12 #Javascript
You might like
解析php中static,const与define的使用区别
2013/06/18 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
PDO::_construct讲解
2019/01/27 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
JS中style属性
2006/10/11 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
JavaScript 事件查询综合
2009/07/13 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
WebPack基础知识详解
2017/01/16 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
python数据结构之链表详解
2017/09/12 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
教师岗位职责
2013/11/17 职场文书
财务出纳员岗位职责
2013/11/26 职场文书
大学生自荐信
2013/12/11 职场文书
学习新党章思想汇报
2014/01/09 职场文书
家长会主持词
2014/03/26 职场文书
初三学习计划书范文
2014/04/30 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android