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


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 相关文章推荐
js arguments对象应用介绍
Nov 28 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
mock.js模拟数据实现前后端分离
Jul 24 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
vue中touch和click共存的解决方式
Jul 28 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
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
python赋值操作方法分享
2013/03/23 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python实现Virginia无密钥解密
2019/03/20 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python入门教程之基本算术运算符
2020/11/13 Python
自我介绍演讲稿
2014/01/15 职场文书
给领导的感谢信范文
2015/01/23 职场文书
建党伟业电影观后感
2015/06/01 职场文书
党小组鉴定意见
2015/06/02 职场文书
2019年工作总结范文
2019/05/21 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Java存储没有重复元素的数组
2022/04/29 Java/Android