Здравствуйте, в Vue 2 я создавал шину событий для конкретной страницы и всех ёё компонентов используя к примеру
//main.js
global.context = new Object();
global.context.app = Vue;
Тогда я присваевал контекст страницы глобальному обэкту global.context к примеру
created(){
global.context.authorization = this;
}
и к примеру в компоненте любой вложености или на странице вызывал
global.context.authorization.$emit(
"authorizationMessage",
this.t("Password fields didn't match")
);
Также я и принимал события
global.context.authorization.$on("authorizationMessage", (msg) => {
alert(msg);
});
Но пытаясь повторить подход на Vue 3 я получаю ошибку
Uncaught (in promise) TypeError: global.context.authorization.$on is not a function
at Proxy.created (Messenger.vue?1b1a:25)
at callWithErrorHandling (runtime-core.esm-bundler.js?5c40:154)
at callWithAsyncErrorHandling (runtime-core.esm-bundler.js?5c40:163)
at callHookWithMixinAndExtends (runtime-core.esm-bundler.js?5c40:6032)
at callSyncHook (runtime-core.esm-bundler.js?5c40:6018)
at applyOptions (runtime-core.esm-bundler.js?5c40:5956)
at finishComponentSetup (runtime-core.esm-bundler.js?5c40:6636)
at setupStatefulComponent (runtime-core.esm-bundler.js?5c40:6567)
at setupComponent (runtime-core.esm-bundler.js?5c40:6503)
at mountComponent (runtime-core.esm-bundler.js?5c40:4206)
Насколько я понимаю фишка с контекстами не будет работать если она обернута в прокси, как я могу улучшить подход с локальными шинами событий... могу ли я както присвоить в global.context.authorization = this; не от прокси а от VueComponent?