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

推荐答案

你可以使用Vue的getCurrentInstance.你可以在the docs分钟内查看.

用法就像

function useFunctionThatEmitsSomething(){
  const instance = getCurrentInstance();

  // do something
  instance.emit('event');
}

尽管这个插件库可以解决Edit个 case 的问题,但这个插件库还是可以解决Edit个 case 的问题.对于常见的用例,比如构建一个简单的SPA,使用它是TOTALLY DISCOURAGED,应该不惜一切代价避免,因为它可能会导致不可读和不可维护的代码.如果你觉得有必要在这样的情况下使用它,你可能做错了什么.

Vue.js相关问答推荐

为什么在Vue.js中修改非react 性似乎是react 性的?

Vue 3 在一个值更改问题后再次重新渲染每一行

Vuetify 3 - NavBar 组件占据整个视口高度

vue3 + pinia:如何从?store 中获取一个值

何时将代码拆分为 Nuxt 中的组件?

vue js导航到带有问号的url

Vue:将点击事件绑定到动态插入的内容

从数据库中删除后,Vue.js $remove 不删除元素

为什么当我 Select 第二个输入框时音译transliteration不起作用?

在 v-for 的情况下如何从 v-model 输入更新 Vuex 存储

错误:您可能需要额外的加载器来处理这些加载器的结果.

如何将参数传递给使用 ...mapActions(...) 映射的函数?

Laravel 中的 VueJS 组件实现中的鼠标悬停

Vuejs:我应该在 vue-router SPA 中的哪里放置一些常用的 js 工具?

VueJS 2 在多个组件上debounce

vuex - 即使不推荐,是否可以直接更改状态?

vuex 是 state.array.push react式的吗?

在 Vuejs 中放置 firebase.auth().onAuthStateChanged() 的位置

在 vue.js 应用程序中将静态内容(例如国家代码)存储在哪里?

组件(components)