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


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 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
百度移动版的url编码解码示例
Apr 29 Javascript
jQuery 和 CSS 的文本特效插件集锦
Dec 12 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
js实现下拉框二级联动
Dec 04 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
Sep 06 Javascript
vuex入门最详细整理
Mar 04 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
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
webpack4 处理CSS的方法示例
2018/09/03 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
微信小程序实现音乐播放器
2019/11/20 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python函数局部变量用法实例分析
2015/08/04 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
快速了解python leveldb
2018/01/18 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python中@property的理解和使用示例
2019/06/11 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
如何保障Web服务器安全
2014/05/05 面试题
50岁生日感言
2014/01/23 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
北京奥运会主题口号
2014/06/13 职场文书
javaScript Array api梳理
2021/03/31 Javascript
python munch库的使用解析
2021/05/25 Python
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle