小程序页面之间数据传递的五种方法

小程序页面之间数据传递的五种方法

目录

    • 小程序页面之间数据传递的五种方法
      • **使用 `wx.navigateTo()` 时,在 url 中拼接,这种方法适用于数据量少的情况**
      • **使用 `wx.navigateTo()` 时,通过 eventChannel 向被打开页面传送数据, 或被打开页面向原页面传递数据,适合数据量大或者相对复杂的数据传递**
      • 返回上一个页面同时传递数据
      • 使用本地缓存 wx.setStorageSync()
      • 在 app.js 中添加公用数据

  1. 使用 wx.navigateTo() 时,在 url 中拼接,这种方法适用于数据量少的情况

    跳转前A页面在 url 中拼接参数,参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;

    wx.navigateTo({
         
        url: '/somePathXXX/somePathXXX?keyA=valueA&keyB=valueB'
    })
    

    跳转到B页面在生命周期函数 onLoad 中接收

    onLoad: function (options) {
         
        let keyA = options.keyA
        let keyB = options.keyB
    },
    

    如果需要传递对象或数组,需先将对象或数据转为JSON字符串

    let data = {
         
        name: 'sun',
        sex: '女',
        age: 20
    }
    let dataStr = JSON.stringify(data)
    wx.navigateTo({
         
      url: '/somePathXXX/somePathXXX?dataStr=' + dataStr,
    })
    

    接收时再转换回对象或数组

    onLoad: function (options) {
         
        let data = JSON.parse(options.dataStr)
        console.log(data); // {name: "sun", sex: "女", age: 20}
    },
    
  2. 使用 wx.navigateTo() 时,通过 eventChannel 向被打开页面传送数据, 或被打开页面向原页面传递数据,适合数据量大或者相对复杂的数据传递

    ① A页面跳转至B页面,同时A页面向B页面传递数据

    跳转前A页面:

    let data = 

你可能感兴趣的:(小程序,小程序,javascript,前端)