⼩程序页⾯传值的⼏种⽅式总结
⼀、storage
wx.setStorage({
key:"key",
data: value
})
通过getStorage回调⽅式获取data值,或者通过wx.getStorageSync(key) 同步获取key对应的data值
⼆、url传值
url传值也是经常都能⽤到的
小s与黄子佼1、url传递通过字符串拼接传递key=value形式的参数
wx.navigateTo({
url:'/pages/index/index?id=1111111111&...',
})
在跳转后的页⾯的onLoad⽣命周期函数中接受⼀个options参数,可以通过console.log(options.id)获取到url传递的id值
黄渤上康熙来了2、url传递对象形式的参数
假设需要传递的参数形式为:{key,value,key2:value2},这时候通过以上⽅式传递在option中打印出来会是⼀个object类型,([object object]) ,并不能真实获取参数。因此需要使⽤JSON.stringify()转化成json字符串再通过以上⽅式将参数传过去。页⾯中获取option的值,需要通过JSON.parse()转化成原本的json格式。
三、页⾯栈传值
⼩程序中wx.navigateBack()⽅法可以返回上级页⾯
var pages =getCurrentPages();// 获取页⾯栈
var Page = pages[pages.length -1];//当前页
var prevPage = pages[pages.length -2];//上⼀个页⾯
通过prevPage.setData({ key: value})可以改变上⼀个页⾯的data内容,key为上⼀个页⾯data中的值,value为需要传递(改变)的值通过wx.navigateBack({delta: 1}) 返回上级页⾯
四、获取、改变app.js中data的值
app.js中可以保存⼀个全局的属性,和storage类似
张家界了旅游
globalData是⼀个全局属性,⾥⾯声明的data值可以在所有页⾯中使⽤。
使⽤场景,存储⽤户信息、控制页⾯刷新
globalData:{
userInfo:null少数民族的风俗习惯
中国三级片
}
胖子行动队演员表
页⾯中的js需要const app = getApp() ,通过app.globalData.userInfo 获取globalData中userInfo的值,直接赋值即可修改:app.globalData.userInfo= ‘haha’