vue2中祖父组件和孙组件事件通信

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

1、使用 p a r e n t 属性访问祖父组件,并通过 parent属性访问祖父组件,并通过 parent属性访问祖父组件,并通过emit方法触发祖父组件的事件

this.$parent.$emit('event-name', data);

2、使用provide和inject方法,在祖父组件中提供一个方法或属性,孙组件中通过inject方法获取这个方法或属性,并在孙组件中调用该方法或属性来触发祖父组件

// 祖父组件中
provide() {
  return {
    trigger: this.trigger
  }
},
methods: {
  trigger(data) {
    // 处理数据
  }
}

// 孙组件中
inject: ['trigger'],
methods: {
  handleClick() {
    this.trigger(data);
  }
}

3、使用事件总线,祖父组件中创建一个Vue实例作为事件总线,然后在祖父组件、父组件和孙组件中分别使用 e m i t 和 emit和 emiton方法来进行事件的传递和监听。文章来源地址https://www.toymoban.com/news/detail-649675.html

// 祖父组件中
const eventBus = new Vue();

// 父组件中
eventBus.$on('event-name', data => {
  // 处理数据
})
// 孙组件中
eventBus.$emit('event-name', data);

到了这里,关于vue2中祖父组件和孙组件事件通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 什么???你连vue中父组件怎么监听子组件的事件都不知道?快来看看vue2和vue3中父组件监听子组件事件的区别吧

    vue2和vue3中父组件监听子组件事件的区别 在Vue 2中,可以使用$emit方法在子组件上触发自定义事件,并使用v-on或@指令在父组件中监听该事件,也就是通过父组件给子组件绑定一个自定义事件实现子给父传递数据。例如: 在这个例子中,当子组件中的按钮被单击时,将触发ch

    2024年02月12日
    浏览(42)
  • Vue子组件调用父组件事件的三种方法

    1. 在子组件中通过this.$parent.event来调用父组件的方法,data参数可选 2. 父组件使用v-bind绑定一个变量(v-bind:变量名=\\\"值\\\"),子组件用props接收(与created同级) 3.使用 $refs 传值

    2024年02月15日
    浏览(49)
  • 【干货】Vue2.x 组件通信方式详解,这篇讲全了

    vue是数据驱动视图更新的框架, 我们平时开发,都会把页面不同模块拆分成一个一个vue组件, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 首先我们需要知道在vue中组件之间存在什么样的关系, 才更容易理解他们的通信方式。 一般我们分

    2023年04月27日
    浏览(46)
  • vue3探索——组件通信之事件总线

    Vue2.x使用EventBus进行组件通信,而Vue3.x推荐使用 mitt.js 。 比起Vue实例上的 EventBus , mitt.js 好在哪里呢?首先它足够小,仅有200bytes,其次支持全部事件的监听和批量移除,它还不依赖Vue实例,所以可以跨框架使用,React或者Vue,甚至jQuery项目都能使用同一套库。 使用yarn安装

    2024年02月12日
    浏览(46)
  • 在Vue中,向上通信(从孙子到爷爷)的常用方法有以下几种:

    在Vue中,向上通信(从孙子到爷爷)的常用方法有以下几种: 使用 $parent 访问父组件,再使用 $parent 访问爷爷组件,调用其方法。 使用 $root 访问根组件,再使用深度优先搜索遍历其子孙组件,找到爷爷组件,调用其方法。 使用Vue实例的 provide() 和 inject() 方法,在爷爷组件中

    2024年02月15日
    浏览(33)
  • Vue2-浏览器本地存储(WebStorage)及完善TodoList案例、组件自定义事件及完善TodoList案例

    🥔:山不向我走来,我便向它走去 更多Vue知识请点击——Vue.js 存储内容大小一般支持5MB左右(不同浏览器可能还不一样) 浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制。 1.相关API (1) xxxxxStorage.setItem(\\\'key\\\', \\\'value\\\'); 该方法接受一个键和值作为参

    2024年02月12日
    浏览(55)
  • 前端vue中父子组件之间的传值(修改值)和事件的相互调用

    目录 父组件向子组件传值 子组件修改父组件中的值: 方法1 方法2 子组件调用父组件里的函数 方法1 方法2 父组件调用子组件的函数 : 子组件中的 data 属性是用来存储子组件自身的数据,而不是用来接收父组件传递的数据的。父组件向子组件传递数据的常用方式是通过 pro

    2024年02月07日
    浏览(58)
  • vue3+ts中使用mitt跨组件通信报错:没有与此调用匹配的重载。handler: WildcardHandler<Record<EventType, unknown>>

    报错内容如下图: mitt代码的使用方式: mittBus.js文件: 经过多方资料查阅,总结出问题出现的原因是ts中的类型推断异常 。mittBus的参数无法推断出来。 如果使用的是最新的 mitt@3.0.0 版本,在ts中使用mitt时需要添加类型注解,去官网查阅使用方式如下: Usage : 1、Set “stri

    2023年04月22日
    浏览(95)
  • vue2:鼠标触发各类事件

    移动端 pc端 template javascript 如何获取鼠标的x,y坐标 这就要利用事件回调中的 e.targetTouches 属性了。 如何获取鼠标每次移动的差值 当鼠标移动时,如何计算得出,当前鼠标位置与上一次鼠标位置的差值呢? 例如,当前鼠标位置为(1,2),上一次鼠标位置为(0,0),差值就是: x:1,

    2024年04月13日
    浏览(40)
  • Vue2:解绑自定义事件

    上一节,我们学习了,自定义事件绑定到组件上。 现在,我们学习下,给组件解绑自定义事件的几种方法。 首先,我们试想一下,这个功能的适用场景? 一般同学都会想,解绑?那就注释掉代码就是了呗。 这个办法也可以,但是,不好,因为每次都要修改代码。 现在,我

    2024年01月18日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包