微信小程序-页面传值

1.在.wxml页面

 

如果需要传多个参数, 用 & 链接即可;

在对应页面的onload方法内接受;

onLoad:function(options){
  this.setData({
    typeId:typeId
})
}

如果要传数组, 字典等复杂类型, 要先用 JSON.stringify() 转成字符串传递.

页面绑定方法,方法内部执行跳转操作,比如跳转

navigeteEvent:function(){

   //下面的几种跳转....

}

/***保留当前页面,跳转到应用内的某个页面,跳转到非导航页面,用 wx.navigateTo 方法***/

wx.navigateTo({    
  url: '../person/goldcoin/index?id='+id 
 }) 

/****关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。****/
wx.redirectTo({
  url: 'test?id=1'
})

/***跳转到tabBar导航页面,用 wx.switchTab 方法***/
{
  "tabBar": {
    "list": [
      {
        "pagePath": "index",
        "text": "首页"
      },
      {
        "pagePath": "other",
        "text": "其他"
      }
    ]
  }
}
wx.switchTab({
  url: '/index'
})

2.用getCurrentPages() 获取栈中全部页面的, 然后把数据写入相应页面

    
    var pages = getCurrentPages();
    var currPage = pages[pages.length - 1]; //当前页面
    var prevPage = pages[pages.length - 2]; //上一个页面
    //直接调用上一个页面对象的setData()方法,把数据存到上一个页面中去
    prevPage.setData({
      PriceType: [
        {id:1,name:'公司'},
        {id:1,name:'电话'}
        ],
    });
    wx.navigateBack({
      delta: 1
    })

这里可以传字符串, 也能传数组;

一定要在 onshow() 方法中接受, 直接输出this.data.PriceType就可以获取到上个页面传过来的数值,因为再次返回只执行onshow()方法;

3.定义全局变量

比如我们可以在一定加载的app.js页面中,引入接口文档

var api = require('utils/api.js')
wx.api = api;

其他页面使用接口:wx.api.接口方法名

4.缓存

wx.setStorageSync('key', 'value')
wx.getStorageSync('key')
wx.removeStorageSync('key')
wx.clearStorageSync()

 

你可能感兴趣的:(微信小程序)