微信小程序:数据存储、传值、取值详解


Posted in Javascript onMay 07, 2019

小程序界面传值

父级界面:A界面
子级界面:B界面

一、url传值

详细的配置参数可以查看组件导航:navigator,这里不再做过多的解释。
1. 正向传值:A界面 ?>B界面

用 navigator标签或 wx.navigator传值,A界面向B界面传id值

A界面获取id值传向B界面如果需要传多个参数, 用 & 链接即可

// 方法一:navigator标签传值
  <navigator url="/page/index/index?id=110" >传值</navigator>
  <navigator url="/page/index/index?id=110&username=jane&password=123456" >传值</navigator>

  // 方法二: wx.navigator标签传值单值、多值传递
  wx.navigateTo({
   url: '/page/index/index?id=' + id
  })

  wx.navigateTo({
   url: '/page/index/index?id=' + id +'&username='+ username+'&password='+ password
  })

B界面接受id值

/**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
  var id = options.id;
  this.setData({
   id:id,
   username:username,
   password:password,
  })
 },

反向传值:B界面 ?>A界面

在B界面需要传值地方代码如下

var pages = getCurrentPages() // 获取栈中全部界面的, 然后把数据写入相应界面
  var currentPage = pages[pages.length - 1] //当前界面
  var prePage = pages[pages.length - 2] //上一个界面
  var that = this
  prePage.setData({
   id: that.data.id,
  })

在A界面需要接受B界面传过来值码如下:这里要在onShow方法里面重新调用你的数据请求或是,为了验证是否传值成功,你可以打印验证 注:由于你从B界面返回A界面使用了wx.navigateBack,所以当你回到A界面后onLoad、onReady方法不响应,onShow方法响应,所以这里你需要特别注意--生命周期

/**
  * 生命周期函数--监听页面显示
  */
  onShow: function () {
   //获取数据 
   this.gainData() 
   // 打印你的传值
   console.log("res==", this.data.res)
  },

二、本地储存 tips:本地数据存储的大小限制为 10MB

每个微信小程序都可能用到本地缓存数据,这里我们可以通过调用微信提供的方法:wx.setStorage、wx.setStorageSync、wx.getStorage、wx.getStorageSync、wx.clearStorage、wx.clearStorageSync、实现对数据本地缓存、获取、清除。可参考微信小程序【数据缓存】开发文档,查看详情。

在A界面获取数据并缓存到本地

wx.setStorageSync('user_info', dic);

在B界面获取数据并缓存到本地

var user_info = wx.getStorageSync("user_info")
   this.setData({
    username: user_info.username
   });

从本地缓存中同步移除指定 key。这里具体使用同步或是异步需要根据你存储时的方法,或是同步清理本地数据缓存wx.clearStorageSync()

wx.removeStorageSync("user_info")

同理你可以在B界面传值在A界面取值,只不过这里你需要注意存储、获取的顺序,先存后取,否则你是拿不到值的。

三、全局的app对象

这里你需要在app.js文件,写好你要全局使用的数据

//用户数据
    appData: {
      user_info:null,
    }

在你需要赋值的地方引用app,代码如下:

var app = getApp();
    app.appData.user_info = {"username":"jane"};

在你需要取值的地方引用app,代码如下:

var app = getApp();
    var user_info = app.appData.user_info;
    this.setData({
      username: user_info.username
    });

以上所述是小编给大家介绍的微信小程序:数据存储、传值、取值详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
JavaScript的Number对象的toString()方法
Dec 18 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
微信小程序 Image API实例详解
Sep 30 Javascript
JS实现颜色梯度与渐变效果完整实例
Dec 30 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
js实现星星海特效的示例
Sep 28 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 #Javascript
详解Vue前端生产环境发布配置实战篇
May 07 #Javascript
7个好用的JavaScript技巧分享(译)
May 07 #Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 #Javascript
vue搜索和vue模糊搜索代码实例
May 07 #Javascript
详解Vue demo实现商品列表的展示
May 07 #Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 #Javascript
You might like
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
php学习之流程控制实现代码
2011/06/09 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
入党积极分子介绍信
2014/01/17 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
2016春节家属慰问信
2015/03/25 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
python glom模块的使用简介
2021/04/13 Python