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


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实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
Aug 15 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
Vue通过input筛选数据
Oct 26 Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 Javascript
ES6函数和数组用法实例分析
May 23 Javascript
js+css实现全屏侧边栏
Jun 16 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添加MySQL数据记录代码
2008/06/07 PHP
PHP编程函数安全篇
2013/01/08 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
js中function()使用方法
2013/12/24 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python调用staf自动化框架的方法
2018/12/26 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python常用编译器原理及特点解析
2020/03/23 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
应届生学校辅导员求职信
2013/11/07 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书