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

举报
青年码农 发表于 2022/08/25 00:18:11 2022/08/25
【摘要】 开发小程序,总是避免不了页面和页面之间数据共享,实现方法有很多种,今天就详细讲解下小程序页面传值,需要的朋友可以参考下。 1 使用wx.navigateTo()传值 这种传值方式有两种, url后面拼接传值:需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数...

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

1 使用wx.navigateTo()传值

这种传值方式有两种,

  • url后面拼接传值:需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 'path?key=value&key2=value2'

  • events页面间通信接口:用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。

1.url后面拼接传值


   
  1. wx.navigateTo({
  2.   url: 'test?id=1',
  3. })

test页面接收数据


   
  1. Page({
  2.   onLoad: function(option){
  3.     console.log(option.query)
  4.   }
  5. })

2.events页面间通信接口


   
  1. wx.navigateTo({
  2.   url: 'test',
  3.   events: {},
  4.   success: function (res) {
  5.     res.eventChannel.emit('goTest', { data: {id:1,content:'hello word'} })
  6.   }
  7. })

test页面接收数据


   
  1. Page({
  2.   onShow: function () {
  3.     let that = this
  4.     const eventChannel = that.getOpenerEventChannel()
  5.     eventChannel.on('goTest', function (data) {
  6.       console.log(data)
  7.     })
  8.   },
  9. })

2 数据缓存

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

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

wx.setStorageSync('data', {data:"数据"})
  

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

let data= wx.getStorageSync('data')
  

3 页面栈传值

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


   
  1. let pages = getCurrentPages();
  2. console.log(pages)

查看log

93f01ff6ffb6048f27408da6529aed0e.png

需要修改数据的页面


   
  1. currPage = pages[pages.length - 1]
  2. currPage.setData({
  3.   data:'hello word'
  4. })

注意:

  • 不要尝试修改页面栈,会导致路由以及页面状态错误。

  • 不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

4 app.js保存全局属性

app.js配置全局属性


   
  1. globalData: {
  2.   userInfo: null
  3. }

需要使用的页面


   
  1. const app = getApp()
  2. let userInfo = app.globalData.userInfo

需要改变app.js的值


   
  1. const app = getApp()
  2. app.globalData.userInfo= "hello word"

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066795

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。