Vue消息订阅与发布

引入第三方库pubsub.js:

java 复制代码
npm i pubsub-js

Student.vue

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

School.vue

javascript 复制代码
import pubsub from 'pubsub-js'
javascript 复制代码
 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:

javascript 复制代码
import pubsub from 'pubsub-js'
javascript 复制代码
 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:

javascript 复制代码
import pubsub from 'pubsub-js'
javascript 复制代码
  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)
        }
    }
相关推荐
Autumn_ing2 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
远离UE43 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience3 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
朱涛的自习室3 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
java1234_小锋6 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天6 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源
流星。。方6 小时前
小团队官网SEO落地:前端语义化与静态生成的工程实践
前端·状态模式
用户530429765796 小时前
盘点危化品搬运诊断的6类工具与自处理边界判断
前端
curtain6 小时前
从古法编程到 Agent:我入行这两年,AI 改变了什么
前端·openai
zyfts6 小时前
10分钟自制Codex钉钉通知Skill:AI干完活自动钉钉提醒你
前端