vue组件之间的通信都有哪些?

这篇具有很好参考价值的文章主要介绍了vue组件之间的通信都有哪些?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue组件之间的通信都有哪些?

  1. 父子组件通信:
    • Props:父组件通过props将数据传递给子组件,子组件通过props接收父组件传递的数据。
    • Events:子组件通过$emit触发事件,并将数据传递给父组件,父组件通过监听子组件的事件来接收数据。
  2. 兄弟组件通信:
    • 共同的父组件作为中介:两个兄弟组件通过共同的父组件作为中介进行通信,父组件接收一个子组件的数据,并通过props传递给另一个子组件。
    • 事件总线:可以创建一个Vue实例作为事件总线,兄弟组件都可以通过该事件总线来进行事件的发布和订阅,实现通信。
  3. 跨层级组件通信:
    • provide / inject:祖先组件通过provide提供数据,后代组件通过inject来注入数据,实现跨层级组件之间的通信。
    • Vuex:使用Vuex作为状态管理库,在其中定义共享的状态,所有组件都可以访问和修改这些状态。
  4. 使用全局事件总线或事件总线插件:可以创建一个全局事件总线实例,或者使用第三方插件(如Vue Bus、Event Bus)来进行组件之间的通信,任何组件都可以通过事件的发布和订阅来进行通信。
  5. 使用 r e f s 进行父子组件的直接访问:父组件可以通过 r e f 属性给子组件命名,在父组件中可以通过 refs进行父子组件的直接访问:父组件可以通过ref属性给子组件命名,在父组件中可以通过 refs进行父子组件的直接访问:父组件可以通过ref属性给子组件命名,在父组件中可以通过refs来直接访问子组件的属性和方法。
  6. 使用自定义事件:组件可以使用自定义事件系统,通过 o n 、 on、 onemit、$off等方法来进行通信。
1.Props

如果props传入的数据和子组件的data里面定义的数据一样,那么会发生冲突,会以props的为主

vue组件之间的通信都有哪些?

如果props传递的是一个函数,那么子组件使用props接受函数,然后调用并传入数据,父组件也可以接收到子组件传递给父组件的数据。实现子组件给父组件传递数据

2. $emit 触发自定义事件

父组件

<Children @add="cartAdd($event)" />  

子组件

this.$emit('add', good)  
3.ref
  • 父组件在使用子组件的时候设置ref
  • 父组件通过设置子组件ref来获取数据

父组件

<Children ref="foo" />  
  
this.$refs.foo  // 获取子组件实例,通过子组件实例我们就能拿到对应的数据 
接下来是兄弟组件传递数据
4.EventBus

创建一个中央事件总线EventBus

兄弟组件通过$emit触发自定义事件,$emit第二个参数为传递的数值

另一个兄弟组件通过$on监听自定义事件

5.provide/inject
// A.vue
export default {
  provide: {
    name: '浪里行舟'
  }
}
// B.vue
export default {
  inject: ['name'],
  mounted () {
    console.log(this.name);  // 浪里行舟
  }
}

inject: [‘name’],
mounted () {
console.log(this.name); // 浪里行舟
}
}文章来源地址https://www.toymoban.com/news/detail-456980.html


**provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的**----vue官方文档 所以,上面 A.vue 的 name 如果改变了,B.vue 的 this.name 是不会改变的,仍然是 浪里行舟。

到了这里,关于vue组件之间的通信都有哪些?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 组件之间通信的方式

    1.父向子版  父组件设置自定义属性 子组件props接收 2.子向父版 父组件设置自定义方法并绑定接收的方法 子组件触发方法  3.全局事件总线   4.Vuex 用这个的话首先要装包或者创建工程的时候选择这个选项手脚架会给你装好 5.路由 抽象一点说路由也算通信方式的一种吧 这种

    2024年01月18日
    浏览(39)
  • Vue兄弟组件之间的通信:

    思路: 通过中间人父组件进行通信; 子组件先传给父组件,然后父组件再传给另一个子组件;  结果:   注意: console.log(res.json())的结果是promise对象; 图示: 要通过res接收res.json()结果才是data数据;  结果:   子组件传给父组件的data,是一个临时变量,如果父组件想用,

    2024年02月11日
    浏览(47)
  • 浅谈Vue组件之间的通信

    父子组件通信 : 父组件向子组件传递数据 :可以通过 props 属性向子组件传递数据。 子组件向父组件传递数据 :可以通过 $emit 方法触发一个自定义事件,并在父组件中监听这个事件。 在父组件中: 兄弟组件通信 : 可以使用共同的父组件作为中介,父组件通过 props 向子组

    2024年02月22日
    浏览(41)
  • VUE 父子组件、兄弟组件 之间通信 最强详解

    目录 1. 父组件 调用 子组件 内参数/方法 1.1 通过 ref 调用/获取 子组件内参数/方法 2. 子组件 调用 父组件 内参数/方法 2.1 通过 emit 调用 父组件方法 2.2 通过 props 调用 父组件方法/参数 2.3 通过 this.$parent 调用 父组件方法/参数 3. 兄弟组件 通信 3.1 通过 bus 进行 兄弟组件 通信

    2024年02月05日
    浏览(61)
  • Vue3 组件之间的通信

    经过前面几章的阅读,相信开发者已经可以搭建一个基础的 Vue 3 项目了! 但实际业务开发过程中,还会遇到一些组件之间的通信问题,父子组件通信、兄弟组件通信、爷孙组件通信,还有一些全局通信的场景。 这一章就按使用场景来划分对应的章节吧,在什么场景下遇到问

    2023年04月08日
    浏览(44)
  • 07-Vue技术栈之(组件之间的通信方式)

    前言: 组件之间通信的方式有很多种,比如 props 、 自定义事件 、 全局事件总线 、 消息订阅与发布 、 父链与子组件索引 、 插槽 、 Vuex 等都可以实现组件之间的通信。在这里我将介绍以下三种通信方式。 它是一种组件间通信的方式,适用于: 子组件 === 父组件 使用场景

    2024年02月07日
    浏览(94)
  • Web前端 ---- 【Vue】(组件)父子组件之间的通信一文带你了解

    目录 前言 父组件传子组件 ---- props 给要传递数据的子组件绑定要传过去的属性及属性值 在子组件中使用props配置项接收 props配置项 子组件传父组件 ---- 组件的自定义事件 子组件向父组件传递数据 通过代码来绑定自定义事件 本文将介绍在Vue中父子组件如何进行通信 这里先介

    2024年02月05日
    浏览(117)
  • Vue组件的通信方式有哪些?

    开始之前,我们把组件间通信这个词进行拆分 组件 通信 都知道组件是vue最强大的功能之一,vue中每一个 .vue 文件我们都可以视之为一个组件。通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的。广义上,任何信息的交通都是通信组件间通信,即

    2023年04月10日
    浏览(39)
  • 【Vue3】3-3 : 组件之间是如何进行互相通信的

    本书目录:点击进入 一、组件之间为什么要做通信 二、组件之间通信方式 2.1、父传子:由传递属性实现 stage 1:申明 (即定义) stage 2:注册 stage 3:使用 【示例】:父组件将 title 和 count 传递给子组件 (普通数据 和 响应式数据的传递) >  代码  >  效果 2.2、子传父

    2024年01月17日
    浏览(37)
  • java中操作字符串都有哪些类?它们之间有什么区别?

    Java中常用的字符串操作类有: String类是Java中最常用的字符串类,它是不可变的字符串,即创建后不能被修改。 StringBuilder类也是一个字符串操作类,但它是可变的,即可以修改已经创建的字符串对象。StringBuilder比String更适合在程序中进行字符串拼接操作。 StringBuffer类与St

    2023年04月21日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包