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

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

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"
相关推荐
楚轩努力变强1 小时前
前端工程化常见问题总结
开发语言·前端·javascript·vue.js·visual studio code
鱼樱前端1 小时前
rust基础二(闭包)
前端·rust
菜鸟学Python1 小时前
Python web框架王者 Django 5.0发布:20周年了!
前端·数据库·python·django·sqlite
前端开发爱好者1 小时前
只有 7 KB!前端圈疯传的 Vue3 转场动效神库!效果炸裂!
前端·javascript·vue.js
pe7er1 小时前
RESTful API 的规范性和接口安全性如何取舍
前端·后端
Fly-ping1 小时前
【前端】JavaScript文件压缩指南
开发语言·前端·javascript
未来之窗软件服务3 小时前
免费版酒店押金原路退回系统之【房费押金计算器】实践——仙盟创梦IDE
前端·javascript·css·仙盟创梦ide·东方仙盟·酒店押金系统
拾光拾趣录3 小时前
常见 HTTP 请求头:从“为什么接口返回乱码”说起
前端·http
阿华的代码王国3 小时前
【Android】卡片式布局 && 滚动容器ScrollView
android·xml·java·前端·后端·卡片布局·滚动容器
2025年一定要上岸3 小时前
【pytest高阶】源码的走读方法及插件hook
运维·前端·python·pytest