Vue.js 如何在vue3中的'setup'方法中发出'emit'事件?

Vue.js 如何在vue3中的'setup'方法中发出'emit'事件?,vue.js,vuejs3,Vue.js,Vuejs3,我知道我可以从setup方法调用emit方法,但是有没有办法从任何其他函数发出事件,而不从setup方法传递emit方法(不是methods选项中的函数,而是useXXX函数)?您可以使用Vue中的getCurrentInstance。你可以在网上查到 用法就像 函数使用发出方法()的函数{ const instance=getCurrentInstance(); //做点什么 emit('event'); } 以下是在vue3中以编程方式(使用javascript)发出事件的正确方法: 导出默

我知道我可以从
setup
方法调用
emit
方法,但是有没有办法从任何其他函数发出事件,而不从setup方法传递
emit
方法(不是
methods
选项中的函数,而是
useXXX
函数)?

您可以使用Vue中的
getCurrentInstance
。你可以在网上查到

用法就像

函数使用发出方法()的函数{
const instance=getCurrentInstance();
//做点什么
emit('event');
}

以下是在vue3中以编程方式(使用javascript)发出事件的正确方法:

导出默认定义组件({
//见:https://v3.vuejs.org/guide/migration/emits-option.html#overview

发出:“specialClick”,//
设置
函数接受两个参数,第一个参数是
道具
。 第二个是
context
,它公开了三个组件属性,
attrs
slots
emit

您可以从上下文访问emit,如:

导出默认值{
设置(道具、上下文){
emit('event');
},
};

导出默认值{
设置(道具,{emit}){
发出(“事件”);
},
};

为什么需要声明排放:“specialClick”?