Ребята, задался таким вот вопрос, где в основном используются кастомные события? Недавно вот писал todo list и я там использовал кастомные события. Написал событие на вывод сами todo и события на добавление и удаление. Верно ли я поступил? Ну, как по мне, это верное решение и код читается понятным, чем какие-то функции. В каких проектах Вы бы использовали?
Там, где вы разрабатываете компоненты интерфейса без использования фреймворков и библиотек, как говорят, на чистом JS.
Большая часть архитектур современных фреймворков построена так, что обработчики событий компонентов вы пишите, придерживаясь концепции выбранного фреймворка. Вам на низкий уровень спускаться не нужно, только познакомиться в учебных целях.
alexalexes, немного объясню, что тут я написал. Имеется у меня в общем поле и обычная кнопка для добавления нового таска в массив. При загрузке странице я сразу триггерю массив тасков чтобы их вывести. Также имеется событие на добавление нового таска. После добавление нового таска, я триггерю его и получаю это событие для того, чтобы триггерить повторное событие на вывод самих тасков. Триггерю событие tasks в addTask для того, чтобы оно было все типо в реальном времени :)
alexalexes, если что я в курсе, что EventEmitter больше для ноды, а в клиенте уже имеется CustomEvent. Но честно говоря, я не понял отличие CustomEvent от своего написаного EventEmitter :)
Поэтому решил написать свой класс, чем использовать уже готовый класс)
const tasks = [...initialTask];
Под список задач нужно создавать отдельный прототип объекта taskList со своими методами, обработчиками, событиями. Голый массив задач не может лежать отдельно, он должен быть внутри taskList и иметь отдельные методы доступа. В общем, тут нужно усилить ООП-шность. Нужно создать такой прототип, чтобы он сам следил за состоянием своего ресурса-массива.
Хороший пример, это плагины или npm-библиотеки. Вы даёте пользователю большую гибкость при использовании таких плагинов. Например, модалка - тут прям напрашиваются события onModalOpen, onModalClose и подобные.