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

Vue消息订阅与发布

 

引入第三方库pubsub.js:

npm i pubsub-js

Student.vue

import pubsub from 'pubsub-js'
 methods:{sendStudentName(){// this.$bus.$emit('hello',this.name)pubsub.publish('hello',666)}},

School.vue

import pubsub from 'pubsub-js'
 mounted() {// console.log("school",this.x)
/*    this.$bus.$on('hello',(data)=>{console.log('我是school组件,收到了数据',data)})*/this.pubId = pubsub.subscribe('hello',function (msgName,data){console.log('有人发布了hello消息,hello消息的回调执行了',msgName,data)})},beforeDestroy() {// this.$off('hello')pubsub.unsubscribe(this.pubId)},
}

TodoList案例使用消息订阅实现删除功能:

App.vue:

import pubsub from 'pubsub-js'
 mounted() {this.$bus.$on('checkTodo',this.checkTodo)this.pubId = pubsub.subscribe('deleteTodo',this.deleteTodo)},beforeDestroy() {this.$bus.$off('checkTodo')pubsub.unsubscribe(this.pubId)}
}

MyItem.vue:

import pubsub from 'pubsub-js'
  methods:{//勾选or取消勾选handleCheck(id){//通知App组件将对应的todo对象的done值取反// this.checkTodo(id)this.$bus.$emit('checkTodo',id)},//删除handleDelete(id){if (confirm('确定删除吗')){  //confirm根据用户的交互来决定到底是布尔值为真还是为假,点击确定为真,点击取消为假// this.deleteTodo(id)pubsub.publish('deleteTodo',id)}}

 

http://www.lryc.cn/news/95458.html

相关文章:

  • MySQL学习笔记 ------ 分组查询
  • Matlab 点云平面特征提取
  • vite的介绍
  • 裁员 10%,暴跌 14%,这家 IT 独角兽正在被抛弃!
  • 电脑记事本在哪里?电脑桌面显示记事本要怎么设置?
  • 微服务笔记---Nacos集群搭建
  • python 小案例
  • 【SpringBoot】SpringBoot JPA 基础操作(CURD)
  • 大数据技术之Hive3
  • Spring Boot实践二
  • python:基于GeoPandas和GeoViews库将GEDI激光高程数据映射到交互式地图
  • 汇编实现strcpy
  • Appium+python自动化(二十四) - 元素等待(超详解)
  • NFT市场泡沫破裂了吗?投资NFT是否仍然安全?
  • k8s使用helm部署Harbor镜像仓库并启用SSL
  • B/B+树算法
  • vue3.2 + elementPlus + Windi CSS + ts创建一个好用的可兼容不同宽高的login页面
  • Integer包装类详解加部分源码
  • 如何给侧边栏添加 Badge 计数标记
  • 插槽slot复习
  • 【C++STL标准库】序列容器之deuqe与、orwa_list与list
  • RocketMQ教程-(5)-功能特性-消息发送重试和流控机制
  • OpenCV笔记
  • Mysql基础(下)之函数,约束,多表查询,事务
  • Android 屏幕适配各种宽高比的手机
  • 云计算——云计算与虚拟化的关系
  • 手机变局2023:一场瞄准产品和技术的“思维革命”
  • 【Linux】自动化构建工具-make/Makefile详解
  • 1 js嵌入html使用
  • 总结RoctetMQ