S
юзай спокойно
только создание функции нельзя использовать в render pure компонента?
Anonymous
Так что можно
🅅aleriy
только создание функции нельзя использовать в render pure компонента?
в разумных пределах, если ты понимаешь что делаешь можно делать все что позволяет js
🅅aleriy
если речь о функциональных компонентах, то чтобы функции не пересоздавались есть механизм useCallback, useMemo
🅅aleriy
а так функция render должна быть максимальна легкой и тонкой
Alexey
wtf
та же ерунда, что и с onClick={() => doSomething()}
🅅aleriy
получать максимум данных через стейт/пропсы и рендерить вычисленные заранее результаты
Китикет
sCU
Лол
Китикет
На серьезных щах предлагать sCU как замену reselect, походу ты в крупных проектах не бывал ни разу
Китикет
Реселект кстати не только о мемоизации
Mikhail
Anonymous
Добрый день
N
Помогите как быть? Теги html выводятся в виде строки
Anonymous
Народ я начинаю изучать react можете дать советы новичку с чего начать что делать
Alexey
Кстати, а нафига он нужен?
дак чтоб лишний раз не считать одно и то же, но я был послушал эксперта
Китикет
Кстати, а нафига он нужен?
Как выше говорилось, минимизировать количество лишних вычислений, убрать ререндеры в некоторых кейсах Плюс это как раз то, что позволяет делать подобие компьютедов в мире редакса и нормально группировать логику
Vitalii
вопрос немного не в тему - как вы считаете пулреквест на 2000+ новых строк кода это норм или перебор?
🅅aleriy
Alexey
к сожалению - нет
тогда много
N
<div dangerouslySetInnerHTML={{ __html: content }} />
Это сторонняя библиотека?
Mikhail
дак чтоб лишний раз не считать одно и то же, но я был послушал эксперта
У нас пересчет чего-либо идёт в рендере, рендерится только когда данные меняются, соответственно лишних пересчётов нет
Vitalii
а ревью кода сам будешь делать? :))
та я сам охреневаю, ну и понятно что с зажатым Pagе Down качество код ревью сильно падает)
🅅aleriy
та я сам охреневаю, ну и понятно что с зажатым Pagе Down качество код ревью сильно падает)
все зависит от кол-ва конфликтов, которые придется разрулить
Anonymous
Всем привет Подскажите, пожалуйста У меня есть combineReducer = data, внутри которого много вложенных По ходу работы приложения, я могу получить данные с бэка, который мне нужно поместить в этот редюссер. Можно ли как-то подвязать экшн к combineReducer, что бы перезаписывать его целиком а не внутри каждого?
🅅aleriy
2к строк это конечно не мало, но все зависит от их смысловой нагрузки
Vitalii
все зависит от кол-ва конфликтов, которые придется разрулить
ну если это новая фича, то конфликтов немного
Китикет
А если вычисленные данные нужны в нескольких местах?
В реселекте это будет так же одно вычисление на изменившиеся входные данные
🅅aleriy
порой 15 строк могут на пару часов в ступор ввести
Vitalii
2к строк это конечно не мало, но все зависит от их смысловой нагрузки
это обычная фича обычного продукта, а не написанная библиотека
Китикет
А если вычисленные данные нужны в нескольких местах?
Например у нас в проекте точно есть несколько селекторов с очень сложными вычислениями, которые в 10+ местах используются
Mikhail
А если вычисленные данные нужны в нескольких местах?
Такое редко бывает у нас, но можно либо функции расчета расшарить между компонентами, либо сделать компонент, который считает и передаёт результат ниже
Китикет
Например у нас в проекте точно есть несколько селекторов с очень сложными вычислениями, которые в 10+ местах используются
Так что я не представляю как можно без реселекта на крупном проекте. Раньше у нас не было его и была дикая боль)
Mikhail
Просто как-то отдельную либу для этого тянуть не хочется
Alexey
нам с маленькими проектами никогда тебя не понять :(
Китикет
Просто как-то отдельную либу для этого тянуть не хочется
Ну, весит ужасно мало, хз в чем проблема
Mikhail
40 редьюсеров - крупный или мало?
Daniil
Просто как-то отдельную либу для этого тянуть не хочется
> тянешь редакс - ок > либу в 2кб ух пизда
Daniil
https://bundlephobia.com/result?p=reselect@4.0.0
Китикет
Что есть крупный проект?
Ну это немного субьективно, да
Anonymous
#ищу Команда спецов ищет работу. #Angular, #React, #ReactNative, #rails, #nodejs. Есть команда специалистов. Ищем срочные проекты с достойной оплатой. Срок реализации от 2 недель. Оплата от 600 000 р. Работа по контракту. Занятость: проектная #Удаленка, #СПб, #мск, #регионы.
Китикет
40 редьюсеров - крупный или мало?
У нас меньше кстати, но есть один очень большой редьюсер, разбить никак нельзя) С ним как раз основная работа
Mikhail
Daniil
🤔
Китикет
Китикет
Может стоит попробовать и передумаете)
Mikhail
А пробовали хоть?)
Нет, юзкейса нет
ipos
почему нельзя разбить редьюсер?
Alexey
у вас просто проекты маленькие
🅅aleriy
вот говорят нельзя почему то
ну у людей частный случай, возможно данные приходят большим развесистым json
Китикет
почему нельзя разбить редьюсер?
Все содержимое должно полностью идти на сервер в некоторых запросах, группировать очень напряжно будет, плюс данные сильно взаимозависимые, к тому же там слишком много логики и задача почти неподьемная)
Anonymous
Добрый день! Подскажите пожалуйста с чего должен начать новичок в изучении react? Заранее спасибо.
Китикет
И плюс состояние полностью приходит как раз с сервера, придется его растаскивать, да)
Вот как раз reselect очень помогает с таким полотном в сторе, избавляет от горы ререндеров
ipos
это ужасно
Andrey
https://scotch.io/tutorials/build-a-react-to-do-app-with-react-hooks-no-class-components
ухх, 28 марта 2019, но класс-апи можно было и пожалеть человека
Mikhail
Вот как раз reselect очень помогает с таким полотном в сторе, избавляет от горы ререндеров
т.е. вы насрали большой стор, с которым сложно работать, и теперь вам нужна отдельная либа чтобы его разгребать?
Alexey
это ужасно
а вы тоже в таком случае бэкенд ровняете или в стор в готовом виде грузите?
Roman
И позволяет красиво вытаскивать части нужные
ага у нас до реселекта почти все валилось в один редьюсер, потому что "всем все нужно знать"
Alexey
или реселекты повсюду, чтобы хоть как-то работало?
Andrey
одна из первых ссылок гугла..
можно было в нее и заглянуть, прежде чем в лицо кидаться
Китикет