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


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 相关文章推荐
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
16个最流行的JavaScript框架[推荐]
May 29 Javascript
中文字符串截取的js函数代码
Apr 17 Javascript
JavaScript声明变量时为什么要加var关键字
Sep 29 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
原生javascript 学习之js变量全面了解
Jul 14 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
深入理解Vue官方文档梳理之全局API
Nov 22 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
javascript常用函数(1)
2015/11/04 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python的requests网络编程包使用教程
2016/07/11 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
pow在python中的含义及用法
2019/07/11 Python
python实现局域网内实时通信代码
2019/12/22 Python
python如何运行js语句
2020/09/09 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
为什么要做架构设计
2015/07/08 面试题
商务英语专业自荐信
2013/10/14 职场文书
法律进企业活动方案
2014/03/04 职场文书
协议书格式
2014/04/23 职场文书
世界名著读书笔记
2015/06/25 职场文书
python关于集合的知识案例详解
2021/05/30 Python