[英]Using global properties outside vue components - Vue 3
我在main.ts
中創建了自定義服務實例
app.config.globalProperties.$service1 = new Service1();
app.config.globalProperties.$service2 = new Service2();
我可以在 vue 組件中使用這些實例,但我希望能夠在某些實用程序文件中使用它們。
在 vue 2 中是這樣的:
import Vue from "vue";
Vue.prototype.$service1.someMethod("foo");
對我有用的唯一選擇是在main.ts
中導出app
實例並將其導入我的實用程序文件中,但這看起來不正確。
Vue 3 中的Vue.prototype
等價物是什么?
如何保持單例並仍然使用 vue 組件之外的實例?
沒有充分的理由將此代碼編寫在 main.ts 中,那么就沒有必要從它不屬於的地方獲取服務實例。
借助模塊化 JS 的優勢,可以在模塊中定義服務實例:
export default new Service1();
然后在它使用的每個模塊中導入服務:
import service1 from '.../service';
沒有必要像使用Vue.prototype
那樣將其暴露給所有組件實例,后者是使用Vue
變量作為全局命名空間的非模塊化 Vue 的殘余。 目前,通過app.config.globalProperties
暴露全局依賴關系只需要那些應該在組件模板中使用的,例如過濾器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.