小程序页面传值的多种方式

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

1 使用wx.navigateTo()传值

这种传值方式有两种,

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

1.url后面拼接传值

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

test页面接收数据

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

2.events页面间通信接口

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

test页面接收数据

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

3,数据缓存

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

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

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

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

复制代码
let data= wx.getStorageSync('data')

4,页面栈传值

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

复制代码
let pages = getCurrentPages();
console.log(pages)

查看log

需要修改数据的页面

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

注意:

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

5,app.js保存全局属性

app.js配置全局属性

复制代码
globalData: {
  userInfo: null
}

需要使用的页面

复制代码
const app = getApp()
let userInfo = app.globalData.userInfo

需要改变app.js的值

复制代码
const app = getApp()
app.globalData.userInfo= "hello word"
相关推荐
陈随易5 小时前
bm2,Node.js 与 Bun 项目部署新选择
前端·后端·程序员
省钱兄--zs5 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
福兮说7 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
Ai-_Man8 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
传人once8 小时前
多图片上传预览功能如何写
前端·css·html·jquery·html5
Eric.468 小时前
Wan‑Animate+MiniMax-H3 本地部署 AI 漫剧流水线:8G 显存动作迁移与动态分镜工程实战
前端·人工智能·comfyui·ai漫剧
库拉镜像AI牛牛10 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔10 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
行者全栈架构师10 小时前
【鸿蒙心迹】相册文搜图工程化落地:HarmonyOS 7.0 端侧 AI 检索全链路实战与 5 个踩坑解法
前端
律宏阔10 小时前
Dart 3 Record:解决 Future.wait 异构返回值的类型问题
前端·flutter