Vue组件间通信(六种方式)

第一种:props

适用场景:父子组件通信

注意事项:

如果父组件给子组件传递数据(函数):本质上上是子组件给父组件传递数据

如果父组件给子组件传递的数据(非函数),本质上是父组件给子组件传递数据

书写方式: 3种

['todos]、{type:Array}、{type:Array, default:[]}

第二种:自定义事件

适用场景:子组件给父组件传递数据

$on、$emit  $off

子组件传递值:

this.$emit('personalEvent', this.name);

父组件接受值:

mounted() {

this.$refs.student.$on('personalEvent', (name) => {

       console.log(this);

       console.log(name);

       this.studentName = name;

    });

}

第三种:全局事件总线$bus

适用场景:万能

Vue.prototype.$bus = this;

new Vue({

    el:'#app',

    render: h => h(App),

    beforeCreate() {

        Vue.prototype.$bus = this; //安装全局事件总线

    }

});

子组件:

this.$bus.$emit('hello', this.name);

父组件:

mounted() {

    console.log('School', this);

    this.$bus.$on('hello', (data) => {

      console.log(`我是School组件,我收到了数据,${data}`);

    })

  },

  beforeDestroy() {

    this.$bus.$off('hello'); //销毁解绑

  }

第四种:消息订阅和发布 pubsub-js,在React框架中使用的比较多(发布、订阅)

适用场景:万能

发布消息:

pubsub.publish('hello', this.name);

订阅消息:

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); //取消订阅

  }

第五种:VueX多组件数据共享

适用场景:万能

5.1main.js文件配置:

new Vue({

    el: '#app',

    store,

    render: h => h(App),

});

5.2创建并暴露store

export default new Vuex.Store({

    actions,

    mutations,

    state,

    getters

});

5.3 引入与使用

import { mapState, mapGetters, mapMutations, mapActions} from 'vuex';

computed:{

... mapState(['sum', 'school', 'subject', 'personList']),

...mapGetters(['bigSum']),

}

methods:{

  ...mapActions(['incrementWait', 'incrementIfOdd']), //数组写法,同上

  ...mapMutations({

      increment: 'INCREMENT',

      decrement: 'DECREMENT',

    }), //对象写法

...mapMutations(['increment', 'decrement']),//数组写法

     incrementOdd(){

       this.$store.dispatch('incrementIfOdd', this.n);

     },

}

第六种:插槽

适用场景:父子组件通信--(一般传递的是结构)

默认插槽

具名插槽:

  <slot name="center">我是默认值</slot>

  <slot name="footer">我是默认值</slot>

<Category title="美食">

       <img slot="center" src="" alt="delicious food"/>

       <a href="https://www.baidu.com" slot="footer">百度</a>

     </Category>

作用域插槽:

   <slot :games="games">

      我是默认值

    </slot>

   <Category title="游戏">

       <template slot-scope="{games}">

         <h4 v-for="(g , index) in games" :key="index">{{ g }}</h4>

       </template>

     </Category>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重新配置torch1.8 cuda11.1 torchtext0.9.0虚拟Pytorch开发环境

这里写目录标题 起因发现选择安装cuda 11.1核对下自己的显卡是否支持下载该版本的CUDACUDA下载地址CUDA安装过程 在anaconda中创建一个虚拟环境1.以下是环境的配置过程2.查看虚拟环境列表3.激活虚拟环境 安装torch和torchtext包的过程1.输入下面这句代码&#xff0c;就可以直接…

韩语中的一次多用-柯桥基础韩语学习

1.动词&#xff0c;写 일기를 쓰다 写日记 2.动词&#xff0c;戴&#xff08;帽子&#xff0c;眼镜&#xff0c;口罩&#xff09; 안경을 쓰다 戴眼镜 3.动词&#xff0c;使用&#xff08;材料&#xff0c;道具&#xff0c;手段&#xff09; 세제를 쓰다 使用洗剂 4.动词&am…

大创项目推荐 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

Ethernet/IP 之IO 连接简要记录

IO连接 EIP的IO连接提供了在一个生产者和多个消费者之间的特定的通信路径&#xff0c;以达到IO数据在IO连接下传输。 生产者对象产生IO数据通过生产者IO连接管理者对象将连接ID和数据组帧发送给消费者IO连接管理者对象然后将IO数据发送给消费者对象。 显示消息连接 显式消息传…

《信息安全工程师教材》-蒋建春、信息安全完全参考手册-Mark Rhodes Ousley、CISSP官方学习指南第九版、ISO27002学习

文章目录 介绍关系学习顺序重复内容学习方法建议学习时间可能重合的部分更详细的学习计划 介绍 《信息安全工程师教材》- 蒋建春&#xff1a;这本教材可能是针对中国地区信息安全工程师的认证考试而编写的&#xff0c;它可能会涵盖信息安全的基本概念、技术和政策&#xff0c;特…

2866. 美丽塔 II --力扣 --JAVA

题目 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&#xff0c;我们称这些塔是 美丽 的&#xff1a; 1 < heights[i] < maxHeights[i]heights 是一个…

【点选验证码识别】某招标网站反爬虫分析与验证码自动识别

文章目录 1. 写在前面2. 风控描述3. 验证码裁剪4. 验证码识别 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣…

winlator模拟器汉化版是款功能非常强大的安卓游戏模拟器。

winlator模拟器 可以支持玩家在手机上运行各种经典游戏&#xff0c;拥有强大的兼容性&#xff0c;不同芯片、系统和手机都可以完美的运行。进入软件后&#xff0c;可以对显卡配置等进行改变&#xff0c;有利于帮助运行较新的游戏&#xff0c;同时也能够跳过配置检查。相比于其…

ssm基于javaweb的疫情管理系统的设计与实现+vue论文

摘 要 针对于疫情信息管理方面的不规范&#xff0c;容错率低&#xff0c;管理人员处理数据费工费时&#xff0c;采用新开发的疫情管理系统可以从根源上规范整个数据处理流程的正规性和合法性。 疫情管理系统实现的功能包括健康打卡管理&#xff0c;返校申请管理&#xff0c;留…

【Vulnhub 靶场】【DarkHole: 1】【简单】【20210730】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/darkhole-1,724/ 靶场下载&#xff1a;https://download.vulnhub.com/darkhole/DarkHole.zip 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年07月18日 文件大小&#xff1a;2.9 GB 靶场作者&#xff1a…

新手一键重装系统Win11详细教程

Win11系统如果出现了重大问题&#xff0c;无法通过简单的操作解决&#xff0c;那么我们就可以直接选择重新安装正常的操作系统。作为新手用户&#xff0c;对于装机过程不是很了解&#xff0c;那么可以参考下面小编分享的一键重新安装系统Win11的详细教程步骤&#xff0c;轻轻松…

js作用域

声明修饰符 let具有块级作用域 let声明的变量具有块级作用域,for循环流程控制部分(小括号内),循环体部分(大括号内)、以及函数体、大括号包裹的代码块、中使用let声明的变量仅在该块状作用域内可见.如果在全局环境中使用let声明则是全局变量. 在chrome控制台使用let声明变量…

速盾网络:网络安全守护者

速盾网络作为一家专业的网络安全服务提供商&#xff0c;致力于为企业和个人提供全面、高效、可靠的网络安全解决方案。以下是速盾网络的主要业务介绍&#xff1a; 一、CDN加速 速盾网络拥有全球化的CDN加速网络&#xff0c;通过分布在全球各地的节点&#xff0c;为客户提供快速…

第80讲:GTID全局事务标识符的基本概念以及在Binlog中应用GTID

文章目录 1.GTID的基本概念1.1.为什么要引入GTID1.2.什么是GTID 2.开启GTID全局事务标识符的功能3.模拟产生Binlog日志观察开启GTID功能的区别3.1.模拟产生Binlog日志3.2.观察Binlog日志中的事件信息3.2.观察节点状态有什么变化3.3.观察Binlog日志会有什么变化 4.使用GTID来截取…

HuggingFace下载模型

目录 方式一&#xff1a;网页下载 方式二&#xff1a;Git下载 方式一&#xff1a;网页下载 方式二&#xff1a;Git下载 有些模型的使用方法页面会写git clone的地址&#xff0c;有些没写&#xff0c;直接复制网页地址即可 网页地址&#xff1a; ​https://huggingface.co/…

【matlab】绘制横状双组渐变柱状图

【matlab】绘制横状双组渐变柱状图

xrandr

xrandr xrandr 是用于与 X RandR 扩展进行交互的命令行工具。它允许对 X server 进行实时配置&#xff08;即无需重新启动即可使配置生效&#xff09;&#xff0c;xrandr 提供了显示模式&#xff08;如分辨率、刷新率等&#xff09;的自动检测&#xff0c;以及动态配置输出&am…

阿里云登录镜像仓库报错: Error response from daemon: Get https://

阿里云登录镜像仓库报错: Error response from daemon: Get https:// 1. 故障现象 开发反应自用笔记本连接镜像仓库是正常的,但通过服务器连接镜像仓库一直失败. 报错信息如下: Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthoriz…

关于“Python”的核心知识点整理大全33

目录 12.8.3 将子弹存储到编组中 alien_invasion.py 注意 12.8.4 开火 game_functions.py 12.8.5 删除已消失的子弹 alien_invasion.py 12.8.6 限制子弹数量 settings.py game_functions.py 12.8.7 创建函数 update_bullets() game_functions.py alien_invasion.py…

ssm445基于SSM的学生宿舍管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生宿舍管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…