Igor
Можно подтянуть js и писать приложухи по видеоурокам на реакте, там такие случаи рассматриваются, и не только такие
Igor
а не ждать пока в чате помогут написать приложение или вообще сделать все
Dmitriy
/admin
Viktor
@annbin в js стоит везде использовать === по умолчанию, чтобы избегать неявного преобразования типов
Igor
@annbin в js стоит везде использовать === по умолчанию, чтобы избегать неявного преобразования типов
если в access только булевое, то можно не использовать конструкции сравнения, я в таких случаях не использую никогда
Alexey
const access = false; class App extends Component { constructor(props) { super(props); this.state = { }; } render() { if (access == false && Route.path == '/thank-you') { return <Redirect to='*'/>; } ?
а менять этот флаг кто и как будет? если это всё в App находится (root-компонент), можно в нём сохранить флаг лучше почитай про стейт-менеджеры: что это такое и как их использовать
Igor
обычно у роутеров есть метод для смены локейшена и пихать редирект в рендер - правильно ли, и есть ли смысл. Например если редирект нужен по запросу, в получении результата от роутера можно запушить в history новый роут, все роуты лучше выносить в отдельный файл (например routes)
Igor
а код выше не понятно что делает, каким образом меняется access откуда должно перейти, зачем и почему?
Arczi
Парни memo используете в каждой функции?
Daniil
Можно тогда вообще на все приложение навесить мемоизацию как обертку
Arczi
поэтому спршиваю
Daniil
Я рофлю, не делай так. Смотри по ситуации
Igor
если есть какой-то контейнер на котором логика тяжелая висит, и его кто-то постоянно ререндерит то мемоизация может спасти)
Igor
а вешать на каждый функциональный компонент мемоизацию - не надо так делать
Arczi
когда использовал классы всегда extend от PureComponent а тепеоь что то потерялся
Igor
там есть свои особенности, я долго искал баг из-за того, что я использовал PureComponent
Bogdan
проблема такая, есть провайдер, но когда я перехожу по этим трем страницам, он удаляется, почему? если я нахожусь в пределах этого роута
Maksim
Не надо так
почему нет?
Bogdan
проблема такая, есть провайдер, но когда я перехожу по этим трем страницам, он удаляется, почему? если я нахожусь в пределах этого роута
тоесть перешел на первый роут, тригернулся провайдер, перешел на второй он опять тригернулся, ведь я не размаунтил именно этот компонент
Arczi
Не надо так
что именно? extend от PureComponent? почему?
Daniil
почему нет?
Зачем преждевременная оптимизация всего? Это бред имхо
Rrr
так можно наоборот просадить перфоманс)
Daniil
да и к тому же были эджкейсы с этим когда в ногу стреляло, рендер нужный например не происходил
Arczi
Зачем преждевременная оптимизация всего? Это бред имхо
а когда делать оптимизацию? когда аппка будет огромная?
Igor
что именно? extend от PureComponent? почему?
выпиливается shouldComponentUpdate
Maksim
Зачем преждевременная оптимизация всего? Это бред имхо
зачем использовать не pure если изначально не мутируешь?
Maksim
Ты читал зачем пьюр?
очевидно за тем что бы не было ререндеров
Daniil
и ответь мне на простой вопрос, что будет если пьюр компонент не принесет перфоманса, но при этом будет делать шелоу иквал
Igor
что именно? extend от PureComponent? почему?
представь что у тебя есть такой кейс, тебе нужно сделать какой-то экшен когда пришло 2ой раз одни и те же пропсы, с pure ты это не сделаешь
Daniil
очевидно за тем что бы не было ререндеров
лол, вырубай тогла это в шуд аптейде
Daniil
а ты ответь на вопрос "а если наоборот"?
Ты в 2+2 не можешь? Зачем тебе оптимизация, если она тебе не поможет? Если от нее нет пользы, она только утяжелит вычесления
Maksim
Ты в 2+2 не можешь? Зачем тебе оптимизация, если она тебе не поможет? Если от нее нет пользы, она только утяжелит вычесления
за тем что ререндер может произойти у парента и в чайлд придут те же самые пропсы и без пьюр чайлд сделает ререндер и все его чилды тоже сделают ререндер
Daniil
когда использовал классы всегда extend от PureComponent а тепеоь что то потерялся
@MaksimSidorov Перечитай мой реплай к > когда использовал классы всегда extend от PureComponent
Daniil
А теперь ответь мне зачем ты развел дискусию если не понял контекста моего ответа
Maksim
@MaksimSidorov Перечитай мой реплай к > когда использовал классы всегда extend от PureComponent
там где ты написал "не надо так"? я использовал до хуков во всех компонентах и считаю это нормальным так же как memo используется во всех компонентах проекта сейчас
Daniil
То есть ты хуяришь лишние вычесления для мемоизации даже там где она не принесет нихуя? Удачи
Daniil
В доке даже пишут зачем и когда ее использовать. Советую перечитать
Maksim
То есть ты хуяришь лишние вычесления для мемоизации даже там где она не принесет нихуя? Удачи
одни вычисления видим, другие видеть не хотим (я про построение всего рендер дерева)
Daniil
как сильно на перфоманс сказываются вычисление
Тестируй, я откуда знаю как у тебя будет
Maksim
В доке даже пишут зачем и когда ее использовать. Советую перечитать
по мемо в доке написана полная херь из разряда "ну вот если вы думаете что лучше не использовать мемо, то не используете, а если думаете что надо использовать тогда надо"
Daniil
в доке хрень, ага
Maksim
Тестируй, я откуда знаю как у тебя будет
откуда ты знаешь как у меня тогда?
Nikolai
То есть ты хуяришь лишние вычесления для мемоизации даже там где она не принесет нихуя? Удачи
Тут вчера лисичка или звездочка, хз как его, рассказывал как он все-все хендлеры в useCallback оборачивает для единообразия) это тренд какой то уже
Daniil
откуда ты знаешь как у меня тогда?
Ты опять не прочитал на что я ответил человеку, да ?
Maksim
так а нахуя ты везде используешь то?
что бы на каждое изменение парента не ререндерились все чилды, очевидно для этого это и придумано
Mikhail
я тебя спрашиваю про везде, ты в ответ про то что такое мемо...
Maksim
так а нахуя ты ВЕЗДЕ используешь то?
очевидно что бы нигде чилды не ререндерились при изменении парента, если у них пропсы не изменились, для этого это и сделано и мемо и pure
Mikhail
допустим, у тебя компонент кнопки. у нее нет чилдов. и нахуя там проверка в scu в случае pureComponent ?
Mikhail
тупо потому что ты решил везде хуярить ?
Daniil
оПтИмИзАцИя
Maksim
допустим, у тебя компонент кнопки. у нее нет чилдов. и нахуя там проверка в scu в случае pureComponent ?
у нее самой произойдет рендер, ей придут те же пропсы что и были до этого и произойдет вызов метода render (ну либо функции)
Igor
оПтИмИзАцИя
оптимизация курильщика)
Maksim
ессно это не перерисовка в доме
アレクサンダー・バキマトフ
оПтИмИзАцИя
пойди мой мр чекни, холиварит он тут)))
Dmitry
У него не класс
Соответственно откуда там scu и тем более пьюр? Как то ты набросился не на то
Dmitry
Привет, а может кто подскажет хорошее чтиво или вебинар, по юнит тестам реакт?
Maksim
Вы путаете ререндер и реконсиляцию
под рендером я подразумеваю вызов метода render в классе либо вызов функции которую представляет собой функциональный компонент то что это не перерисовка дом я упомянул
Dmitriy
под рендером я подразумеваю вызов метода render в классе либо вызов функции которую представляет собой функциональный компонент то что это не перерисовка дом я упомянул
Ну так а зачем отнимать у реакта свой хлеб? Часто сравнение пропов будет дороже чем сравнение состояния реактом. Не думали почему pure и memo не сделали по умолчанию?
Maksim
Ну так а зачем отнимать у реакта свой хлеб? Часто сравнение пропов будет дороже чем сравнение состояния реактом. Не думали почему pure и memo не сделали по умолчанию?
за тем что пропсом может быть объект который будет мутирован и его мутации отрисуются при ререндере как и должны, ничто не запрещает это делать
Maksim
это к тому почему не по умолчанию, кроме этого ничто не мешает сделать их по умолчанию, как и следовало сделать сразу
Vladimir
Добрый день, прошу помочь в установке пакетов проекта. Клонирую проект, открываю проект в консоле ввожу команду yarn , возвращается такая ошибка
Vladimir