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


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处理json与ajax返回JSON实例代码
Jan 03 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
用console.table()调试javascript
Sep 04 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
Cpage.js给组件绑定事件的实现代码
Aug 31 Javascript
js断点调试心得分享(必看篇)
Dec 08 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
微信小程序实现用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中的正则表达式以及模式匹配
2013/06/19 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
简单谈谈Python流程控制语句
2016/12/04 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python中修改字符串的四种方法
2018/11/02 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
django和vue实现数据交互的方法
2019/08/21 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python实现打印实心和空心菱形
2019/11/23 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
python构造函数init实例方法解析
2020/01/19 Python
Python json读写方式和字典相互转化
2020/04/18 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
企业治理工作自我评价
2013/09/26 职场文书
网络教育毕业生自我鉴定
2013/10/10 职场文书
小学开学寄语
2014/01/19 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
租房安全协议书
2014/08/20 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript