Ilia
Ребят , фильтр элементов на страничке правильно организовывать через this.state компонента или в redux(store) через reducer?Я новичек)
Ilia
Может кто ссылкой поделится на то как правильно это делать?
El
Новые проекты только с ними делаем
С lifecycles кодить не дадите?
Александр
El
Если кто-то хочет писать с использованием lifecycles.
Александр
Если кто-то хочет писать с использованием lifecycles.
Не дам :) но это Не тирания, а взаимное заключение, с хуками стало гораздо удобнее, понятнее, реюзабельнее
Александр
Исправил, опечаточка была:)
Егор
Ребят , фильтр элементов на страничке правильно организовывать через this.state компонента или в redux(store) через reducer?Я новичек)
Много разных мнений, через state проще краткосрочно, через redux правильней и чище, проще поддерживать в долгосрочной перспективе. А примеры - никто не даст, потому что это база) Читай доку и статьи best practies
Александр
Если кто-то хочет писать с использованием lifecycles.
Единственный class based компонент сейчас в проектах - это error boundary
El
Вы быстро перешли с lifecycles на хуки?
Александр
Вы быстро перешли с lifecycles на хуки?
Ну легаси не трогали конечно, но новое сразу стали делать на хуках, как 16.8 вышел
Bogdan
есть массив прямо в компоненте, его можно как то вынести в контекст например?
Александр
El
Почему увы? Back не хочет переписывать сервер под что-то другое?
Александр
Почему увы? Back не хочет переписывать сервер под что-то другое?
Нет, не верно выразился, рест норм для определенных задач, там где предметная область более менее ложится на понятия ресурсов. Просто в одном из проектов последних не очень подумав выбрали рест, тогда как JSON RPC был бы тут более уместен, переписывать не стали, но урок выучили
Bogdan
Зачем он внутри компонента объявлен?
что бы не писать кучу кнопок
Anonymous
что бы не писать кучу кнопок
Что мешает снаружи объявить?
Bogdan
снаружи это где?
Anonymous
Рядом с компонентом
Александр
Что мешает снаружи объявить?
Или передавать как props
Anonymous
Чтоб по ссылке массив брался а не в рендере новый создавался каждый раз
Bogdan
Чтоб по ссылке массив брался а не в рендере новый создавался каждый раз
у меня папка молекулы, там компоненты, прямо там еще и файл с массивом сделать?
Bogdan
компоненты не в папках а файлами
Sergey
@sovasergey тут спам
Anonymous
компоненты не в папках а файлами
А константу в файле с компонентом нельзя объявить?
Anonymous
Все равно он не универсальный
Bogdan
А константу в файле с компонентом нельзя объявить?
она сейчас и так в файле с компонентом
Anonymous
Чтоб по ссылке массив брался а не в рендере новый создавался каждый раз
Bogdan
Чтоб по ссылке массив брался а не в рендере новый создавался каждый раз
а, просто выше функции? ну мне не нравится, что столько месста занимает массив сам
Sm•ok
Зачем он внутри компонента объявлен?
А если поместить это в ref, то то будет считаться хорошим тоном?
Sm•ok
То есть сейчас он каждый раз создаёт заного
Sm•ok
Мне говорили, что useRef это как this для класса
Александр
Александр
А как иначе, useMemo принимает функцию которая вернёт ваш массив и при последующих ререндерах будете получать его, без пересоздания. useRef для другого...
Bogdan
так что юзать то
Александр
А для чего useRef кроме создания ссылок на компонент
Да много для чего, например хранить дескриптор от setInterval
Sm•ok
ref - это новый this инстанса класса
Sergey
А для чего useRef кроме создания ссылок на компонент
Ref позволяет создать ссылки на что угодно
Александр
Миллион примеров
Александр
Sm•ok
ref - это новый this инстанса класса
Если бы это было бы классом, бы я этот массив хранил бы в this
Sm•ok
Почему сейчас нельзя?
Александр
А как вы туда запихнёте, вам придётся сделать ref используя useRef и useEffect чтобы поместить туда значение
Александр
А useMemo сразу позволяет это делать , зачем куча лишних телодвижений, когда есть инструмент специально созданный для таких случаев
Александр
useRef в аргумент не принимает дефолтное состояние?)
Но оно же каждый раз будет пересоздаваться , а тут вроде хотели как раз чтобы массив создавался только один раз
Bogdan
в функциональном компоненте массив вынесит в json?
Bogdan
единственное где я реф юзал это что бы закрыть модалку и все
Bogdan
А зачем?)
ну типо что бы зкрыть по нажатию вне модалки
Sm•ok
Юзал реф только из-за либы leaflet
Sm•ok
И переключать модалку
Александр
Так memo же вроде был для защиты от перерендера в случае неизменности пропсов
Да, но более широко, смотрите, представьте у вас есть инлайн стиль заданный через style, если вы пишете style={{background: black}} то при кажом рерндере дочерний компонент будет получать новый объект style, с useMemo вы можете написать style = useMemo(()=> ({background: black})) и тогда дочерний компонент будет получать один и тот же объект style
Bogdan
Юзал реф только из-за либы leaflet
так смотри, я класс не могу навесить на обертку, потому что портал создаю только когда открываю модалку и в ставляю в портал уже окно
Sm•ok
Или zindex не смог перебить
Sm•ok
Там уже были элементы выше
Bogdan
А зачем портал для модалки?)
хз, прочитал в порталах делают
Anonymous
А как тайтлы на каждую страницу прилепить ?
Александр
а при массиве в компоненте , тоже мемо юзать тогда?
В вашем случае я бы вообще не заморачиваться и оставил как есть
Anonymous
и мета теги
Александр
и мета теги
Аналогично
Anonymous
спс
Anonymous
А поисковые боты норм на это реагируют ?
Nikolai
А поисковые боты норм на это реагируют ?
Некоторые исполняют js, если вопрос в этом