Alex
уберите i в конце
Спасиб, как раз открыл статью))
Zhanadil
useEffect как могу использовать в стрелочной функции? Везде в примерах пишут функцию с es5
Dmitry
Хуки в функциях ведь нельзя использовать. Не правильно
Кирилл
useEffect(() => { })
Vlad
Всем привет. Чтобы понять хуки обезательно ли читать про компонентДидАпдейт и тп? Или можно сразу читать про хуки
Konstantin
Всем привет. Чтобы понять хуки обезательно ли читать про компонентДидАпдейт и тп? Или можно сразу читать про хуки
Желательно понимать какие есть жизненные циклы у компонента и зачем они Так что да, лучше начать с них
Konstantin
лучше не начинать. зачем потом переучиваться?
да можно вообще js не учить зачем оно все - по туториалам навертел проект и готово
Андрей
да можно вообще js не учить зачем оно все - по туториалам навертел проект и готово
Для доказательства с помощью аналогии сначала корректность перехода неплохо было бы доказать.
Roman
да можно вообще js не учить зачем оно все - по туториалам навертел проект и готово
js остается собой дажн в реакте, а про лайфсайклы во всех статьях включая доку написано, что "хуки - это не как лайфсайклы, это другое, переучивайтесь, учитесь мыслить хуками"
Roman
"учитесь мыслить хуками"... Паубывал бы.
но это правда, подход другой, и пока мозги нее переключишь - пишешь не то
Roman
https://wattenberger.com/blog/react-hooks вот например
Андрей
но это правда, подход другой, и пока мозги нее переключишь - пишешь не то
Это другой подход только для тех, кто "учится программировать на риакте". Ну нельзя людей воспитывать в подобной манере.
Roman
ну хз, может ты и прав
Aleksandr
Привет, пытаюсь авторизоваться в своём приложении через linkedin, но при попытке это сделать вылазит ошибка с корсами. Посоветуйте, что сделать?
Aleksandr
А ты не из россии?
Из Беларуси
Oleg
Нет
нет и?
Vadim
нет и?
useEffect можно отслеживать изменения данных. Уже не только про лайфсайклы
🦜
так лайфсайклы это же только про useEffect, не?
В классе ты бы не смог так удобно разбить логику. У тебя было бы ветвления и проверки в одном методе
Андрей
Мне нужно разбираться в редаксе, чтобы браться за эффектор?
Тебе нужно понимать как пользоваться инструментом только по пониманию как он работает.
Vadim
Или там таки другие подходы и знания не смежны?
Иммутабельность функций, обновляющих стейт)
Oleg
я либо вопрос не так написал, либо вы не так прочитали. в чём особый прикол "учить хуки вместо классов", если все хуки, которые имеют отношения к классам - это useEffect и useState? по итогу очень желательно знать и то и то.
Oleg
што
Андрей
Понимать как понимание понимается, да?
Да. Тавтология. Знаешь как работает продукт => знаешь как пользоваться им. Должно выполняться именно так, не наоборот.
Ivan
"учитесь мыслить хуками"... Паубывал бы.
Ну так и что неправильного в призыве понимать инструмент и думать в предлагаемой им парадигме?
Oleg
Ну так и что неправильного в призыве понимать инструмент и думать в предлагаемой им парадигме?
ну, как минимум лайф сайклы никуда не уходит и их надо знать. плюс легаси никто не отменял. многие проекты хуки не используют или только переходят на них.
Mikhail
Иммутабельность функций, обновляющих стейт)
Что за понятие «иммутабельность ф-й» ? про имутабельность данных - знаю, про чистые ф-и тоже знаю, но вот иммутабельность ф-й - что то новое для меня
Ivan
ну, как минимум лайф сайклы никуда не уходит и их надо знать. плюс легаси никто не отменял. многие проекты хуки не используют или только переходят на них.
Никто ж не говорит, что лайфсакл не нужно знать. Там выше говорили, что перед изучением хуков нужно изучить лайфсайкл. А это разные вещи. Не связанные. Обе надо знать. И разницу между ними нужно знать. Но не нужно считать, что хуки — это новый лайфсайкл и нужно старый сначала изучить.
Андрей
Ну так и что неправильного в призыве понимать инструмент и думать в предлагаемой им парадигме?
В том, что при использовании любого другого инструмента ты будешь пытаться решать эти задачи по старому.
.
но вообще как такового понятия нет, взято с комьюнити скорей всего
Mikhail
Ты придираешься. Конечно я про чистоту функций и обновление стейта не мутируя исходный.
я не придираюсь, я за то, что бы вещи своими именами называли и не путали других, темболее начинающих
Андрей
В том, что при использовании любого другого инструмента ты будешь пытаться решать эти задачи по старому.
И практика показывает, что люди, которые научились пользоваться молотком, очень плохо осваивают микроскоп.
Артем
https://wattenberger.com/blog/react-hooks - ссылка интересная, спасибо... но по ней так и не ясно, во что "мутирует" componentWillUnmount() - если у меня есть классовый компонент, который "связывается" с чем-то в componentDidMount() - то я отвязываю его в componentWillUnmount()... а как быть с функциональным?
Anonymous
() => new Date()
норм пример)
.
такая ф-я называется чистой
не совсем, чистая фукнция не может вызывать сайд эффекты
Андрей
такая ф-я называется чистой
Отнють. Чистая функция не имеет сайд-эффектов. Работа с памятью - сайд эффект.
Артем
эммм... верно я понимаю, что... componentDidMount() { this.t = setInterval(...) } componentWillUnmount() { clearInterval(this.t) } равносильно: useEffect(() => { t = setInterval(...); return () => { clearInterval(t); } }, [data])
Андрей
Почему это?)
Вот такая вот практика вокруг меня. Люди учат инструменты, а не принципы работы.
Ivan
Вот такая вот практика вокруг меня. Люди учат инструменты, а не принципы работы.
Может проблема не в людях, а в том, как ты выбираешь окружение?)
Артем
Не равносильно. Равносильно будет useEffect(() => { t = setInterval(...); return () => { clearInterval(t); } }, [])
эээ... а чем это отличается от моего варианта? может не увидели исправления - отправилось случайно
Андрей
Может проблема не в людях, а в том, как ты выбираешь окружение?)
Вполне возможно. Поделишься рецептом как выбирать нормальное окружение?
Артем
ммм, а в чем тут роль этого параметра?
.
ммм, а в чем тут роль этого параметра?
при любом изменении этого параметра будет вызываться ваш useEffect
.
а вообще да, читайте доку, там всё написано и очень толково
Артем
при любом изменении этого параметра будет вызываться ваш useEffect
эге, т.е. если я указываю "пустой" - то вызов будет только при создании, и соответственно вызов функции при удалении... просто изменения не приведут к повторному вызову и пересозданию таймера... а если я укажу [data] (оно же пропсы по сути), то при любе их изменение будет приводить к пересозданию таймера - все верно?
Alexey
зачем нужна документация, когда можно всегда потыкать вопросами людей в чате
Артем
зачем нужна документация, когда можно всегда потыкать вопросами людей в чате
когда документация не дает понимания... вот я ее сейчас читаю и пытаюсь понять... к примеру - https://ru.reactjs.org/docs/hooks-effect.html тут вообще нет никаких параметров вызова так то!
🦜
ммм, а в чем тут роль этого параметра?
открывай доку, после этого вопроса
Mikhail
Отнють. Чистая функция не имеет сайд-эффектов. Работа с памятью - сайд эффект.
Это второе условие что бы ф-я считалась чистой, перввое что бы данные не мутировала т.е как выразился автор предидущего поста - «сохраняет иммутабельность данных». Я думаю что ты дополнил мой ответ
Maxim
Mobx Есть у меня запрос который берет кучу данных, эти данные нужно разпихать по разным сторам, как лучше это реализовать?
Kirill
Гайс, а как правильнее тестировать компоненты? Напирмер есть такой компонент class Test extends PureComponent { onClick = () => { dispatchAction() } } Так вот, как лучше написать тест? проверять что при onClick вызвался dispatchAction с undefined, или проверять что при onClick изменилась строра в соответствии с тем, что делает dispatchAction? С одной стороны логично что надо тестить как в первом случае, с другой стороны, мы может при рефакторинге ломать тесты, например появился новый супер метод который делает все что мне надо и заменил dispatchAction на него, и в итоге у меня упали тесты, из-за того что dispatchAction не вызвался, но поведение все еще корректно
Maxim
Mobx Есть у меня запрос который берет кучу данных, эти данные нужно разпихать по разным сторам, как лучше это реализовать?
Мне приходит на ум что бы родитель этих сторов отправлял ну а там уже через ребенков запихивал данные