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是如何进行组件化的
Vue是如何进行组件化的
|
7天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
1月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
JavaScript
Vue的非父子组件之间传值
全局事件总线 一种组件间通信的方式,适用于任意组件间通信
|
缓存 JavaScript 前端开发
Vue Props、Slot、v-once、非父子组件间的传值....
Vue Props、Slot、v-once、非父子组件间的传值....
87 0
|
JavaScript
Vue中父子组件传值
先在⽗组件中给⼦组件的⾃定义属性绑定⼀个⽗组件的变量
|
JavaScript
vue 组件传值
vue 组件传值
86 0
|
JavaScript
vue父子组件传值
vue父子组件传值
|
JavaScript
vue兄弟组件传值 方便快捷
vue兄弟组件传值 方便快捷
|
JavaScript
Vue父子组件传值(porvide+inject实现组件通信)
如果我们需要把父组件的值传递给子组件,而且子组件可能存在层层嵌套,那么就可以使用provide+inject的方法来实现组件之间的通信
195 0
Vue父子组件传值(porvide+inject实现组件通信)

热门文章

最新文章