前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多种详细讲解小程序页面传值

多种详细讲解小程序页面传值

作者头像
青年码农
修改2021-09-09 11:15:08
1.9K0
修改2021-09-09 11:15:08
举报
文章被收录于专栏:青年码农青年码农

开发小程序,总是避免不了页面和页面之间数据共享,实现方法有很多种,今天就详细讲解下小程序页面传值,需要的朋友可以参考下。

1 使用wx.navigateTo()传值

这种传值方式有两种,

  • url后面拼接传值:需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 'path?key=value&key2=value2'
  • events页面间通信接口:用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。

1.url后面拼接传值

代码语言:javascript
复制
wx.navigateTo({
  url: 'test?id=1',
})

test页面接收数据

代码语言:javascript
复制
Page({
  onLoad: function(option){
    console.log(option.query)
  }
})

2.events页面间通信接口

代码语言:javascript
复制
wx.navigateTo({
  url: 'test',
  events: {},
  success: function (res) {
    res.eventChannel.emit('goTest', { data: {id:1,content:'hello word'} })
  }
})

test页面接收数据

代码语言:javascript
复制
Page({
  onShow: function () {
    let that = this
    const eventChannel = that.getOpenerEventChannel()
    eventChannel.on('goTest', function (data) {
      console.log(data)
    })
  },
})

2 数据缓存

利用微信提供的wx.setStorage()wx.setStorageSync()wx.getStorage()wx.getStorageSync()等API

当前页传数据,为确保数据已经进入缓存,最好用同步

代码语言:javascript
复制
wx.setStorageSync('data', {data:"数据"})

目标页,在需要用的地方获取

代码语言:javascript
复制
let data= wx.getStorageSync('data')

3 页面栈传值

getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

代码语言:javascript
复制
let pages = getCurrentPages();
console.log(pages)

查看log

需要修改数据的页面

代码语言:javascript
复制
currPage = pages[pages.length - 1]
currPage.setData({
  data:'hello word'
})

注意:

  • 不要尝试修改页面栈,会导致路由以及页面状态错误。
  • 不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

4 app.js保存全局属性

app.js配置全局属性

代码语言:javascript
复制
globalData: {
  userInfo: null
}

需要使用的页面

代码语言:javascript
复制
const app = getApp()
let userInfo = app.globalData.userInfo

需要改变app.js的值

代码语言:javascript
复制
const app = getApp()
app.globalData.userInfo= "hello word"
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 青年码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档