Comments 12
Надо было начать с Рюрика
Вроде блок-схемы придумали для удобного восприятия процессов, а не для дизайнерских изысков...
А бизнес-логику приложения перенести из каждого события в функцию переходов (она же редуктор).
А можно не выдумывать сложности там где их нет, и не пытаться оправдать существование редакса, с его уродским синтаксисом, тем, что якобы мы, решая некую там задачу – к нему же и придем.
const handler = {
currentState: undefined;
handleEvent(event) {
this.currentState = event.type;
switch (event.type) {
case "play":
// ...
break;
case "pause":
// ...
break;
case "ended":
// ...
break;
case "timeupdate":
// ...
break;
case default;
// ...
}
}
}
// audio = HTMLAudioElement
audio.addEventListener(handler);
// later
audio.removeEventListener(handler);Какой практический смысл в том, что вы преобразовали play, pause, ended и timeupdate в PLAYING, STOPPED, PAUSED и ENDED?
Сделаем независимую от бизнес-логики библиотеку,
Что вам это дало?
чтобы и в реакте работало,
А если Vue? Angular? Solid?
чтобы и обновление частей состояния не вызывало перерисовки!!
Значит ли это, что при обновлении части состояния, например с PLAYING на PAUSED, пользователь это не увидет?
Чтобы были плагины в браузере для истории переходов!
Чтобы что? Для чего? Да, мы знаем, что редакс подает как мегафишку то, что вообще говоря почти никогда не требуется, а если требуется, то очень легко реализуется и без него?
Отличный вопрос!
А можно не выдумывать сложности там где их нет
100% можно. Это лишь пример, именно в нём конечно не нужен редакс. Но и ваш пример как раз про автоматное программирование - переход от событийной логики в конечному автомату.
Редакс это просто реализация такого подхода в реакте. Чтобы не всё приложение перерисовывалось и прочие плюшки.
Что вам это дало?
А если Vue? Angular? Solid?
Это пример будущих мыслей бизнеса и техлидов.
Значит ли это, что при обновлении части состояния, например с PLAYING на PAUSED, пользователь это не увидет?
В реакте можем использовать редакс* в корне и он не будет вызывать перерисовок всего приложения.
* – redux + react-redux
Чтобы что? Для чего? Да, мы знаем, что редакс подает как мегафишку то, что вообще говоря почти никогда не требуется, а если требуется, то очень легко реализуется и без него?
Чисто для отладки. Чтобы не console.log писать (даже через debugger), а видеть как менялось состояние. А как без редакса смотреть и менять состояние вашего примера handleEvent?
Не знаю кто писал эту статью, но живые программисты не говорят "редуктор"
Оказаться на проекте с редаксом - это боль
Выбрать редакс целеноправленно - это диагноз
"Редукторы" это вещь! ...от которых мы сейчас всеми силами избавляемся и переходим на ванильный TS, именно как написал @nihil-pro
Зачем Тьюринг изобрёл Redux?