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


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 相关文章推荐
基于jquery的inputlimiter 实现字数限制功能
May 30 Javascript
js比较和逻辑运算符的介绍
Mar 10 Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
JavaScript生成图形验证码
Aug 24 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
js前端如何写一个精确的倒计时代码
Oct 25 Javascript
Vuex实现数据增加和删除功能
Nov 11 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
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
封装html的select标签的js操作实例
2013/07/02 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
详解Python绘图Turtle库
2019/10/12 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python解释器安装教程的方法步骤
2020/07/02 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
班训口号大全
2014/06/18 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
教师个人年度总结
2015/02/11 职场文书
2015年老干部工作总结
2015/04/23 职场文书
农业项目投资意向书
2015/05/09 职场文书
欠条格式范本
2015/07/03 职场文书