当前位置: 首页 > news >正文

微信小程序-页面通信

文章目录

  • 微信小程序-页面通信
    • EventChannel
    • PubSubJS

微信小程序-页面通信

EventChannel

可以通过 wx.navigateTo 打开的新页面,这两个页面会建立一个数据通道,可以借助 EventChannel 实现监听、发射数据。

第一个页面:

wx.navigateTo({url: "/pages/api/event/event?name=小明&age=18",// 监听事件events: {onReceive: (data) => {console.log(data)this.setData({userName: data.userName,userAge: data.userAge,})},},success: (res) => {// 发射事件res.eventChannel.emit("onEvent", { sex: "男", address: "北京" })},
})

第二个页面:

Page({data: {name: "",age: 0,sex: "",address: "",},eventChannel: null,sendEvent() {// 发射事件this.eventChannel.emit("onReceive", { userName: "张三", userAge: 28 })},onLoad(options) {this.eventChannel = this.getOpenerEventChannel()// 监听事件this.eventChannel.on("onEvent", (data) => {this.setData({sex: data.sex,address: data.address,})})this.setData({name: options.name,age: options.age,})},
})

PubSubJS

可以借助第三方库 PubSubJS 实现多级页面和兄弟组件间的数据通信。

一、安装库:

npm i pubsub-js

二、微信小程序 --> 工具 --> 构建 npm

三、引入:

import PubSub from "pubsub-js"

使用:

组件一:

import PubSub from "pubsub-js"Component({data: {book: {name: "西游记",roles: ["唐僧", "孙悟空", "猪八戒", "沙和尚"],},},methods: {sendData() {// 发送事件// 参数一:事件名// 参数二:传递的数据PubSub.publish("myevent", {bookName: this.data.book.name,bookRoles: this.data.book.roles,author: "吴承恩",})},},
})

组件二:

import PubSub from "pubsub-js"Component({data: {description: "",},lifetimes: {attached() {// 订阅事件// 参数一:事件名// 参数二:回调函数PubSub.subscribe("myevent", (msg, data) => {this.setData({description: `${data.bookName} - ${data.bookRoles} - ${data.author}`,})})},},
})

http://www.mrgr.cn/news/52147.html

相关文章:

  • AnaTraf | 网络分析系统:高效IT运维工具
  • 【Golang】国内接入stripe支付
  • Unity导入.FBX模型设置
  • 插值计算两个经纬度之间点,平滑移动Marker,两个地理坐标之间生成更多采样点
  • LeetCode题练习与总结:去除重复字母--316
  • 如何从头训练大语言模型: A simple technical report
  • (三十二)实现一个基本的文件上传功能的Flask应用
  • CPU占用很高排查方案
  • STL-常用容器-string
  • 深度学习神经网络的7大分类
  • 特征融合篇 | YOLOv10 引入动态上采样模块 | 超过了其他上采样器
  • docker harbor
  • 引领企业数字化未来:物联网与微服务架构的深度融合之道
  • 个人用软件分析与测试笔记(待补充)
  • RTI DDS发送数据的模型
  • 基于SSM的网上拍卖平台
  • 利用ChatGPT优化毕业论文写作:高效、智能的文献管理指南
  • typora整合minio实现文件上传,全干货不多BB
  • YOLOv11改进策略【卷积层】| 引入注意力卷积模块RFAConv,关注感受野空间特征 助力yolov11精度提升
  • JsonElement 类