Зачем и как создавать шину событий в Vuejs 3

RedDeveloper
15.02.2023 08:34
Зачем и как создавать шину событий в Vuejs 3

Вы когда-нибудь использовали шину событий в Vue 2 и не знаете, как воссоздать ее в Vue 3?

Поскольку я работаю над 2.0 версией пользовательского интерфейса своего продукта (которая выйдет в мае), я публикую некоторые технические приемы, которые я узнал, перенося свое приложение с Vuejs 2 на Vuejs 3.

В текущей версии фронтенд-приложения Inspector используется глобальная шина событий. Она необходима для того, чтобы корневой компонент приложения (App.vue) знал о некоторых определенных событиях, запускаемых внутри цепочки компонентов.

Прежде чем перейти к деталям этой конкретной реализации, позвольте мне описать принципы взаимодействия компонентов в Vuejs и почему мы решили использовать глобальную шину событий, даже если это не рекомендуется.

Взаимодействие компонентов Vuejs

В Vuejs каждый компонент отвечает за отрисовку части пользовательского интерфейса, с которой взаимодействуют пользователи. Иногда компоненты являются самодостаточными. Они могут получать данные непосредственно из API бэкенда. Чаще компонент является дочерней частью более структурированного представления, которое должно передавать данные дочерним компонентам для отображения определенной части пользовательского интерфейса.

В Vuejs каждый компонент отвечает за отрисовку части пользовательского интерфейса с

Компоненты могут передавать реквизиты своим родителям. Реквизиты - это данные, которые нужны компоненту от родителя для его работы.

В приведенном ниже примере компоненту нужен объект пользователя, чтобы отобразить его имя с различными стилями в зависимости от его роли.

<template>
    <span :class="{'text-danger': user.is_admin}">
        {{user.first_name}} {{user.last_name}}
    </span>
</template>

<script>
export default {
    props: {
        user: {
           type: Object,
           required: true
        }
    }
}
</script>

Продолжение в оригинальной статье → https://inspector.dev/why-and-how-to-create-an-event-bus-in-vuejs-3

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.