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


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 相关文章推荐
12款经典的白富美型—jquery图片轮播插件—前端开发必备
Jan 08 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
javascript表单正则应用
Feb 04 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
Aug 24 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
JavaScript实现轮播图特效
Apr 10 Javascript
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
5个实用的JavaScript新特性
Jun 16 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制作简单的内容采集器的原理分析
2008/10/01 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
理解javascript回调函数
2014/12/28 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
Python脚本实现虾米网签到功能
2016/04/12 Python
Python常见异常分类与处理方法
2017/06/04 Python
Python变量访问权限控制详解
2019/06/29 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
如何对python的字典进行排序
2020/06/19 Python
Sql面试题
2013/03/20 面试题
什么是URL
2015/12/13 面试题
餐饮部总监岗位职责范文
2014/02/13 职场文书
业务员自荐信范文
2014/04/20 职场文书
敬老院活动总结
2014/04/28 职场文书
环保专项行动方案
2014/05/12 职场文书
个人政治思想总结
2015/03/05 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python