vue中怎么在api.js中调用vux的alert插件

发布于 2022-09-06 02:26:23 字数 1065 浏览 20 评论 0

我想在api.js中对axios请求结果做统一的处理,如果请求出错,就调用vux的alert插件去弹框提示,请问怎么配置vux可以在api.js中也能使用alert插件呢?
这是我main.js的代码

clipboard.png

这是api.js的代码

clipboard.png

clipboard.png
希望大神能指导一下,谢谢各位了~

ps:
在api.js中引入vue,然后:
clipboard.png

clipboard.png
但是,调用的时候就报错了

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

荒人说梦 2022-09-13 02:26:23

vue如何在api.js中获取vue实例进行路由跳转

已解决,请参考上个问题的答案~

旧城空念 2022-09-13 02:26:23
  1. 再引个vue进来。
  2. 如果你的getAxios是挂在vue上的,直接this.$vux.alert.show()应该也行。

  1. Vue.prototype上是有,所以Vue构造函数的实例(__proto__)上才会有。所以你得这么调用
Vue.prototype.$xxx
// 或者
let vm = new Vue()
vm.$xxx
  1. Vue从api.js被引入的时候还没有将组件注册上,所以要在异步回调里才能调用组件,可以试一下:
setTimeout(() => vm.$xxx, 0)
巴黎盛开的樱花 2022-09-13 02:26:23

补充第一个答案的详情解决思路

1.首先在main.js的关键是导出根组件,就是new vue那里

import { LoadingPlugin } from 'vux'
Vue.use(LoadingPlugin)

let myThis = new Vue({
router,
axios,
render: h => h(App)
}).$mount('#app-box')

export default myThis

2.然后在JS文件中引入这个myThis

import _myThis from '@/main.js'

_myThis.$vux.loading.show({

text: 'Loading'

})

这里的思路比较奇特,vux官方只给出了在.vue后缀文件的使用方法,
.js后缀文件可参考这种思路

贩梦商人 2022-09-13 02:26:23

请问解决了嘛,我现在也遇到这个问题了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文