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

这篇具有很好参考价值的文章主要介绍了什么???你连vue中父组件怎么监听子组件的事件都不知道?快来看看vue2和vue3中父组件监听子组件事件的区别吧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue2和vue3中父组件监听子组件事件的区别

一、vue2中父组件监听子组件事件

在Vue 2中,可以使用$emit方法在子组件上触发自定义事件,并使用v-on或@指令在父组件中监听该事件,也就是通过父组件给子组件绑定一个自定义事件实现子给父传递数据。例如:

<!-- 子组件中 -->
<button @click="$emit('child-event', childData)">点击我传递子数据</button>

<!-- 父组件中 -->
<!-- 第一种写法,使用@或v-on -->
<Child @child-event="getChildData"/>
<!-- 或 -->
<Child v-on:child-event="getChildData"/>

<script>
  import Child from './Child.vue';
  export default {
    components: {
      Child,
    },
    methods: {
      getChildData(childData) {
        // 处理 child 事件
      }
    }
  }
</script>
<!-- 第二种写法,使用ref -->
<Child ref="child"/>
<script>
  import Child from './Child.vue';
  export default {
    components: {
      Child,
    },
    methods: {
      getChildData(childData) {
        // 处理 child-event 事件
      }
    },
    mounted(){
      this.$refs.child.$on('child-event',this.getChildData)
    }
  }
</script>

在这个例子中,当子组件中的按钮被单击时,将触发child-event事件,并且事件数据childData将被传递给父组件中名为getChildData的方法,可以在方法中处理事件的后续操作。

二、vue3中父组件监听子组件事件

在Vue 3中,父组件不能使用 o n 来监听子组件事件。 on来监听子组件事件。 on来监听子组件事件。on是Vue 2中用于在某个实例上监听自定义事件的方法,而在Vue 3中,这个方法已被移除。所以,在Vue 3中,您可以使用$emit方法在子组件上触发自定义事件,并使用@或v-on指令在父组件中监听该事件,也就是通过父组件给子组件绑定一个自定义事件实现子给父传递数据。例如:

<!-- 子组件中 -->
<button @click="$emit('child-event', childData)">点击我传递子数据</button>

<!-- 父组件中 -->
<!-- 使用@或v-on -->
<Child @child-event="getChildData"/>
<!-- 或 -->
<Child v-on:child-event="getChildData"/>

<script>
  import Child from './Child.vue';
  export default {
    components: {
      Child,
    },
    methods: {
      getChildData(childData) {
        // 处理 child-event 事件
      }
    }
  }
</script>

在这个例子中,当子组件中的按钮被单击时,将触发child-event事件,并且事件数据childData将被传递给父组件中名为getChildData的方法,可以在方法中处理事件的后续操作。

在Vue 3中,可以使用与Vue 2类似的方式来触发和监听自定义事件。但是,在Vue 3中还引入了一个新特性,即将事件处理函数添加到emits选项中。这样做可以在开发阶段提供类型检查和错误提示。
例如:

<!-- 子组件中 -->
<button @click="$emit('child-event', childData)">点击我传递子数据</button>

<!-- 父组件中 -->
<!-- 使用@或v-on -->
<Child @child-event="getChildData"/>
<!-- 或 -->
<Child v-on:child-event="getChildData"/>

<script>
  import Child from './Child.vue';
  export default {
    components: {
      Child,
    },
    methods: {
      getChildData(childData) {
        // 处理 child-event 事件
      }
    },
    emits: {
      // 将 "child-event" 添加到 emits 选项中
      'child-event': (childData) => {
        return true; // 表示此事件被允许
      }
    }
  }
</script>

在这个例子中,我们的父组件定义了一个名为getChildData的方法来处理子组件中触发的child-event事件。还使用emits选项将该事件添加到组件的选项列表中。

在emits选项中,我们还可以设置事件处理函数的签名,并以对象形式返回一个布尔值。返回true表示事件被允许,否则会在开发阶段引发警告。

总体来说,Vue 3中的新特性使其更易于管理和维护大型代码库,同时还提供了类型检查和错误提示,可以帮助我们更早地捕获和纠正代码错误。文章来源地址https://www.toymoban.com/news/detail-662185.html

到了这里,关于什么???你连vue中父组件怎么监听子组件的事件都不知道?快来看看vue2和vue3中父组件监听子组件事件的区别吧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue中父组件直接调用子组件方法(通过ref)

    目录 1、vue2 中,父组件调用子组件的方法 2、vue3 中,父组件调用子组件的方法 在Vue 2中,父组件可以通过使用 ref 属性来引用子组件的实例,然后通过该实例调用子组件的方法。 首先,在父组件的模板中,给子组件添加一个 ref 属性: 然后,在父组件的JavaScript代码中,可以

    2024年04月27日
    浏览(40)
  • vue2 iview 中父组件传递对象给子组件

    父组件 这样就可以在子组件中通过 huilistSetting 访问父组件传递过来的 huilistSetting 对象了。 子组件 这里我们使用的是相对路径引入  zl_info.vue  子组件。然后,在  components  选项中注册该子组件,这样父组件就可以在模板中使用子组件了。 当子组件需要的默认值是一个对象

    2024年02月03日
    浏览(46)
  • React、Vue3中父组件如何调用子组件内部的方法

    当父组件需要调用子组件的方法时,可以通过useImperativeHandle钩子函数实现。以下例子是ts实现方式。 在子组件中使用 useImperativeHandle 钩子,将指定的方法暴露给父组件,以便父组件可以通过子组件的引用来调用该方法。 在子组件中使用了 useImperativeHandle 钩子将 someMethod 方法

    2024年02月16日
    浏览(36)
  • vue中父组件异步数据通过props方式传递给子组件,子组件接收不到的问题

    问题描述 组件化开发中经常用到父子组件的通信,父传子子传父等数据的操作,如果父组件的数据是发请求从后端获取的异步数据,那么父组件将这个数据传递给子组件的时候,因为是异步数据,就会出现父组件传递过去了,但是子组件mounted钩子初始情况下是接收不到的问

    2023年04月08日
    浏览(41)
  • 什么是Vue中的生命周期钩子函数?有哪些主要的生命周期钩子函数?如何监听DOM事件?

    Vue中的生命周期钩子函数是指在Vue实例创建、数据绑定、组件挂载等生命周期阶段中,可以执行一些特定操作的函数。这些函数在Vue实例的不同生命周期阶段被调用,可以帮助开发者更好地控制Vue实例的行为。 Vue的生命周期钩子函数包括: beforeCreate :在Vue实例创建之前调用

    2024年02月12日
    浏览(57)
  • vue3基础(五)watch(浅监听及深度监听),鼠标及键盘修饰符,v-model,对象写法,class使用数组,字符串模版,自定义组件标签上添加事件无效,使用data时用别名替代,solt输出内容

    监听中的 方法名 与 需要监听的 变量名 一致 如果没有(例如aa), 不会报错 ,但监听不到 所以上图会 输出1 ,而不会输出2 newValue改变后的值,oldValue改变前的值 watch 可以监听 computed 计算属性中的方法,变量等等 点击go按钮,调用change方法修改kk的值,computed中有kk,所以

    2024年02月15日
    浏览(60)
  • vue鼠标悬停事件监听

    开发框架为 vue2.x 需求是这样的:页面在鼠标悬停(不动)n秒之后,页面进行相应的事件。 比如在我的需求下,是鼠标悬停15秒之后,页面上三个数据弹窗轮询展示。 我的思路中 涉及到了三个变量 polling: 是 轮询的时候的一个计时器 timeCount: 是 判断鼠标是否移动的一个控

    2023年04月12日
    浏览(46)
  • vue监听滚动条事件

    2024年02月11日
    浏览(44)
  • 电脑黑屏什么都不显示怎么办 电脑开机黑屏不显示任何东西的4种解决办法

    相信有很多网友都有经历电脑开机黑屏不显示任何东西,找了很多方法都没处理好,其实关于这个的问题,首先还是要了解清楚开机黑屏的原因,才能够对症下药,下面大家可以跟小编一起来看看怎么解决吧 电脑开机黑屏不显示任何东西?很多小伙伴们在使用电脑时,总是会

    2024年02月22日
    浏览(44)
  • Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用

    EventTrigger是Unity UGUI中的一个组件,用于监听和响应UI元素的各种事件,例如点击、拖拽、进入、离开等。通过EventTrigger组件,我们可以方便地为UI元素添加各种交互行为。 EventTrigger组件通过监听UI元素上的事件,并在事件触发时执行相应的回调函数。每个UI元素可以添加多个

    2024年02月15日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包