欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-18 12:38:16
小程序界面传值 父级界面:a界面 子级界面:b界面 一、url传值 详细的配置参数可以查看,这里不再做过多的解释。 1. 正向传值:a界面 –>b界面...

小程序界面传值

父级界面:a界面
子级界面:b界面

一、url传值

详细的配置参数可以查看,这里不再做过多的解释。
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
    });

以上所述是小编给大家介绍的微信小程序:数据存储、传值、取值详解整合,希望对大家有所帮助