Size: a a a

React — русскоговорящее сообщество

2021 April 23

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
да так и есть - это антипаттерн, сам сейчас такое 💩 с проекта выпиливаю
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
источник

m

mmm in React — русскоговорящее сообщество
Как называется эта белая тема?
источник

M

Merry in React — русскоговорящее сообщество
разве антипаттерн? а если надо пройти циклом for например, чтобы правильно сформировать дерево
источник

M

Merry in React — русскоговорящее сообщество
вроде даже когда-то спрашивал тут об этом, но не ответили
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
непонял. Эмитировать компонент создавая его с помощью useCallback - антипаттерн
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
это пак светло темных тем - Noctis
Вот так одна из темных выглядит
источник

M

Merry in React — русскоговорящее сообщество
а, вы именно про использование в useCallback говорили?
источник

m

mmm in React — русскоговорящее сообщество
Спасибо вам)
источник

M

Merry in React — русскоговорящее сообщество
я думал тут вы говорили про использование jsx не в return
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
ну и это тоже. Когда jsx нужен не в "рендере" компонента?
источник

M

Merry in React — русскоговорящее сообщество
источник

DP

Den Pol in React — русскоговорящее сообщество
как мемоизированная хрень, например. хотя, лучше выносить.
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Непонял вопрос. Нужен просто компонент который принимая плоский массив рендерит дерево. Или я что то упустил?
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
компонент мемоизировать даже проще
источник

M

Merry in React — русскоговорящее сообщество
да. но так как приходит плоский массив, в map не получится этого сделать
источник

SG

Sos Genrikovich in React — русскоговорящее сообщество
Можно сделать функцию типа traverseTree, которая будет преобразовывать дерево в нужную структуру, а потом вызывать переданную функцию на листы или поддеревья (смотря как тебе надо), в которой ты сможешь юзать jsx
источник

SG

Sos Genrikovich in React — русскоговорящее сообщество
Логику преобразования дерева ты сможешь вынести в отдельное от рендера место, а рендер поместить туда, где его скорее всего будут искать другие программисты, которые когда-нибудь будут смотреть этот код
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Все равно недопонимаю проблематики. Можно внутри компонента преобразовать наш плоский массив, в удобоваримый для рендера, опционально положить его в useMemo. Да пожалуй можно сразу траверсить не в raw структуру а в jsx и положить в тот же useMemo.

Но такие кейсы скорее исключения, чем правило. Я бы даже в угоду однообразности не траверсил сразу в jsx. (хотя кого я обманываю🌚 я бы преобразовал данные за пределами реакта, реакт у меня сразу и всегда получает "удобные" для него структуры)
источник

M

Merry in React — русскоговорящее сообщество
ага, и тогда даже можно мемоизировать эти данные, чтобы не проходится по массиву несколько рза
источник