Релиз NextJS 14 и Server actions

  Рет қаралды 17,957

Михаил Непомнящий

Михаил Непомнящий

Күн бұрын

Пікірлер: 64
@Ispolnitelnyy
@Ispolnitelnyy Жыл бұрын
Больше контента! Спасибо за свежатину)
@Joi-w2t
@Joi-w2t Жыл бұрын
ура наконец то дождался next)) пожалуйста, сделайте более продвинутый урок по авторизации в next. например как сделать вход по почте + паролю, как сделать регистрацию, очень интересна работа с токенами (если у меня сервер возвращает два токена jwt). как сделать вход по google кнопке и при этом сохранить токены итд
@hacktau
@hacktau Жыл бұрын
next auth в помощь
@Den-yg4wz
@Den-yg4wz Жыл бұрын
@@hacktau а как там все кастомизировать? чтобы не на аглицком аутентификация была. Много вопросов. Будем благодарны за обстоятельный обзор этого инструмента и как его реально использовать на проде.
@hacktau
@hacktau Жыл бұрын
@@Den-yg4wz через next-intl можно
@angryprops
@angryprops Жыл бұрын
Да, тоже очень интересна эта тема, видео было бы очень полезно
@TheRainGameTM
@TheRainGameTM Жыл бұрын
Так есть же видос NextJS 13. Аутентификация и приватные роуты, там в целом база библы next auth описана
@pavelsmirnov9818
@pavelsmirnov9818 Жыл бұрын
Было бы здорово, если Михаил разобрал тему FSD, если был опыт работы с этой методологией. Тезисный обзор сущностей дополненный мыслями на основании из своего опыта (опять таки, если он есть)
@DevAr4y
@DevAr4y Жыл бұрын
спасибо, доходчиво и понятно.
@omg-go4vf
@omg-go4vf 9 ай бұрын
Спасибо добрая душа
@ХусейнНаимов-ь6х
@ХусейнНаимов-ь6х Жыл бұрын
красавчик
@sabrenda
@sabrenda Жыл бұрын
Михаил, добрый день! а можете выпустить видео с работой User-agent для определения устройств) так как на next js в проектах SSR и CSR часто используется вместе это вызываем проблемы, потратил день чтобы решить проблему с этим, ну и работу с svg тоже интересно показать) и конечно же спасибо за годный контент!)
@stasprykhodko938
@stasprykhodko938 Жыл бұрын
Добрый день, Михаил. Во всех видео о server action разбор идет в ключе работы с формой. Где еще может и должен применяться server action? Server action функция всегда содержит директиву 'use sever', хотя во всех разборах данная функция и так находится в серверном компоненте - это такой синтаксис и может ли Server action располагаться внутри "use client" компонента/страницы?
@alexvoid8717
@alexvoid8717 10 ай бұрын
Server Actions are not limited to and can be invoked from event handlers, useEffect, third-party libraries, and other form elements like .
@rustamakhmetyanov4404
@rustamakhmetyanov4404 Жыл бұрын
Люди, использующие next в больших проектах, говорят 13 версия принесла немало багов, и вообще она сыровата ещё, а тут выкатили 14 версию😅
@prostojustme
@prostojustme Жыл бұрын
Да , есть такие баги. Но многих из них исправили в версии 13.5 )
@Alexander_1ov
@Alexander_1ov Жыл бұрын
Очень доходчиво и понятно. Спасибо за видео. А в чем преимущество использовании форм в серверных компонентах в отличии от клиентских? Просто чтобы нагрузку с клиента перенести на сервер?
@mishanep
@mishanep Жыл бұрын
Меньше JS на клиенте - быстрее загрузка страницы. Но тут зависит от требований. Когда нужна сложная валидация на клиенте, то без JS всё равно не обойтись. Но есть и немало сценариев, когда достаточно серверной части. Исторически это были form action, так что это возвращение к истокам.
@Alexander_1ov
@Alexander_1ov Жыл бұрын
@@mishanep спасибо за ответ)
@pulsarbitw5335
@pulsarbitw5335 Жыл бұрын
Михаил, здравствуйте! В процессе изучения next.js столкнулся с проблемой. global-error.jsx (error компонент ) НЕ перехватывает ошибки в корневом layout'e. В документации написано, что для перехвата ошибки в корневом layout'e необходимо использовать global-error.jsx, НО он этого не делает. Пытался найти решение и постоянно натыкаюсь на наличие проблемы, но без ее решения. (P.S. заметки: в корневом layout'e делаю обычный throw new error("...") для проверки работы global-error, а в global-error.jsx - стандартный return ( ...), global-error лежит на верхнем уровне app - где и должен; версия next.js - 14.0.2 )
@Den-yg4wz
@Den-yg4wz Жыл бұрын
🔥🔥🔥Михаил спасибо за ратные труды! 🙏🙏🙏 Подскажите по секрету, как вы сделали такую красивую цветную консольку? Будем благодарны! ) ♥
@mishanep
@mishanep Жыл бұрын
Я использую iTerm терминал. Там много любопытных фишек.
@alexanderbaltsevich9270
@alexanderbaltsevich9270 Жыл бұрын
Здравствуйте Михаил :) Спасибо за труды! Пытаюсь переварить Server Actions. И не могу понять, какую выгоду мы получили в рамках вашего видео от Server Actions. По факту мы переложили запрос с клиента на сервер, а какой профит от этого? Ведь точно так же могли и с клиента сделать запрос. Буду благодарен ответу :)
@mishanep
@mishanep Жыл бұрын
В серверных экшнах может быть прямой запрос к базе данных, чего на фронте мы сделать не можем.
@alexanderbaltsevich9270
@alexanderbaltsevich9270 Жыл бұрын
@@mishanep А есть в этом какая то ценность? Как работает бэкэнд в реальности. Там еще целая череда мидлваров и разных проверок прежде чем, хоть что то добавить в базу данных. Та же регистрация, которая проверяет целостность данных, потом проверяет наличие пользователя в базе. Создает токены и т.д.. Не будем же мы все это писать в серверных экшенах. И тоже самое нам нужно и для логина и для большинства других экшенов.
@mishanep
@mishanep Жыл бұрын
Здесь вопрос выбора архитектуры. Next может быть как полноценным бэкендом, и тогда да - так или иначе какие-то проверки внутри экшнов понадобятся. Либо это прослойка до бэкенда. На моей работе используется именно как прослойка, а бэк на Java.
@evgenstepanov6319
@evgenstepanov6319 Жыл бұрын
С bind конечно на костыль скорее похоже)
@HEX_CAT
@HEX_CAT Жыл бұрын
❤🎉
@SaDaMaZaHaKa
@SaDaMaZaHaKa Жыл бұрын
Михаил доброго вам времени суток, наверное пишу свой первый комментарий, но не могу сказать что вы прекрасно преподносите материал, но смотря это видео и читаю документацию оф по Server Actions возник вопрос, надеюсь вы на него ответите. Я думал что вся суть Server Actions это в том что она позволяет нам управлять формой на серверной компоненте и плюс к этому если в браузере не загрузиться js может из за медленного интернета, форма будет все равно работать что говорит про оптимизацию некую. Но читаю статью в документации они используют такое новые хуки по управлению формы как useFormState, useFormStatus, useOptimistic. Как вы по итогу думаете в чем суть теперь Server Actions если у нас клиентские компоненты судя по документации.
@mishanep
@mishanep Жыл бұрын
Суть server actions в мутации данных. А конкретно - как альтернатива REST API точкам. Касаемо новых хуков - это уже новшества react и react-dom, идущие как экспериментальные и пока не доступные в стабильных релизах. Плюс, на официальной документации реакта по хуку useFormStatus нет ни слова о NextJS. Примеры в официальной доке выглядят любопытно, но пока не было релиза этих хуков, говорить о них рано.
@pulsarbitw5335
@pulsarbitw5335 Жыл бұрын
Привет, Михаил. Вопрос не по теме видео, но все же. Хотелось бы узнать насколько важно понимание работы createEntityAdapter в RTK, нужно ли разбирать эту тему в документации подробно или хватит поверхностного ознакомления? А так же как часто вы встречали createEntityAdapter на своей практике?
@mishanep
@mishanep Жыл бұрын
Я считаю это самый недооцененный функционал в редаксе, по крайней мере в проектах, что мне доводилось участвовать. Последние полгода я редаксом не пользуюсь по работе. Но в целом, чем лучше вы ознакомитесь с этой фичей, тем больше выгоды сможете выжать из нее.
@pulsarbitw5335
@pulsarbitw5335 Жыл бұрын
спасибо @@mishanep
@hotmetallic
@hotmetallic Жыл бұрын
Если action серверный,то как почистить форму на клиенте после submit-а?
@un_defined
@un_defined Жыл бұрын
он умеет вернуть результат работы, после получения - сбросить
@Taiga_libertarian
@Taiga_libertarian Жыл бұрын
оу май год 😱😱😱😱 опять?
@СергейДенисенко-к4к
@СергейДенисенко-к4к Жыл бұрын
Странно... Почему-то отправляет вовсе не в json не смотря на stringify...
@jemand-i5m
@jemand-i5m Жыл бұрын
как раз столкнулся с проблемой обновления серверного компонента с помощью форм экшен...посмотрим смогу ли разобраться с помощью этого видео
@Sergey_Klimov
@Sergey_Klimov 8 ай бұрын
Редирект работает только потому, что компонент формы является северным. Попробуйте сделать этот компонент клиентским и никакой редирект не сработает а будет выбрасывать ошибку. Я например хочу сделать валидацию формы на стороне клиента, потому она у меня клиентская и получается, что серверные экшны являются просто бесполезными если они только и могут, что выбрасывать ошибки
@mishanep
@mishanep 8 ай бұрын
Здесь можно по-разному подойти к решению этого вопроса. Первое, что приходит в голову вложить в форму (серверный компонент) клиентские компоненты с инпутами, и валидировать их по мере заполнения (или потери фокуса). Та же кнопка отправки формы может быть неактивна до тех пор пока поля не заполнены корректно.
@Sergey_Klimov
@Sergey_Klimov 8 ай бұрын
@@mishanep и получается, что всякие библиотеки по типу react-hook-form теряют свой смысл. Я не могу представить себе как я буду связывать такие инпуты как "пароль" и "повторение пароля" друг с другом. Как кнопка будет знать о состояниях инпутов, если она является отдельным клиентским компонентом. Все настолько туманно. Какой то общий стор делать для них что-ли)
@РостиславМартынюк-ц9м
@РостиславМартынюк-ц9м 6 ай бұрын
Как при использовании сбросить input? Данные остаются, только переводить в клиентский компонент? Я получаю данные через fetch и не использую состояния, потом добавляю форму и через серверный экшн добавляю новые данные в json, они появляются на странице, но форма остается со старыми данными
@biLLie_wiLLie
@biLLie_wiLLie Жыл бұрын
а в чем заключается здесь проблема с безопасностью?
@mishanep
@mishanep Жыл бұрын
Там речь о том, что когда начинаешь миксовать концепрты фронта и бэка, есть риск нечаянно сенситивные данные отправить в разметку. Next уже даже придумал концепт как предотвратить это, назвав его taint, но он пока в Альфе. У них в блоге большая статья на тему безопасности.
@НикитаФесько-о8ц
@НикитаФесько-о8ц Жыл бұрын
Очень хорошее видео. Ноя у меня пару багов, открыл ваш гит и тоже вроде пару багов если открыть сайт. когда создашь посты к примеру пост 5 пост 6 пост 7 , потом удаляешь их, а потом опять создаешь с другим контентом то все равно кидает тебя на уже созданные пост 5 пост 6 и пост 7 , несмотря на то что тайтл и контент другой. И потом вовсе их удалить нельзя. Или это я чего-то не понимаю
@mishanep
@mishanep Жыл бұрын
Там могут быть нюансы с кэшированием. По-хорошему, БД должна создавать каждый раз уникальный id. В моем примере используется моковый бэкенд, поэтому он может местами криво работать.
@НикитаФесько-о8ц
@НикитаФесько-о8ц Жыл бұрын
спасибо)@@mishanep
@shrek95372q
@shrek95372q Жыл бұрын
Используй доверенные методы с пхп к черту некст он всегда лагает и багов куча когда просыпаешься уже поздно ибо продакшн и бабки миллиардовые
@jonyonee
@jonyonee Жыл бұрын
Как отключить роутер кэш на клиенте в next 14?
@mishanep
@mishanep Жыл бұрын
Полагаю, здесь не должно быть отличия с 13-й версией. Встроенный fetch имеет опциональный третий параметр, который управляет кэшированием. Где-то я об этом на канале рассказывал в цикле по нексту.
@jonyonee
@jonyonee Жыл бұрын
@@mishanep Я не про кэш запросов и данных. Я про роутинг некста его кэш.
@wolfern5449
@wolfern5449 Жыл бұрын
Добрый день, может кто-нибудь обьяснит почему если я создаю action внутри page.tsx мне надо явно прописывать что это use server, разве страницы это не априори серверные компоненты, если вопрос глупый заранее извеняюсь, первую неделю разбераюсь с Next js
@Названиеэтогоканала
@Названиеэтогоканала 6 ай бұрын
Добрый, как Я понял use server указывается, когда необходимо строго определить работу модуля. Например, есть главный модуль и дочерний. Главный выполняется на стороне клиента, следовательно и дочерний тоже переходит на выполнение на стороне клиента. Если же в дочернем указать use server, то он будет строго выполнятся на стороне сервера. Поправьте, пожалуйста, если ошибся. Сам только только начал изучать)
@admall5596
@admall5596 Жыл бұрын
Во, уже можно выпиливать experimental: { serverActions: true, }, Еще в то время успел распробовать и уж очень зашло...
@ogg_gang
@ogg_gang Жыл бұрын
становится похоже на php, в котором мы серв и фронт пишем в одном файле. как-то грустно... а куда же денутся хуки? по сути реакт там и не нужен, нужен только jsx
@paqstd-yt
@paqstd-yt Жыл бұрын
Разработчики next.js изобрели php
@abbze8272
@abbze8272 Жыл бұрын
Вообще лютую эко-систему наворотили. Скоро в angular превратят))
@ogg_gang
@ogg_gang Жыл бұрын
не видел твой коммент, то же самое написал. ахах обидно как-то, убили все основные концепции реакта, теперь его можно не учить. JSX знаешь и вперёд
@Илья-ж8ч8о
@Илья-ж8ч8о Жыл бұрын
Простите меня конечно, но нет ощущение что это дичь какая то , нагородили какой то хрени ребята в Next )
@leonidserafimovich4844
@leonidserafimovich4844 Жыл бұрын
Ребят, подскажите, как сделать авторизацию через openID на мой одностроничник, я уже голову сломал...
@dimzinnatov7242
@dimzinnatov7242 9 ай бұрын
Есть уже готовая реализация для openid connect на js и типизированный вариант
Самый простой способ начать работу с БД
22:37
Михаил Непомнящий
Рет қаралды 8 М.
NextJS 13. Использование клиентских компонентов
32:19
Михаил Непомнящий
Рет қаралды 41 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Laravel in Nepali By Vedant Thakur
2:49:07
EverydayKarma
Рет қаралды 32
Next.js App Router Caching: Explained!
25:22
Vercel
Рет қаралды 111 М.
NextJS 13. Быстрый старт
40:12
Михаил Непомнящий
Рет қаралды 118 М.
Тёма Сенюков - Next.js. Как ты вообще рендеришь?
44:46
HolyJS — конференция для JavaScript‑разработчиков
Рет қаралды 25 М.
NextJS 13. Аутентификация и приватные роуты
33:59
Михаил Непомнящий
Рет қаралды 52 М.
Что такое промисы в JavaScript. Фундаментальный JavaScript
24:51
Михаил Непомнящий
Рет қаралды 47 М.
Китайский XRAY - shadowsocks, VLESS
29:12
BogdanDotPy
Рет қаралды 101 М.
Next.js Server Actions...  5 awesome things you can do
7:51
Beyond Fireship
Рет қаралды 290 М.
пранк: псих сбежал из дурдома
0:53
Анна Зинкина
Рет қаралды 1,7 МЛН
НИКОГДА не иди на сделку с сестрой!
0:11
Даша Боровик
Рет қаралды 729 М.
Заставила парня продать зажигалки
0:52
Жизнь Барахольщика
Рет қаралды 3,3 МЛН
НЕ ДАМ ЕЁ В ОБИДУ😡 #shorts
0:24
Паша Осадчий
Рет қаралды 1,6 МЛН
#trending #foryou #challenge #fyp #viral #short #tiktok #vs
0:15
Misiсatсh
Рет қаралды 2,4 МЛН
Fake iPhone 14 Pro Max за 10.000 РУБ.
16:00
Wylsacom
Рет қаралды 1 МЛН