Yury
В сокращении кода на 50%
++. Для меня ещё и понятнее чем классы )
Алексей
Хм, ну а когда компонент сложный на весь экран, его тоже функциональным компонентом делаете и когда сокращается ?)
Vadim
Хм, ну а когда компонент сложный на весь экран, его тоже функциональным компонентом делаете и когда сокращается ?)
Ты можешь вынести много в кастомные хуки. С классами такое не всегда можно сделать
Артем
Ты можешь вынести много в кастомные хуки. С классами такое не всегда можно сделать
А можно пример? Имхо с классами наоборот понятнее и привычнее
Китикет
Сложный компонент наоборот легким становится с хуками)
Vadim
А можно пример? Имхо с классами наоборот понятнее и привычнее
Примеров нету у меня. Но я это говорю из опыта работы, мы уже долгое время пишем на функциональных компонентах. В большинстве кейсов классовые компоненты не нужны и добавят только больше кода. Ты попробуй сам пописать на хуках. Аргумент «привычнее» такое себе.
Vadim
А можно пример? Имхо с классами наоборот понятнее и привычнее
Ну как пример можно привести я делал хук кастомный для IntersectionObserver. Не думаю что я бы смог в классах такую же переиспользуемую вещь написать. Только если миксины использовать, но это совсем плохо
Китикет
Намного приятнее, когда подключенный функционал очевиден и не надо разбираться в слое из 10 хоков
Александр
Хуки позволяют выделить разнообразную логику в переиспользуемые функции, которые легко (в отличии от хоков) поддаются композиции и легко типизируются. Возвращается обратно в мир классов с хоками и разнообразной логикой размазанной по life cycle методам просто не хочется.
Алексей
Вот ещё
Тут по факту только методы жизненного цикла сократили, только с ними же понятнее когда ты четко видишь на каком этапе что происходит ?)
Александр
Я сталкивался, но такой компонент был один на несколько тысяч
Все равно не представляют почему классы там удобнее, скорее нужно попробовать разбить на более мелкие части компонент монстр
Андрей Чайковский
Алексей
Меняется userId - исполняем функцию. Куда понятнее?)
Не всегда когда меняется надо исполнять
Андрей Чайковский
Все равно не представляют почему классы там удобнее, скорее нужно попробовать разбить на более мелкие части компонент монстр
Да он и не монстр, там было дело зависимости стейта и функции, только через this решалось
Vadim
Тут по факту только методы жизненного цикла сократили, только с ними же понятнее когда ты четко видишь на каком этапе что происходит ?)
Вызвали. useEffect с пустыми deps - получили примерный аналог cDM, возвращаем из этого useEffect функцию - получаем примерный аналог cWUm
Vadim
Не всегда когда меняется надо исполнять
Ну если не всегда надо, значит надо не такой хук писать, лол
Алексей
Ну типо при первом ренбере может не надо, а в тстальных надо, вот и есть 2 метода didupdate и willupdate
Vadim
Ну типо при первом ренбере может не надо, а в тстальных надо, вот и есть 2 метода didupdate и willupdate
Ты посмотри в cdU - если предыдущий userId не равен следующему - вызови функцию.
Ivan
Я никогда не испытывал столько удовольствия от работы с реактом, как в тот раз, когда написал хук useToggle: (initialState: boolean) => [boolean, (forceFlag?: boolean) => void] Просто, но так охеренно. Во всех модалках, дропдаунах, аккордеонах и прочей чепушне больше не нужно описывать стейт и хендлер. Найс.
Алексей
Блин, всмысле didmount и willmount) простите еще не проснулся)(
Александр
Да он и не монстр, там было дело зависимости стейта и функции, только через this решалось
Спорить не стану, но мне кажется там скорее архитектурная трудность была, из-за этого и проблемы
Алексей
Ну да понял
Vadim
Ну типо при первом ренбере может не надо, а в тстальных надо, вот и есть 2 метода didupdate и willupdate
Так всм при первом рендере не надо?) а когда ее запускать, если эта функция раньше дергалась в cdM?
Алексей
Кстати, а тогда вопрос, тас есть листнеры, где они подчищаются в хуках ?
Александр
Я никогда не испытывал столько удовольствия от работы с реактом, как в тот раз, когда написал хук useToggle: (initialState: boolean) => [boolean, (forceFlag?: boolean) => void] Просто, но так охеренно. Во всех модалках, дропдаунах, аккордеонах и прочей чепушне больше не нужно описывать стейт и хендлер. Найс.
Такое же было чувство первый раз, и ведь это самый примитивный пример, аналогичным же образом можно перемещать и реюзать в хуках сколько угодно сложную логику и поведение, это действительно офигенно
Алексей
Ты внимательнее примеры смотри
Благодарю, увидел. Ну все на месте, просто для меня с хуками код превратился в кашу непонятную)) ровно обратный эффект )
Nikolai
Ты внимательнее примеры смотри
Хоть бы дебаунс добавил чтоли
Vadim
Благодарю, увидел. Ну все на месте, просто для меня с хуками код превратился в кашу непонятную)) ровно обратный эффект )
Тебе надо просто на них пописать. Там все максимально просто. Не надо думать в каком там методе жизненного цикла надо чето делать. Надо, например, запросить данные о новом пользователе, когда поменялся айди пользователя - запускаем функцию в useEffect и всё, вообще не надо думать
Алексей
Когда пару дней попишешь с хуками, поймешь, что все наоборот
Не уверен, яж говорю я на RN пишу, тас впринципе структура чуть другая, мы делаем экранами, и как то из функционального компонента норм экран не сделаешь )
Vadim
И passive: true
Это ж тупо код для примера, че вы вообще пишите тут какие то замечания?)
Vadim
Не уверен, яж говорю я на RN пишу, тас впринципе структура чуть другая, мы делаем экранами, и как то из функционального компонента норм экран не сделаешь )
https://medium.com/crowdbotics/build-a-react-native-app-with-react-hooks-5498e1d5fdf6 ну хрен знает, вот первая ссылка в гугле, вроде норм все с хуками в RN
Vadim
Клянешься, что не с боевого проекта сфотал?)
ты нормальный, нет? Это даже не мой скриншот https://t.me/react_js/792187
Алексей
https://medium.com/crowdbotics/build-a-react-native-app-with-react-hooks-5498e1d5fdf6 ну хрен знает, вот первая ссылка в гугле, вроде норм все с хуками в RN
Сами то они работают норм, просто вот особого применения им не видно, если компонент простой, то там впринципе рендер и 2 функции и все. А если сложный, то добавляется и контекст и навигация и хоки и куча пропсов, и как то в функциональном сложно все это обработать последовательно и не запутатся )
Алексей
Ок
Александр
Сами то они работают норм, просто вот особого применения им не видно, если компонент простой, то там впринципе рендер и 2 функции и все. А если сложный, то добавляется и контекст и навигация и хоки и куча пропсов, и как то в функциональном сложно все это обработать последовательно и не запутатся )
Так напротив проще с хуками в функциональных компонентах, избавитесь от hoc-ада, когда не понятно какие пропсы откуда берутся, контекст тоже элементарно использовать с хуками, причём сможете множество разных контекствов использовать
Алексей
Как хуками сделать panresponder ?)
Vadim
Сами то они работают норм, просто вот особого применения им не видно, если компонент простой, то там впринципе рендер и 2 функции и все. А если сложный, то добавляется и контекст и навигация и хоки и куча пропсов, и как то в функциональном сложно все это обработать последовательно и не запутатся )
Я хз, мне кажется, у тебя какие то надуманные проблемы и ты просто не хочешь попробовать переписать на хуки какой-нибудь компонент. Все что ты перечислил вообще никак не мешает использовать хуки в работе.
Vadim
Как хуками сделать panresponder ?)
https://github.com/bmcmahen/react-gesture-responder первая ссылка в гугле. Оно?
Vadim
Как хуками сделать panresponder ?)
Но так то ты и сам можешь написать свой кастомный хук который реализовать это будет.
Александр
Как хуками сделать panresponder ?)
А там разве какая-то привязка к классовым компонентам?
Алексей
https://github.com/bmcmahen/react-gesture-responder первая ссылка в гугле. Оно?
Не, это уже готовый, а сам по себе панреспондер это обработчик сенсорных жестов, и если ты хочешь какой-то компонент слелать отвечающим на жесты, его нужно в правильные мосенты воткнуть. Не думаю что невозможно с хуками, но всегда есть дочерние предстааления, которые в определенный момент тоже должны отвечать на нажатия, перехватывать или нет, а иногда впринципе обработку перенести в нативный код, чтоб обработку не в жс потоке делать, а в нативном. У функциональных как то недостаточно фкнкциональности для этого )) Но может я ошибаюсь. Увы спорить и разбиратся пока некогда ) Но когда нибудь попробую обязательно )
Vadim
Как хуками сделать panresponder ?)
https://facebook.github.io/react-native/docs/panresponder const [_panResponder, createResponder] = useState(null); useLayoutEffect(() => { createResponder(PanResponder.create({/* insert handlers */})); }, []) return <View {…(_panResponder ? {} : _panResponder.panHandlers)} /> Я не эксперт по RN, но мне кажется с вероятностью в 90% так вот будет работать.
Orest🇺🇦
парни не работает роутинг на елемент списка, вот скрины
Orest🇺🇦
не могу спамить, если кто знающий напишити в ПМ
Ivan
парни не работает роутинг на елемент списка, вот скрины
Парни, у меня ноги, вот фотка ног. Не могу ездить на велосипеде. Если кто что-то знает — напишите в личку.
Vlad
парни не работает роутинг на елемент списка, вот скрины
Роутинг, не работают парни на скрины списка, вот элемент
Valentin
не могу спамить, если кто знающий напишити в ПМ
Так проблема в том, что ты не можешь спамить?
Orest🇺🇦
стор с mobx
Valentin
Блин. А мне нравится как реакт перешёл в функциональный стиль. Все эти хуки... рили классно. На много меньше кода писать.
Orest🇺🇦
А что за ‘useStore’?
проблема в том что не переходит при клике на линк итем на компонент при том что все написано верно, чтоб показать все детально предлагаю знающему человеку отправить все в ПМ чтоб не срать здесь
Valentin
проблема в том что не переходит при клике на линк итем на компонент при том что все написано верно, чтоб показать все детально предлагаю знающему человеку отправить все в ПМ чтоб не срать здесь
Что отдаёт generatePath? Не хочешь срача выложи листинг кода куда то онлайн. Что бы мы могли запустить и проверить. Пока будешь писать мб сам найдёшь ошибку. Или попробуй упростить свой алгоритм.
Orest🇺🇦
А что в useEffect происходит?
получаю список продуктов, продукты приходят нормально, список отображает, при клике отображает верный роут (например http://localhost:3000/products/32) но перекидает не на елмент с нужным контентом а на пустую страницу, тоесть роутинг не сработал
Tasen
Всем привет, есть проблема, через постман делаю запрос на авторизацию к rest api, в body указываю логин и пароль, все нормально, пробую через axios приходят некорректные данные, со статусом 200 и с пустым токеном axios.post(API_URL+'/login',payload.requestBody) .then(response => { let data = response; handleCallback(response); }) .catch(error => { handleCallback(error) })
Vlad
Ну у тебя только 2 роута я вижу. Home auth