微信小程序

微信小程序传值、取值总结

2019-06-21  本文已影响0人  是狮子呀_

一、路由传值

1.父传子
用 navigator标签或 wx.navigator传值
//父页面
//方法一:navigator标签传值
<navigator url="path?key=value&key2=value2" >传值</navigator>
//方法二:wx.navigateTo
wx.navigateTo({
      url: 'path?key=value&key2=value2',
    })

//子页面
 /**
  * 生命周期函数--监听页面加载
  */
  onLoad: function (e) {
    var self=this;
    self.setData({
      key : e.key,
      key2: e.key2
    })
  },
2.子传父
在子页面需要传值的地方代码如下:
    var pages = getCurrentPages() // 获取栈中全部界面的, 然后把数据写入相应界面
    var currentPage  = pages[pages.length - 1]  //当前界面
    var prePage = pages[pages.length - 2]  //上一个界面
    var that = this;
    prePage.setData({
       group_id: that.data.group_id,
    })
在父页面要在onShow方法里面重新调用你的数据
page({
  data:{
    group_id:0,
  },
    /**
    * 生命周期函数--监听页面显示
    */
    onShow: function () {
      // 打印你的传值
      console.log("group_id=======", this.data.group_id)
    },
})

二、本地存储

wx.setStorage(wx.setStorageSync)
wx.getStorage(wx.getStorageSync)
wx.clearStorage(wx.clearStorageSync)
wx.getStorageInfo(wx.getStorageInfoSync)
wx.removeStorage(wx.removeStorageInfoSync)
依次是保存、获取、清空、获取所有、清除。同一个微信用户,同一个小程序 storage 上限为 10MB。本质上是使用的localStorage进行存储的。

这里你需要注意存储、获取的顺序,先存后取,否则你是拿不到值的。
1.获取数据并缓存到本地
var group={
    group_id:1,
    name:'讨论组1'
}
wx.setStorageSync('group', group);
2.获取数据
     var user_info = wx.getStorageSync("group")
     this.setData({
        group_id: group.group_id,
        group_name:group.name
     });

三、全局的app对象

1.在app.js 内设置全局变量
globalData: {
    group_id:null,
    group_name:null
  },
2.跨页面调用
var app = getApp();//写在页面顶部page()外
page({
    onLoad(){
      //在你需要赋值的地方引用app,代码如下:
      app.globalData.group_id =1;
      app.globalData.group_name ='讨论组1';

      //在你需要取值的地方引用app,代码如下:
      var group_name= app.globalData.group_name;
      this.setData({
         group_name:group_name
      });
    }
})

上一篇下一篇

猜你喜欢

热点阅读