来自main.js的全局组件的Vue js调用方法

加里

目标是在API返回状态401时显示LOGIN模式

我们在main.js中添加了一个组件

var vm = new Vue({
    el: '#app',
    router,
    store
});

Vue.component('login-modal', 
  () => import('./components/LoginModal')
)

在main.js中axios.interceptors.response.use(用于检查所有ajax请求的状态。工作正常,但现在需要调用LoginModal函数,以在API状态为401的情况下打开模式

axios.interceptors.response.use(
  res => res,
  err => {
    if (err.response.status == 401) {
      router.push('/login')
      //call to component method instead instead of **router.push('/login')**
    }
  }
);

在vue模板中,我们使用像这样的引用

this.$refs.loginModal.open()

但是不知道如何从main.js调用组件函数

托马斯湾

满足要求的一种方法是,您可以在$ root / vm上启动,即使在很多情况下,避免这种情况也是最佳做法。

无论如何,您可以在main.js中添加以下内容:

axios.interceptors.response.use(
  res => res,
  err => {
    if (err.response.status == 401) {
      vm.$emit('openLogin');
    }
  }
);

然后将您的登录模式添加到App.vue中,而不是main.js中,并在其中监听$ root,如下所示:

mounted() {
  this.$root.$on('openLogin', () => {
    this.$refs.loginModal.open()
  })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Vue.js 组件调用方法

来自分类Dev

在main.js所需的.js文件中创建全局排序方法。在Component.vue内部:对计算属性进行单击调用排序。这可能吗?

来自分类Dev

来自全局组件的Vue / Nuxt访问功能

来自分类Dev

Vue.js - 从 Vue 实例调用组件的方法

来自分类Dev

JavaScript和NodeJS:来自不同JS文件的调用方法

来自分类Dev

使用来自js ajax的参数调用c#方法

来自分类Dev

从子组件修改 vue app main.js 中的值

来自分类Dev

Vue.js组件在data属性内调用方法

来自分类Dev

Vue.js - 从 ajax 调用加载组件

来自分类Dev

无法在vue.js中全局注册自定义组件

来自分类Dev

vue js的组件继承

来自分类Dev

Vue.js创建一个帮助程序类以全局调用您的方法

来自分类Dev

从java调用js方法

来自分类Dev

在类方法中包含来自main()的容器

来自分类Dev

Vue.js继承调用父方法

来自分类Dev

使用Vue js嵌入组件的Execute方法

来自分类Dev

Vue.js从另一个组件调用方法

来自分类Dev

如何从视图中调用组件中的方法?(vue.js 2)

来自分类Dev

来自事件处理程序 Vue.JS 的访问方法

来自分类Dev

组件 Vue.js 中的渲染组件

来自分类Dev

vue js动态创建组件

来自分类Dev

组件的Vue.js接口

来自分类Dev

在Vue组件之前加载js

来自分类Dev

在Vue组件之前加载js

来自分类Dev

Vue.js组件问题

来自分类Dev

Vue JS 0.12动态组件

来自分类Dev

Vue.js-使用组件

来自分类Dev

Vue js 中的递归组件

来自分类Dev

Vue.js通过变量名称调用组件?