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

Ребят, привет, хардкорный Angular разработчик в чате. Дали по работе

сделать проект на дизайн системе, которая написана на React, использовал NextJS.

Но во время написания, внезапно понял, что вообще не выкупаю React. Объясните тупому зачем нужны функциональные компоненты?

Особенно напрягает, что хуки нельзя выносить во внешнюю функцию или ставить под условия, разве это удобно? В итоге мой компонент сильно раздулся и превратился в свалку кода.

27 ответов

18 просмотров

Чтобы экземпляры классов каждый раз не создавать. Это дорого. Хуки можно выносить во внешнюю функцию. А вот по условию - да, нельзя, ибо на одну функцию все хуки должны запускаться всегда в одном порядке - это позволяет реакту корректно сохранять состояния хуков между множеством useState и useEffect запросах. Нужны хуки по условию - создавай компоненты, в одних из которых нужный тебе хук, а в других - нет и по условию рендерь компоненты

Максим- Автор вопроса
Идель Гатауллин
Чтобы экземпляры классов каждый раз не создавать. ...

Да, но разве мы не теряем наследование? Мы разрабатываем крупные бизнес приложения, и переиспользование логики очень частый кейс у нас. Да и не очень понятно как функциональные компоненты работают. Если я вызываю функцию, разве все хуки не должны заново инициализироваться? Что почитать, чтобы разобраться?

Максим- Автор вопроса
Raman
Документацию

Там очень все скудно описано, мне бы какой нить хороший Deep Dive. В документации описаны хуки и что они делают, а вот как это все устроено, не понятно.

Максим
Там очень все скудно описано, мне бы какой нить хо...

Для того что бы понять что компоненты можно переимпользовать deep dive не нужен

Максим
Там очень все скудно описано, мне бы какой нить хо...

https://habr.com/ru/companies/otus/articles/667706/ https://habr.com/ru/companies/otus/articles/668700/ https://habr.com/ru/companies/otus/articles/669962/ https://habr.com/ru/companies/otus/articles/696610/ https://habr.com/ru/companies/otus/articles/677208/ Удачи)

Максим
Да, но разве мы не теряем наследование? Мы разраба...

На заре реакта мы отказались от наследования в пользу композиции. И не жалеем

Максим- Автор вопроса
Raman
Для того что бы понять что компоненты можно переим...

Ой да там какая то каша. Например, когда нужно использовать memo, когда нет, так и не понял. Когда компоненты перерисовываются? А если родитель перерисовываетя, дети тоже? Как работает SSR с хуками? Почему когда я добавил iframe (был в коде счётчик Метрики) NextJS нарисовал компонент дважды? И так далее... Слишком много вопросов, слишком мало ответов)

Максим
Ой да там какая то каша. Например, когда нужно исп...

Я изучаю реакт уже третий год и сам до конца не знаю всех ответов, ты хочешь за пару дней?

Максим
Ой да там какая то каша. Например, когда нужно исп...

NextJS - там такая охереть какая большая дока. И без базовых знаний react-а туда вообще нельзя лезть

Raman
Сочувствую

А ты знаешь?

Raman
Да

Напомни свой опыт работы с реакт

Максим- Автор вопроса
Идель Гатауллин
NextJS - там такая охереть какая большая дока. И б...

Ну как, я когда React вышел, его юзал, тогда было все просто и понятно. Есть класс и JSX, нужно поменять state - юзай setState. Нужно прокидывать state, юзай контекст. Потом придумали Redux. Ну а потом я ушел на Angular разработку, а там все переворотили) Я все сторонился всего этого, ну вот приходится вкатываться...

Максим- Автор вопроса

Столкнулся к некоторыми проблемами при разработке SSR React приложения, скорее вопрос не к хукам, а в целом про работу SSR в React.

Максим
Ой да там какая то каша. Например, когда нужно исп...

А шо не так с перерисовкой компонентов?)) Яж не отстану

Максим
Столкнулся к некоторыми проблемами при разработке ...

Типо про серверный компоненты и клиентские?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта