Спустя некоторое время использования форм пришёл к выводу что пока они не покрывают все мои хотелки. Мне очень нравится подход с использованием html стандарта для форм, но видимо без доработки стандарта ничего не выйдет с нативной валидацией. Продолждаю сабмитить формы с помощью RHF. Ну а лоадеры использую с большим удовольствием, это реально удобней и чище чем useEffect.
А как решаете проблему, что тут подняли, с отсутствием глобального лоадер-фолбека для раута с лоадером? Вот нужно вам, к примеру, чтобы во время выполнения лоадера вместо компонента показывался спиннер. Вы весь компонент внутри заворачиваете в Suspense/Await?
Для перезагрузки страницы подразумевается сервер сайд рендер, и данные будут доступны сразу при отрисовке. Другое дело, что довольно новая концепция для React. Но имхо Remix молодцы, считаю их реализацию гениальной.
Когда видео про исходники useState? Как он работает под капотом? Как вызывает ререндер? Как при повторном вызове функции, в которой он используется, хук понимает какие данные ему нужно вернуть?
на самом деле я в сомнениях, стоит ли делать отдельное видео для useState. Так как там по факту в основном внутренние методы, которые нам особо ничего не прояснят. Про то где хранят стейт, там все просто, в самой файбер ноде хранят и каждый раз из него возвращают нам. Как вы знаете хуки всегда статичны их нельзя в if добавлять и в циклы. Поэтому первый useState всегда первый. Поэтому данные условно хранятся в массиве (в реальности в linked list). И всегда 0 эллемент массива, это первый useState, второй это второй и так далее
не понятно лишь нафига оно, в конце автор упомянул, но со мной это ощущение было весь ролик Если бы html подход к работе с формами не изжил себя лет так 15 назад - не было бы горы библиотек и новых подходов В компоненте столько странного, не удобного, ломающего, что жуть. И при этом он ничего не дает тебе. Вот это топ, вот это постарались
Нууууууу. Спорная штука. Валидация стандартными методами HTML как минимум выглядит неприглядно, а как максимум не перекрывает сценария, при котором, например, с сервера пришел ответ с типом: "Некорректный Email адрес", и его нужно где-то отобразить.
Тут, как я понял, разработчики реакт-роутера пытаются реализовать нативное браузерное поведение: в чистом html адрес страницы также, по-сути, управляется в том числе и при помощи тега form. Вот они и повторили эту историю, чтобы, так сказать, добавить реакт-обертку над стандартным поведением. Также как и компонент Link реализует нативное поведение ссылки
Валидация на сервере для форм должна быть ради безопасности самого сервера, но она не отменяет тот факт что фронтовая валидация тоже имеет место быть! Походу новый роутер стал на 2 порядка хуже предыдущий его вариаций (неудобный лоадинг, корявый сабмит и тд)
Что Loader, что Form віглядят максимально не юзабельніми. Но за видео однозначно спасибо. Интересно, как с єтим всем потом формируется бандл. Что попадает, что нет. Так как на даннім момент v6 весит уже почти в 3 раза больше чем v5
Я создавал issue на гитхабе, чтобы это в отдельный плагин может вынесли. Они грозились, что оно автоматически не попадет в бандл, если вы этим не пользуетесь
@@it-sin9k похоже что так и есть. Сборщик не бросает в бандл. Смотрели по версии 6.11 - размер роутера в бандле аппки явно меньше, чем на бандлсайз самой либы указанный в сервисе, который ты чекал в видео
React Remix затащили в React Router) В силу того что Remix использует React Router этот функционал был уже в ядре и просто решили допилить и предоставить API для использования без Remix. В Remix есть так же возможность прикрутить кастомную валидацию. Скорее всего и здесь появится спустя пару версий.
Спасибо!
Роутер 6.4 с каждой новой деталью кажется все более перегруженным.
Думаю пока лучше остановлюсь на 6.0.
Кто вас заставляет пользоваться новыми фичами?
@@The14Some1 а эти ненужные фичи в бандл не попадают? Загружаются по требованию?
@@nexus7172 вы описали работу тришейка, поздравляю
Как по мне роутер 6 версии слишком много на себя берет. Из-за того что эти ребята из remix решили навязывать как надо писать роутинг, сижу на 5 имхо
Праздник к нам приходит, праздник к нам приходит и счастья приносит и вкус бодрящий)) Видосы Синяка просто классны!)))
Какая-то невероятная хрень)) Столько запары ради такой простой задачи 🙁
Ждем теперь когда реакт роутер позволит реализовывать ssr 😁
Спустя некоторое время использования форм пришёл к выводу что пока они не покрывают все мои хотелки. Мне очень нравится подход с использованием html стандарта для форм, но видимо без доработки стандарта ничего не выйдет с нативной валидацией. Продолждаю сабмитить формы с помощью RHF.
Ну а лоадеры использую с большим удовольствием, это реально удобней и чище чем useEffect.
А как решаете проблему, что тут подняли, с отсутствием глобального лоадер-фолбека для раута с лоадером?
Вот нужно вам, к примеру, чтобы во время выполнения лоадера вместо компонента показывался спиннер. Вы весь компонент внутри заворачиваете в Suspense/Await?
@@The14Some1 исп. useNavigation
Невозможно не поставить лайк. Спасибо, родной!
Синяк, я по твои видосы всем рассылаю. все в восторге. Все подписываются.
Спасибо за помощь в продвижении канала. Это бесценно!)
Предлагаю в одном из следующих видео рассмотреть tanstack router. Новая библиотека, пока еще в бете, но отзывы о ней вроде положительные.
Спасибо, отличный контент!
спасибо за видео. но, в заголовке описочка в слове "совместили". извините, если не туда написал
Для перезагрузки страницы подразумевается сервер сайд рендер, и данные будут доступны сразу при отрисовке. Другое дело, что довольно новая концепция для React.
Но имхо Remix молодцы, считаю их реализацию гениальной.
так проблема же в том, что это не сервер сайд рендеринг :)
Когда видео про исходники useState?
Как он работает под капотом? Как вызывает ререндер? Как при повторном вызове функции, в которой он используется, хук понимает какие данные ему нужно вернуть?
на самом деле я в сомнениях, стоит ли делать отдельное видео для useState. Так как там по факту в основном внутренние методы, которые нам особо ничего не прояснят. Про то где хранят стейт, там все просто, в самой файбер ноде хранят и каждый раз из него возвращают нам. Как вы знаете хуки всегда статичны их нельзя в if добавлять и в циклы. Поэтому первый useState всегда первый. Поэтому данные условно хранятся в массиве (в реальности в linked list). И всегда 0 эллемент массива, это первый useState, второй это второй и так далее
совМестили) крутой видос!
Совместили 🤔
Заголовок надо бы поправить, а-то уже совесть замучила.
Только поправил) целый день на работе сильно занят был)
👍
Зачем гадать, для чего нужен и как работает React Router Form, когда можно сразу прочесть документацию?
Если бы там были все ответы, то конечно да)
не понятно лишь нафига оно, в конце автор упомянул, но со мной это ощущение было весь ролик
Если бы html подход к работе с формами не изжил себя лет так 15 назад - не было бы горы библиотек и новых подходов
В компоненте столько странного, не удобного, ломающего, что жуть. И при этом он ничего не дает тебе. Вот это топ, вот это постарались
Для самых простых форм может и прокатит, но для какиих-то динамических вряд ли
Как по мне, не очень получилось совместить несовместимое:) Лайк+коммент как всегда👍
Мое мнение
Это уже перебор
с 6ки добавили слишком много
хотя бы вынесли это в отдельный репо
Нууууууу. Спорная штука. Валидация стандартными методами HTML как минимум выглядит неприглядно, а как максимум не перекрывает сценария, при котором, например, с сервера пришел ответ с типом: "Некорректный Email адрес", и его нужно где-то отобразить.
Так же, как и результат обычной js-валидации, можно вернуть при выполнении action и получить через useActionData.
Байт на комментарии в названии видоса 😂😂😂😂
Случайно вышло) но комментов отхватил будь здоров))
Тут, как я понял, разработчики реакт-роутера пытаются реализовать нативное браузерное поведение: в чистом html адрес страницы также, по-сути, управляется в том числе и при помощи тега form. Вот они и повторили эту историю, чтобы, так сказать, добавить реакт-обертку над стандартным поведением. Также как и компонент Link реализует нативное поведение ссылки
Очень полезный ролик!
Спасибо!
круто
Валидация на сервере для форм должна быть ради безопасности самого сервера, но она не отменяет тот факт что фронтовая валидация тоже имеет место быть! Походу новый роутер стал на 2 порядка хуже предыдущий его вариаций (неудобный лоадинг, корявый сабмит и тд)
@АйТиСиняк спасибо за обзор
👏👍
Что Loader, что Form віглядят максимально не юзабельніми. Но за видео однозначно спасибо. Интересно, как с єтим всем потом формируется бандл. Что попадает, что нет. Так как на даннім момент v6 весит уже почти в 3 раза больше чем v5
Я создавал issue на гитхабе, чтобы это в отдельный плагин может вынесли. Они грозились, что оно автоматически не попадет в бандл, если вы этим не пользуетесь
@@it-sin9k похоже что так и есть. Сборщик не бросает в бандл. Смотрели по версии 6.11 - размер роутера в бандле аппки явно меньше, чем на бандлсайз самой либы указанный в сервисе, который ты чекал в видео
React Remix затащили в React Router)
В силу того что Remix использует React Router этот функционал был уже в ядре и просто решили допилить и предоставить API для использования без Remix. В Remix есть так же возможность прикрутить кастомную валидацию. Скорее всего и здесь появится спустя пару версий.
Мегахарош!
Они, кстати, нативный уклон формы взяли из Remix, на котором сайт доки и написан. Думайте сами))
В названии ролика в слове "Совместили" букву пропустил)
В заголовке к ролику ошибка - совМестили не совместимое, наверное?
просто пересказ документации
Роутер в ремикс превращается
Спасибо, хороший контент
Круто! Спасибо!
Мб "совМестили"*?
Спасибо тебе
ясно
Спасибо, синяк!
Как по мне так фича с гет запросом явно не допилена, мб оставили полную реализацию до мажорного обновления?)
жду с нетерпением конечной имплементации))
Стал немножко похожым remix js
Его одни и те же разработчики делают
Респект и благодарность 🙏
Народ, лайки ставм ЛАЙКИ 😃. Синяк выпускает толковые гайды
спасибо!)
@@it-sin9k добавьте, наконец, пропущенную букву в названии. Вам уже человек 10 написали :)
сегодня целый день в запаре был) только отредактировал) спасибо)