Vue组件入门(六)派发事件的参数传递

简介: Vue组件入门(六)派发事件的参数传递

前言


在我们在子组件中进行事件派发的时候,除了可以自定义事件以外,还可以进行数据传递,这在实际开发中将会非常有用。并且今天也会告诉大家一个之前章节中,没有提到的事件派发形式,用于在<script setup>中使用。


派发事件传参


之前我们介绍过,在模板中派发事件的可以的话,可以使用内置$emit的方法,但是在<script setup>$emit是无法使用的。但是我们就可以通过 defineEmits()方法返回的函数就行事件的派发:


<script setup>
const emit = defineEmits(['fontChange'])
function fontSub() {
  emit('fontChange')
}
</script>
复制代码


通过如上的方法的,我们就可以很方便的在 <script setup> 中 进行事件的派发了。

当然,如果我们想要在事件派发的过程中传递数据的话,也是很方便的。


只需要在defineEmits方法返回的函数的第二个参数,传递相应的数据就可以了。如下:


import { ref } from 'vue'
const fs = ref(1)
function fontSub() {
  emit('fontChange', fs)
}
</script>
复制代码


然后在父组件进行相应事件的监听就可以了:


<Content @fontChange="(n) => fs += n" />
复制代码


还有一点是,defineEmits方法除了可以传递数组外,还可以传递对象的,并能对自定义事件传递的参数进行相应的校验。


<script setup>
const emit = defineEmits({
  submit(payload) {
    // 可以通过接受的值进行相应的逻辑判断
    // 对数据进行校验
  }
})
</script>
复制代码


一眨眼的时间,国庆的假期已接近尾声,似乎感觉还没开始的国庆,已经结束了,明天就要开始搬砖的日子,即使内心里有一百个不情愿,但拿人钱财替人消灾,为了自己有个更好的未来,加油吧。


最后,在这国庆的最后一天里,祝大家做个好梦,迎接更美好的一天。

相关文章
|
1天前
|
JavaScript API
vue学习(13)监视属性
vue学习(13)监视属性
10 2
|
1天前
|
JavaScript 前端开发
vue学习(15)watch和computed
vue学习(15)watch和computed
9 1
|
1天前
|
JavaScript
vue学习(14)深度监视
vue学习(14)深度监视
10 0
|
JavaScript
Vue的非父子组件之间传值
全局事件总线 一种组件间通信的方式,适用于任意组件间通信
|
12月前
|
缓存 JavaScript 前端开发
Vue Props、Slot、v-once、非父子组件间的传值....
Vue Props、Slot、v-once、非父子组件间的传值....
72 0
|
JavaScript
Vue中父子组件传值
先在⽗组件中给⼦组件的⾃定义属性绑定⼀个⽗组件的变量
|
JavaScript
vue 组件传值
vue 组件传值
71 0
|
JavaScript
vue父子组件传值
vue父子组件传值
|
JavaScript
vue兄弟组件传值 方便快捷
vue兄弟组件传值 方便快捷
|
JavaScript
Vue父子组件传值(porvide+inject实现组件通信)
如果我们需要把父组件的值传递给子组件,而且子组件可能存在层层嵌套,那么就可以使用provide+inject的方法来实现组件之间的通信
182 0
Vue父子组件传值(porvide+inject实现组件通信)