微信小程序有哪些参数传值的方法?

一、跨页面传值

1、用navigator标签或wx.navigateTo(wx.redirectTo或wx.reLaunch或wx.switchTab或wx.navigateBack)例如:
(1)单个数据或几个数据传值
  wx.navigateTo({
    url: "../detail/detail?objectId=122342341"+"&?index=12",
  })

这里将objectId=12234234和index=12参数传入detail页面, 然后detail页面的 onload 方法内接受。

  onLoad:function(options){
    var objectId=options.objectId;
    var index =options.index;
}
(2)数组传值,先用JSON.stringify()转成字符串传递
var  mode=[{img:"/1.jpg",title:"香蕉",price:"3"},
                   {img:"/2.jpg",title:"苹果",price:"7"},
                   {img:"/3.jpg",title:"梨",price:"4"}];
//通过提供的JSON.stingify方法,将对象转换成字符串后传递
 wx.navigateTo({
    url: "../detail/detail?mode="+JSON.stringify(mode),
  })

这里将mode=JSON.stringify(mode)参数传入detail页面, 然后detail页面的 onload 方法内接受。

  onLoad:function(options){
    var objectId=options.model;
}
2、从页面路由栈中直接获取和操作目标Page对象
var pages = getCurrentPages();
var currPage = pages[pages.length - 1];   //当前页面
var prevPage = pages[pages.length - 2];  //上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
  mydata: {a:1, b:2}
})
3、使用全局数据存储
//存储到app对象上的方式 
var app = getApp()
app.globalData.mydata = {a:1, b:2};  //存储数据到app对象上

二、页内传值

1、设置id或data-xxx传值

getId:function(event){
   var id =event.currentTarget.dataset.id;
   var index=event.currentTarget.dataset.index;
}
2、form表单和input输入框

你可能感兴趣的:(微信小程序有哪些参数传值的方法?)