微信小程序传值、取值总结
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
});
}
})