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


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实现ping功能的方法
Mar 20 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
javascript中indexOf技术详解
May 07 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
jquery实现简单实用的轮播器
May 23 jQuery
vue.js如何更改默认端口号8080为指定端口的方法
Jul 14 Javascript
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
layui递归实现动态左侧菜单
Jul 26 Javascript
js实现小时钟效果
Mar 25 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
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
javascript回到顶部特效
2016/07/30 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
Django Celery异步任务队列的实现
2019/07/24 Python
Python调用C语言的实现
2019/07/26 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
历史专业个人求职信分享
2013/12/20 职场文书
员工工作表扬信范文
2014/01/13 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
专家推荐信模板
2014/05/09 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2015年端午节活动总结
2015/02/11 职场文书
孔子观后感
2015/06/08 职场文书