Передача ссылки на объект в компонент vuejs - PullRequest
0 голосов
/ 28 апреля 2020

Мне нужно передать ссылку на объект в vue -компонент. Фон этого:

У меня есть веб-приложение, которое использует vuejs только для чата. Однако веб-приложение уже открывает WebSocket -подключение к моему серверу для обмена данными. Я хотел бы повторно использовать существующее WebSocket -соединение в чате vue, вместо того, чтобы открывать другое параллельное соединение. Некоторое время я пытался передать объект WebSocket из моего веб-приложения в vue -компонент.

Я хочу передать ссылку на полностью динамическое c WebSocket -соединение, поэтому props или state не вариант.

1 Ответ

1 голос
/ 28 апреля 2020

На самом деле довольно просто передать ссылку на произвольный объект в vue -компоненту. Предположим, что вы монтируете свое приложение следующим образом:

this.app = new Vue({
    render: (h) => h(Chat),
}).$mount("#myChatApp");

Установка ссылки на app, т.е. this.app = myWebSocket не будет выставлять WebSocket для компонента Chat, но только для глобального Vue-пример. Вместо этого вы должны получить доступ к компоненту через:

this.app.$children[someIndex].ws = myWebSocket;

И вуаля: Это работает! Я только начинаю с vuejs и поражаюсь, как все сводится к чистому js. Надеюсь, это поможет кому-то, кто сталкивается с подобной проблемой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...