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

Ребят, а вот какой подход рекомендован к использованию: 1) Разделение всего

на уровни логики (UI, BLL, DAL), но это ограничивает нас в использовании хуков. И не сильно подходит для маленьких приложений, например.

2) Объединение всей необходимой логики в компоненте, и полная её инкапсуляция, но тогда получается каша, и внутри одного компонента и запросы, и данные, и обработка этих данных. Как мне кажется подходит, наоборот, больше для маленьких приложений

Что лучше, и какие ещё есть подходы?

19 ответов

17 просмотров

Всё что ты перечислил в пункте 2 выносится в react-redux в thunk. Можешь попробовать паттерн MVP. С хуками очень хорошо сочетается. До данного момента никаких проблем не замечал.

Redux, useSwr

чего это ограничивает? хуки - это просто интерфейс

Саша-Градинар Автор вопроса

Да, но как по мне если внутри компонента useDispatch, useSelector, useState, useEffect и ещё пара кастомных, а потом ещё вёрстка с использованием всех этих данных, то можно застрелиться

та не, это нормально, если не упарываться. взял данные и пару действий, вставил в верстку и все ок ну то есть если ты вызвал пару селекторов и диспачи твои все простые (а не куча логики в самом компоненте), то это нормально

Саша-Градинар Автор вопроса

А куда тогда выносить логику?

Я же тебе выше объяснил

Саша-Градинар Автор вопроса

Не увидел сообщения. Спасибо 🙏 почитаю про паттерн

Логика либо в hooks, например, для моделей, либо в thunks для каких-то внешних эффектов

даже если логика не переиспользуемая, можно выносить в кастомные хуки и класть рядом в соседний файл ну типа если есть большой useEffect + useState + useRef, то просто их вместе выносишь в useMyHren и основной компонент тогда читается проще

Где-то читал статью, про то что стоит все в одном компоненте стоит писать. Запросы, стили, сторибук, тесты. Там ссылались на react-router

вообще все приложение должно быть одним файлом src/index.js с одним компонентом App

Саша-Градинар Автор вопроса

😂😂😂

удобненько, как по мне. Так у тебя тесты, стили, запросы, сторибук лежит в index.js файле компонента, а не в нескольких файлов

правильно, пусть все в бандл к юзерам идёт, им полезно

tree shaking и будет тебе счастье. К юзерам уйдут только стили и сам компонент

понятно, но я считаю это дичью пихать тесты и стори в файл к компоненту. в тестах бывает по 500 строк, как потом с этим файлом работать

Ну тут соглы с тобой.

2) я например разделяю представление и логику, есть отдельно список и обертка, которая грузит данные

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта