vue2 src_消息订阅和发布(pubsub-js)

devtools/2024/11/25 21:30:34/

main.js

//引入Vue
import Vue from "vue";
//引入App
import App from './App';//关闭Vue的生产提示
Vue.config.productionTip = false;new Vue({el:'#app',render: h => h(App),
});

App.vue

<template><div class="app"><h1>{{ msg }}</h1><School/><Student/></div>
</template><script>
import Student from "@/components/Student";
import School from "@/components/School";
export default {name: "App",components: {School,Student,},data() {return {msg: 'helloこんにちは',studentName: ''}}
}
</script><style>/*全局的样式是不需要加scoped全局共享*/.app{background: gray;padding: 5px;}
</style>

Student.vue

<template><div class="student"><h2>姓名:{{  name }}</h2><h2>性别: {{ sex }}</h2><button @click="sendStudentName">把学生名传递给school组件</button></div>
</template><script>
import pubsub from "pubsub-js";
export default {name: "Student",data(){console.log(this);return {name: '张三',sex: '男',}},methods:{sendStudentName(){// this.$bus.$emit('hello', this.name);//发布消息pubsub.publish('hello', this.name);}},
}
</script><style scoped>.student{background: orange;padding: 5px;margin-bottom: 10px;}
</style>

School.vue

<template><div class="demo"><h2>学校名称:{{  name }}</h2><h2>学校地址: {{ address }}</h2></div>
</template><script>
import pubsub from 'pubsub-js';
export default {name: "School",data(){console.log(this);return {name: 'wust university',address: '武汉科技大学'}},mounted() {// console.log('School', this);// this.$bus.$on('hello', (data) => {//   console.log(`我是School组件,我收到了数据,${data}`);// })//订阅消息 隔空对讲机喊话this.pubId = pubsub.subscribe('hello',  (name, msg) => {//注意这里写剪头函数this才不会丢console.log(`有人发布了hello消息,回调被执行,data: ${msg}`);});},beforeDestroy() {// this.$bus.$off('hello'); //销毁解绑//取消订阅pubsub.unsubscribe(this.pubId); //取消订阅}
}
</script><style scoped>/*scoped代表局部的*/.demo{background: skyblue;padding:5px}
</style>


http://www.ppmy.cn/devtools/136942.html

相关文章

el-scrollbar滚动表格时表头边框处有间隙的问题css

表头固定&#xff0c;滚动时不出现边框间隙 <div class"list"><table><tr><th>设备名称</th><th width"60">数据</th><th width"60">控制</th></tr></table><el-scrollba…

网络安全概论

一、 网络安全是一个综合性的技术。在Internet这样的环境中&#xff0c;其本身的目的就是为了提供一种开放式的交互环境&#xff0c;但是为了保护一些秘密信息&#xff0c;网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…

实验室管理流程优化:Spring Boot技术实践

3系统分析 3.1可行性分析 通过对本实验室管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本实验室管理系统采用SSM框架&#xff0c;JAVA作为开发语言&a…

Superset 二次开发之Superset技术栈分析

Apache Superset 是一个功能强大的开源数据可视化平台,支持交互式仪表板和数据探索。它的灵活性来源于其现代化的技术栈架构。本文将详细分析 Superset 的技术栈,从前端到后端及数据层,帮助开发者理解其核心组件和使用场景。 1. 整体架构概览 Superset 的架构分为三个主要…

241124学习日志——[CSDIY] [ByteDance] 后端训练营 [14]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

基于CNN+RNNs(LSTM, GRU)的红点位置检测(pytorch)

1 项目背景 需要在图片精确识别三跟红线所在的位置&#xff0c;并输出这三个像素的位置。 其中&#xff0c;每跟红线占据不止一个像素&#xff0c;并且像素颜色也并不是饱和度和亮度极高的红黑配色&#xff0c;每个红线放大后可能是这样的。 而我们的目标是精确输出每个红点的…

golang学习6-指针

指针就是地址。 指针变量就是存储地址的变量。 *p:解引用、间接引用。 栈帧:用来给函数运行提供内存空间。取内存于 stack 上。 当函数调用时&#xff0c;产生栈帧。函数调用结束&#xff0c;释放栈帧。 栈帧存储:1.同部变量。2.形参。(形参与局部变量存储地位等同)3.内存字段…

cookie反爬----普通服务器,阿里系

目录 一.常见COOKIE反爬 普通&#xff1a; 1. 简介 2. 加密原理 二.实战案例 1. 服务器响应cookie信息 1. 逆向目标 2. 逆向分析 2. 阿里系cookie逆向 1. 逆向目标 2. 逆向分析 实战&#xff1a; 无限debugger原理 1. Function("debugger").call() 2. …