Emchik
@Emchik
Что-то прикольное сделать могу

Глобальная шина событий Vue.js это норм?

Нормальная ли практика - использовать шину событий глобально в крупных проектах?
app.js:
import Vue from 'vue'

Vue.prototype.$bus = new Vue()

new Vue({
	el: '#app',
})
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
Emchik
@Emchik Автор вопроса
Что-то прикольное сделать могу
Вместо шины событий лучше использовать Vuex
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@AndrewRusinas
Нет, это убогий антипаттерн, от которого нужно бежать.
Ответ написан
0xD34F
@0xD34F Куратор тега Vue.js
Эта штука уже несколько лет как не рекомендуется к использованию.
Но, конечно, решение за вами, надо - используйте.
Ответ написан
Комментировать
Aetae
@Aetae Куратор тега Vue.js
Тлен
Если игнорировать охоту на ведьм, то использовать шину событий стоит тогда когда нужны события. Если нужно состояние и его изменение - шина события действительно антипаттерн, но именно в этом случае.

Однако вариант с bus = new Vue() хоть и прост, но чреват утечками памяти. Лучше делать шину через глобальный миксин, который по destroy автоматически очистит всех слушателей конкретного компонента.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы