MⅨ
А если стоит connect
Daniil
у родителя?
MⅨ
У чайлда
Bogdan
а к вопросу о том, нужно ли уменьшать размер бандла, что дадут эти 100кб? если разбить подгрузку на чанки, ужимать кратинки и тд, ты и так выиграешь в производительности, какой толк уменьшать бандл?
Daniil
У чайлда
Было бы очень плохо, если бы при каждом щелчке из конекта приложение колбасило. Так что родитель не пострадает, если ты об этом
Daniil
Контекст
MⅨ
Из-за чего ререндериться чайлд? Если у меня ререндериться родитель это влияет ли это на чайлда?
MⅨ
А если замемозить до connect-a хоком?
Daniil
зачем тебе конект мемоизировать?) Если тебе так мешают реднеры, копай в сторону мемоизации детей
Daniil
Можно конечно реселектом регулировать
Daniil
а к вопросу о том, нужно ли уменьшать размер бандла, что дадут эти 100кб? если разбить подгрузку на чанки, ужимать кратинки и тд, ты и так выиграешь в производительности, какой толк уменьшать бандл?
Парсинг дело тонкое, каждый движек может по своему твой кусок воспринимать. V8 например с редюсом, где еще и спреды, совсем плохеет судя по последним статьям и тестам
Danil
Почему state внутри setInterval не изменяется? Он всегда имеет initial state. const [state, setState] = useSetState({ searchWidth: (windowWidth < 992) ? 90 : 0, searchString: (windowWidth < 992) ? '90px' : '', isOpen: (windowWidth < 992), }) // const handlerSearchOn = useCallback(() => { const handlerSearchOn = () => { setState({ isOpen: true }) const searchInterval = setInterval(() => { console.log(state) // показывае всегда старое состояние if (state.searchWidth >= 91) { clearInterval(searchInterval) return false } // состоние обновилось setState((prevState) => ({ searchWidth: prevState.searchWidth + 15, searchString: prevState.searchWidth + 'px', })) }, 35) }
Dmitry
да (в функции connect имеется ввиду)
Daniil
а, я понял, спасибо что дополнил
Артем
@react-google-maps/api
может быть знаешь в чем проблема? человечек какой-то здоровый....но на примерах он нормальный https://prnt.sc/pplvj7
Vladimir
может быть знаешь в чем проблема? человечек какой-то здоровый....но на примерах он нормальный https://prnt.sc/pplvj7
впервые такое вижу. Мб у тебя твои css стили перекрывают. браузерный зум не выкручен?
Daniil
да (в функции connect имеется ввиду)
это уменьшает на N кол-во рендеров нашего компонента с конектом, но все равно дети будут ререндерится без оптимизаций.
Daniil
Я так понял, у человека как раз в этом и вопрос был
Bogdan
да (в функции connect имеется ввиду)
в конекет сравнение из коробки что ли?
Dmitry
спреад гораздо быстрее чем конкат ?
MⅨ
а не должен быть ререндер там же shallowEqual
Да я понял из-за чего ререндер, из-за редакса, ордин из пропов менялись, которые я шерил между компонентами
MⅨ
Я ноль в редаксе, это ведь плохая практика их шерить?
Vladimir
Я ноль в редаксе, это ведь плохая практика их шерить?
если у тебя из-за ререндеров падает производительность, то дочерние компоненты сделай PureComponent/React.memo
MⅨ
если у тебя из-за ререндеров падает производительность, то дочерние компоненты сделай PureComponent/React.memo
Не, в это проекте производительность не важна. Я с точки зрения хорошей практики, лучше делить по компонентам стейт в редуксе или шерить, но ведь тогда будут ререндеры не нужные, но зато данных по редусам меньше крутиться будет
Maksim
короче не надо там ничего делить по компонентам в редаксе
Vladimir
Юрий
ребят, подскажите, как можно оптимизировать роутинг, что бы не было 2 PublicRoute, а оставить 1 public и 1 private. В Private хоке проверяется авторизация и возвращает компонент, в котором уже возвращаються все роуты админки. В Public тоже самое, только возвращает 1 роут с формой логина. Сейчас не нравится что на прямую описано 2 паблик роута
Юрий
Юрий
🦜
Redirect
Sergey
Использовать гарды
🦜
можно так сделать
🦜
можно так сделать
если пользователь заходит на / то в редирект на приват роут. Там чекается сессия, если она ОК, то его редиректит на /admin-panel, иначе на /login
Dinar I
Есть у кого нибуь готовая функция, которая переводит полученный данные в виде дерева к данным treedata компонента treeSelect(https://codesandbox.io/s/0p4vnj8zrw) из antdesign, где заданы собстенные ключи для дерева?
🦜
Redirect driven development
Хули нам юзерам реакт-роутера
Sergey
Так и делаю
Bogdan
Юзать гарды
гарды это либа или что это такое
Василий
скажите - есть на одном хосте приложение1, оно отработало и результаты в виде ключ-значение надо передать приложению 2 на этом же хосте - как такое можно делать?
Василий
то есть я над чем размышляю - есть приложение ФинУслуга, и результаты работы этого приложения надо оправить на приложение Оплата
Василий
больше ничего?
Василий
sessionStorage разным приложениям доступно?
Yury
спам )😅
Sergey
гарды это либа или что это такое
Подход. Я думаю его в виде библиотеки и статей выложить
Nikolai
больше ничего?
Ну если они оба выполняются одновременно, то CustomEvent можно задиспатчить и передать через него еще
Василий
ясно спасибо. по архитектуре что я описал вроде веб сервис по посту у второго приложения вызвать
Василий
как скины для компонет лучше оформить ?
Василий
вернее как их делать
Nikolai
Вызвать метод этого приложения
Связность кода же увеличится
Nikolai
Контракты решают
При чем тут контракты? Если один модуль знает о другом - это зависимость лишняя
Василий
Связность кода же увеличится
ну почему - приложения разные. приемник объявит что то типа контроллера который по посту данные примет
Nikolai
Почитай что такое контракты
И при чем тут связность?
MⅨ
Вопрос а как можно симулировать нажатие за пределы компонента как эвент? Как диалоги, когда ты нажимаешь за пределы его ты закрываешь его
MⅨ
Ладно думаю нашел решение
Valentin
Всем привет, как правильно реализовать слежение клика на чайлд компонент? Прим <Popover><Button /></Popover> Что должно быть внутри поповера, что бы следить за чилдроном внутри? Без лишних оберток под чилдреном, и уже смотреть кликнули на обертку или нет Не знаете?
Valentin
почему?
Sergey
но вообще Children.map
Sergey
почему?
неявно
Sergey
и легко ломается
Sergey
пример ButtonGroup в material ui
Sergey
мммм?
https://reactjs.org/docs/react-api.html#reactchildren
Valentin
Ну а как тогда быть, если уже имеется верстка, и если оборачивать блоки для которых показывать поповер, который будет создавать доп обертку и крушить все? Делать поповер отдельно от элемента и ссылаться по рефу?