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

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

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

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

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

19 ответов

15 просмотров

Всё что ты перечислил в пункте 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) я например разделяю представление и логику, есть отдельно список и обертка, которая грузит данные

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта