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


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 相关文章推荐
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
解析JavaScript数组方法reduce
Dec 12 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
webpack4.x开发环境配置详解
2018/08/04 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
详解如何使用Python编写vim插件
2017/11/28 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
英语专业学生的自我评价
2013/12/30 职场文书
陈欧的广告词
2014/03/18 职场文书
医学检验专业自荐信
2014/09/18 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA