1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vue3.x 自定义事件 emits

vue3.x 自定义事件 emits

时间:2022-03-12 14:52:35

相关推荐

vue3.x 自定义事件 emits

相比于 vue 2.x ,在自定义事件时 vue 3.x 提供一个 emits 选项,和现有的 props 选项类似。这个选项可以用来定义一个组件可以向其父组件触发的事件。参考 >> 官方说明

1. 自定义事件概述

在封装组件时,为了让组件的使用者可以 监听到组件内状态的变化,此时需要用到组件的 自定义事件 。

2. 自定义事件 3 个使用步骤

在封装组件时:

声明 自定义事件触发 自定义事件

在使用组件时:

监听 自定义事件

>> 声明自定义事件

开发者为自定义组件封装的 自定义事件,必须事先在 emits 节点中声明:

<!-- 子组件 Count --><script>export default {emits: ['numchange'],}</script>

>> 触发自定义事件

在 emits 节点下声明的自定义事件,可以通过this.$emit('自定义事件的名称')方法进行触发。

<!-- 子组件 Count --><template><h3>Count 子组件 --- {{ num }}</h3><button type="button" class="btn btn-danger" @click="add">+1</button></template><script>export default {props: ['num'],emits: ['numchange'],methods: {add() {this.$emit('numchange', this.num + 1)}}}</script>

>> 监听自定义事件

在使用自定义的组件时,可以通过 v-on 的形式 监听自定义事件 。

<!-- 父组件 App --><template><h3>App 根组件 --- {{ count }}</h3><button type="button" class="btn btn-primary" @click="count += 1">+1</button><count :num="count" @numchange="getNum"></count></template><script>import Count from './Count.vue'export default {data() {return {count: 0}},methods: {getNum(num) {this.count = num}},components: {Count}}</script>

实现效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。