当前位置: 首页 > 知识库问答 >
问题:

javascript - vue的EventBus如何全局引入?

万俟超
2024-02-06

我发现在mian.js里引入后在其他组件可以用,但是在其他js组件里使用EventBus方法就不行,求解决方法,另一种方法是新建个event-bus.js文件,在需要的页面去引入,也没用,
然后我在js文件里也用了
import Vue from 'vue'
const EventBus = new Vue()
现在的问题是从js文件里发送的消息,在vue文件里接收不到(vue文件里用的是mian.js里引入的),也没报错,不知道怎么回事

还是说EventBus只能组件内通信,不能组件与js文件之间通信?如果要做到组件与js文件之间通信,要怎么做呢?不想用vuex

在这里先谢谢各位大哥大姐的解答,感激不尽!

共有1个答案

左仰岳
2024-02-06

直接export default new Vue()
或是挂原型Vue.prototype.$myBus = new Vue()
或者全局window.myBus = new Vue()

 类似资料:
  • 目前将vue项目打包嵌入到android打包壳中套壳使用;然后需要监控vue代码异常,使用以下方法捕获异常 Vue.config.errorHandler监控vue异常 window.onerror和window.addeventlistener("error")监控js代码异常 window.onunhandledrejection和window.addeventlistener("unhand

  • 问题内容: 我们都知道全局变量只是最佳实践。但是在有些情况下,没有它们很难编写代码。您使用什么技术来避免使用全局变量? 例如,在以下情况下,您将如何不使用全局变量? JavaScript代码: 相关标记: 此代码来自具有多个的网络表单。它一次上传一个文件,以防止大量请求。它通过POST到iframe来完成此操作,等待响应触发iframeonload,然后触发下一个提交。 您不必专门回答此示例,我只

  • 现在遇到一个项目,uniapp开发的微信小程序,之前的所有页面都没有使用scope将css样式私有化,导致css属性全局污染了,现在要开发后续的功能,如何在后续的开发中避免之前css的样式污染? 之前开发的内容不能使用scope将css私有化,因为一旦私有化可能会对某些页面造成影响,现在的情况就是之前的内容不能动,在此基础上开发。 目前想到的办法是在后续开发的功能中,所有的css类名名全部使用当前

  • 问题内容: 我想在脚本中签入某个其他模块是否已加载。 但是,如果不存在,那就是。 如果我知道那是什么,我可以使用它。 但是,因为我希望我的模块与浏览器和工作,等等,我不能假设。 据我了解,这在ES 5 with中不起作用; 这也会因抛出异常而失败 所以好像我已经离开了 这些情况都不会通过JSLint。 我有什么想念的吗? 问题答案: 好吧,您可以使用运算符,并且如果标识符在范围链的任何位置都不存在

  • 问题内容: 如何在JavaScript中声明全局变量? 问题答案: 如果必须在生产代码中生成全局变量(应避免使用),请 始终 明确 声明它们: 虽然可以通过省略来定义全局变量(假设没有同名的局部变量),但这样做会生成 隐式 全局,这是一件不好的事情,并且在 严格模式下 会产生错误。

  • 虽然已经在响应拦截器里做了一些全局处理,最后是通过 Promise.reject 抛出的异常 现在每个接口请求方法都还是得写 try/catch 或者 .catch() 真的好麻烦 有什么比较好的方案吗?