在 Vue 应用程序中创建类的单个实例 [英] Creating a single instance of a class within a Vue application

查看:28
本文介绍了在 Vue 应用程序中创建类的单个实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Vue 的新手,我正在努力思考如何实现在我看来是全局变量或单例的好案例.

背景是我使用 Azure AD B2C 对 MSAL 库进行身份验证.MSAL 需要声明 Msal.UserAgentApplication 的单个实例,然后通过应用程序共享.

我正在努力解决的是如何在中央某处声明该实例,然后从包括路由器在内的每个组件访问它.

目前我有一个类似于这个例子的类:https://github.com/sunilbandla/vue-msal-sample/blob/master/src/services/auth.service.js 以及当我想使用我正在做的方法:

var authService = new AuthService();authService.Login();

不幸的是,每次实例化该类时,这都会创建一个新的 MSAL 实例,从而导致我的用户最终陷入身份验证循环.

任何帮助将不胜感激.

非常感谢.

<小时>

根据 Teddy 下面的回答,我修改了我的 main.js 如下:

从'vue'导入Vue从'./App.vue'导入应用程序从'./router'导入路由器从./store"导入商店导入'./registerServiceWorker'从 './services/AuthService' 导入 AuthService;Vue.config.productionTip = falseVue.prototype.$authService = new AuthService();新的 Vue({路由器,店铺,渲染:h =>h(应用程序)}).$mount('#app');

和我的 register.vue 组件如下: