169 похожих чатов

Ребят, как вы отделяете логику от компонента? Можно ли отделять

логику от компоненты кастомными хуками, чтобы компонент оставался чистым, жить без всяких контейнерных компонентов

26 ответов

17 просмотров

Не смотрите курсов старше года

зачем мне чистый компонент если у него есть логика?

https://react-redux.js.org/api/hooks

Stanislav
зачем мне чистый компонент если у него есть логика...

Рискую поднять волну, но по мне это звучит почти как "зачем мне api, если есть серверные компоненты". Разные задачи бывают. Ну и в принципе, логика компонента в идеале только к его отображению сводится и отслеживанию взаимодействия с ним. Остальное - не его ответственность.

Stanislav
зачем мне чистый компонент если у него есть логика...

Ты пишешь так, будто у чистых компонентов не не должно быть логики

Yerbol-Altynbek 🇺🇦 Автор вопроса
Dmitriy Shuleshov
Не смотрите курсов старше года

Уже посмотрел. Боль. Раны придется залечивать. 100500 раз твердят, что логику надо отделять от презентационной компоненты куда-то. Это уже устарело в 2020 году? Верно же?

Yerbol Altynbek 🇺🇦
Уже посмотрел. Боль. Раны придется залечивать. 10...

Цель не устарела но подходы решения этих задач устарели

Yerbol Altynbek 🇺🇦
Уже посмотрел. Боль. Раны придется залечивать. 10...

не всю всю логику, надо распределять ответственность правильно

Yerbol-Altynbek 🇺🇦 Автор вопроса
Dmitriy Shuleshov
Цель не устарела но подходы решения этих задач уст...

Как можно решить эту проблему современно?

Yerbol-Altynbek 🇺🇦 Автор вопроса
Stanislav
не всю всю логику, надо распределять ответственнос...

Хорошо, я понял тогда примерно. Если слишком большая логика - нужно отделять ее в кастом хуки. А маленькую логику можно хранить

Yerbol Altynbek 🇺🇦
Как можно решить эту проблему современно?

1. Логика прям в компонетах 2. Кастомные хуки 3. Хороший стейт менеджер

Yerbol Altynbek 🇺🇦
Уже посмотрел. Боль. Раны придется залечивать. 10...

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

Yerbol-Altynbek 🇺🇦 Автор вопроса
Денис
Вы не доверяйте всему что говорят на Ютубе. Разде...

Тогда, вывод будет таким. Если логики на 3-7 строчек - тогда можно. Если логики строчек на 15, то можно раздробить на мелкие компоненты, с родительского компонента передавать вниз в дочерние. (Это без стейт менеджеров). Если логика где-то повторяется - то ее лучше вынести в кастомный хук.

Yerbol Altynbek 🇺🇦
Тогда, вывод будет таким. Если логики на 3-7 строч...

Количество строчек - последнее что должно влиять на это решение

Yerbol-Altynbek 🇺🇦 Автор вопроса
Yerbol Altynbek 🇺🇦
Тогда массивность логики, затратность.

Немного ближе, да. Но все равно много неопределенности. SRP из solid и boundaries / bounded context из ddd ближе по смыслу. Почитайте про фундаментальные вещи в computer science, без предубеждения, относится оно к ООП, фп или еще чему. Будет проще при проектировании.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта