javascript - 如何使用 <script setup> 语法在 Vue3 中从子级向父级发出事件?

标签 javascript vuejs3

我有以下组件:

<SomeModal :is-modal-active="isAddingThing" @close="isAddingThing = false" />
该组件内部如下所示:
<script setup>
import { defineProps } from 'vue'

const props = defineProps({
    isModalActive: Boolean,
})

const handleClose = () => {
    emit('close') // doesn't work
}
</script>

<template>
<V-Modal @close="handleClose">
    ...
</V-Modal>
</template>
我如何向 parent 发出?

最佳答案

使用 Vue 版本 3.2,如果您想从内部发出事件 <script setup> ,那么你所要做的就是用 defineEmits() 定义你的发射。 <script setup> 内自动可用的方法(您不必导入它),然后您可以通过调用 emit('myEventName', myParams) 来发出事件.这是一些示例代码...

<script setup>
const emit = defineEmits(['eventA', 'eventB'])
function btnClick(params) {
    emit('eventA')
    emit('eventB', params)
}
</script>

关于javascript - 如何使用 &lt;script setup> 语法在 Vue3 中从子级向父级发出事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68260555/

相关文章:

javascript - jquery parent sibling selector 后退两步

javascript - 组件模板应该只包含一个根元素

javascript - jQuery总是返回 “jQuery.fn.init [global]”。我无法选择元素

javascript - NodeJs 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - Vue3-使用 Vitest toHaveBeenCalled() 方法

javascript - jQuery 数据表编辑器未初始化

javascript - 组件渲染后如何聚焦到特定的输入文本?

javascript - 将 react 状态从 Vuex 传递到可组合项

typescript - Vue+Vite 的多个默认导出错误

vue.js - 我应该还是不应该在vue3中安装body元素?