Благодарю Вам Михаил за разбор серверных и клиентских компонент😊! По возможности прошу Вас записать видео по NextJS как можно быстрее). NextJS сейчас популярен а Вы хорошо доносите концепты❤
Михаил спасибо огромное за видео! Перехожу на Next14 и Zustand в вопросах серверно-клиентских компонент без провайдера просто спасение! Еще раз спасибо, буду в Испании, завезу бутылку коньяка!
Спасибо, очень ценю ваш труд Михаил, очень развивает как специалиста. Заранее извиняюсь если не прав. у вас под конец 20й минуты закончена клиентская страница блога, но на ней есть указание метаданных. По логике не должна отработать страница в браузере должно выдать ошибку (у меня выдало). По типу: нельзя использовать метаданные в клиентских компонентах... по моему у вас проглючила сборка. Я решил эту проблему так. Вынес всю логику в компонент Blog. Создал серверный компонент BlogPage там оставил мету. Остальная логика была уже в Blog. Компонент Blog возвращал в компоненте BlogPage.
Спасибо за подробный разбор и популяризацию Next и Zustand. Хотелось бы увидеть, как автор решает чуть более интересные задачи, например я столкнулся с проблемой рендера карты(openstreetmap+react-leaflet) в готовом билде.
Большое спасибо за видео. Если возможно, очень нужна тема аутентификации и сессий. из за новых версий напутано просто кошмар, не могу второй день настроить. Уже в планах, супер!
Мне кажется для обучения тайпскрипт не нужен, как тот скрипач (если речь не идет о самом обучении TS). Если сравнить две одинаковые версии кода - вот как в примерах - с тайпскрипт и без, то в общем-то разница очень заметна. Тайпскрипт сильно загромождает код лишними сущностями, необходимости которых, на этапе обучения новым каким-то вещам, просто нет. Оно сильно заметно отвлекает от понимания концепций в целом, ибо привносит элементы вообще никак не влияющие на саму концепцию рассматриваемых технологий. А вообще у вас очень толковые уроки. Мало таких на ютубе. Большое спасибо!
Спасибо за интересное видео. Я пока не понимаю полностью всей сути разделения на клиент и сервер компоненты. По этому если собираетесь выпускать полноценный курс по Next.js я с удовольствием буду среди преобретающих его.
Это есть в моем списке, как и много чего еще. Но по срокам никакой конкретики. Бэкенд у меня на канале пока не представлен, а начинать сразу с jwt было бы странно.
Михаил, спасибо за контент! Очень хотелось бы приобрести именно ваш авторский полноценный курс по современному react+next , надеюсь в будущем вы его реализуете , естественно платный )
В наши дни всё так стремительно меняется, что есть риск к концу записи курса получить уроки по легаси 😄 Я надеюсь, что текущие изменения фреймворка, которые происходят прямо на глазах, устаканятся в ближайшие полгода-год. Тогда можно будет и над курсом подумать. Хотя мне также нравится подход frontendmasters.com, у них есть просто разные версии одного и того же курса (что-то стабильно раз в год обновляется). Т.е. нужно под проект что-то вчерашнее - взял изучил. Сегодняшнее - пожалуйста. Но я пока не вижу как это реализовать на тех платформах, где я сегодня размещаю курсы. А переходить на что-то еще - затратно по времени.
@@mishanepМихаил, добрый день. А можно ли использовать новый некс 13.4, но по старинке? без папки апп, всё как раньше... получается все компоненты станут серверными автоматически что ли?
Михай, добрый день, спасибо за полезную инфу. Очень хотелось бы увидеть реализацию rtk и ssr в next, очень уж болезненная тема, next-redux-wrapper - далек от совершенства, но альтернатив и нет, мб в версии 13.4.2 что-то изменилось в этом плане?)
Добрый день Михаил, благодарю за видео урок, очень полезно. У меня вопрос ? возможно ли сделать это в Context Provider , без дополнительный библиотек. Я реализовала это, но вот теперь есть сомнения все ли верно я сделала. Благодарю
застрял на первом варианте реализации поиска. Ругается на то что в клиентском компоненте экспортируется метадата, почему у тебя нет такого? и еще, подскажи, пожалуйста, что за магия с reactfc? как мне себе это установить?
Я деталей не помню, но по идее правильно ругается. Скорее всего у меня серверный компонент импортирует клиентский, и мета-данные в серверном компоненте. А reactfc - это просто сниппет. В моем случае кастомный. У меня на канале где-то было видео про сниппеты в VS Code.
Привет, Тимур! Зависит от целей. Если задаваться поиском работы, то Redux может помочь, т.к. он по старой памяти много где в ходу. Если свои приложения делать, то Zustrand может быть отличным решением. На текущем проекте мы с командой используем Zustand.
Спасибо, очередное шикарное доходчивое видео). Глупый вопрос - но я не понимаю, обычно в приложении очень много компонентов требуют использование состояния или хуков, соответственно мы их должны использовать как клиентские компоненты с приставкой use client. Получается на деле практически основная масса компонентов будет клиентскими, я так понимаю они не рендеряться на сервере, тогда о каком серверном рендеринге может идти речь, получается практически любое приложение на NEXTjS превратиться в приложение на обычном REactJS, разве нет?
@@mishanep спасибо) получается NextJS отлично подойдет и лучше использовать со статическими приложениям, то бишь даже сайтами, а не с динамическими приложениями?
@@mishanep Вопрос интересный. Сейчас с этим столкнулся. Делаю статичный сайт(по большей части статичный), но хочу использовать там MUI. Подключаю его к странице и тут же вылетает ошибка, что мол нельзя использовать как серверный компонент. Все из-за того, что где-то в MUI под капотом используется хук или что то в этом роде(подозреваю что он используется при подключении своей темы). Решение - ставить 'use client', но тогда все генерируется на стороне клиента, а это плохо для SEO что для обычного сайта очень критично...В итоге нужно изощряться с обертками или отказываться от MUI в серверных компонентах...
@@СергейЗамалетдинов а ежели делать как это требует дока реакта - выносить именно всё что связано с ui (листья) в отдельные компоненты, а ветки и деревья приложения пусть будут серверными. тогда не должно быть проблем таких
@@СергейЗамалетдинов 1. КЛИЕНТСКИЕ КОМПОНЕНТЫ не плохо для seo, это все еще ssr и все компоненты до next13 были клиентскими. 2. MUI не работает в серверных компонентах потому что он использует runtime css-in-js, для того, чтобы у вас нормально работали серверные компоненты, вам нужно отказаться от MUI и использовать ту либу, в которой нет runtime css-in-js
Михаил, вот такой вопрос, вы хотели в коде в серверной компоненте использовать зуштанд (если бы не нужно было загружать посты). Сам по зуштанд подразумевает ререндер, при условии что данные в стэйте изменились. Как серверный компонент будет ререндерится? Да и вообще использование глобальных стэйтов в Nextjs дело опасное, на сервере и на клиенте может быть рассинхронизация, при определенных кейсах. Тут надо консолить и разбираться, тема не такая очевидная как кажется. Также я не понял про SWR, во говорили что мы избавимся от use client...
Я только начал изучать Next, поэтому прошу не бросать в меня помидоры 🙂. По моему вариант с app directory только все усложняет. В классическом варианте есть папка pages, где находятся все страницы, все остальное в папке components, никаких use client, по умолчанию все компоненты серверные, на хуки не ругаются. В чем преимущество варианта с app directory? 🤔
С клиента запросы должны идти на nextjs сервер и с него уже на внешний сервис с секретом. Тогда в браузере всё тип-топ. У next есть свой rest API и серверные экшны. Оба варианта подходят. Оба освещены на моем канале.
Спасибо за интересный урок) Очень интересно сравнение технологий! Заметил что функция поиска работает как то странно. Если написать например esse то результаты не содержат эту комбинацию. на пример на моменте 31.04. Так и должно быть?
Спасибо за видео! Но урок получился очень сырой. Нужно четко разобрать один, наиболее оптимальный пример. Остальное надо выносить в отдельное видео. Получилось много переделок, переносов и т.п. Так знания не выстраиваются в четкую последовательную цепочку. Потратил в три раза больше времени, чтобы декомпозировать компоненты и разнести серверную и клиентскую логики. Но в любом случае спасибо!
Изучаю Next Js, сделал тестовое похожее на то, что на видео, но не понятно с клиентскими компонентами, я правда использвал редакс, та еще шляпа, но когда я с помощью стейт менеджера запрашиваю посты, они получается в сорсах страницы не видны, они же не серверные, они клиенсткие, может ктото подсказать, это я затупил, или так оно и есть???
На 16 минуте не совсем понял с постами, может кто-то объяснит если не затруднит. Мы посты импортирвали на страницу блога, хотя до этого говорилось что серверные компоненты нужно как пропсы прокидывать. Я что-то явно не понимаю или это ошибка просто?
Здравствуйте. Не планирую. Пока не вижу в этом особого смысла. Как провайдер подключать (любой) я показал в этом видео. По сути, где будет реакт квери должна быть директива 'use client'. В остальном какие будут отличия?
Михаил, спасибо за урок. Немного не понял с Провайдером. Допустим мы помечаем Провайдер с ChakraProvider, как клиентский компонент. Не получится ли так, что все дочерки этого провайдера тоже станут клиентскими?
Благодарю за видео. Меня беспокоит вопрос по поводу автоимпорта, не могли бы вы подсказать как его лучше реализовать? Выглядит очень удобно, но откуда этот функционал я не смог найти.
Вообще он идёт из коробки с Vs code. Вы начинаете что-то набирать, в подсказке предлагается выбор. Чаще всего первые значения - автоимпорты. Надо просто их выбрать и нажать энтер.
@@mishanep спасибо за ответ, насколько увидел то курсов по новым этим фишкам у вас еще не скоро? Неделю ковыряюсь со своим проектом на нексте и жутко мучаюсь с этим getServerSideProps :(
Подскажите пожалуйста. Если серверный компонент состоит из двух клиентских, это как-то оптимизирует приложение, в отличии от того чтобы сделать клиентский компонент в клиентском компоненте? Серверный или Клиент | | | Клиент Клиент Клиент
Cочетание Next и Express - хорошая идея? Если бэкенд у нас полностью на JS, то почему не писать его сразу в Next? Next имеет серверную часть и может спокойно общаться с БД. Часто Next используют как прослойку между фронтендом и бэкендом, когда бэк написан на Java или других языках. А когда всё JS/TS, то нужен ли Express?
С появлением серверных компонентов этот вопрос, действительно, становится более насущным. Так-то SSR не на каждом проекте нужен, например, вы делаете админскую панель сайта и закрытый от поисковиков раздел, да и не каждый одностраничник нуждается в SEО. Теперь же серверные компоненты еще и бандл оптимизируют. Но с другой стороны, помимо Nextjs есть куча других инструментов использующих Реакт. У них и SSR может быть при необходимости, а завтра там также появится возможность использования серверных компонентов. Потом сам Next тоже что-то добавляет в бандл, он не идет бесплатен.
А нафига вообще zustand или SWR? Нет, я понимаю в качестве развития можно изучить быстро, но нельзя было на Redux-tollkit сделать и ReactQuery? Ааааа, понял, это специально так сделано... чтобы мы сами на Redux-tollkit и ReactQuery перекинули всё :) понятно... Спасибо вам за настоящею практику!
а преимущества какие у серверных? не увидел явного сравнения, мол, серверные лучше здесь потому что получили такое преимущество, выиграли в чём-то, а там где использовали клиентские компоненты, то выиграли здесь, получили преимущество здесь. по факту, видно, что та же Chakra вся на клиентских работает, ну т.е. даже они не понимают смысла от серверных.
При использовании серверных компонентов поставляется меньше js-кода на клиент, в том числе в бандл не попадают зависимости, используемые только в серверных компонентах.
@@mishanep во 2м примере, что показали, где по сути вынесли input в отдельный компонент, а обёртка стала серверной, мы особо ничего и не сэкономили-то. Вот был бы реальный пример, где экономия сотни кб, а так нечто странное. Да и ещё самому заботиться о том, мол, серверный или клиентский компонент, хотя, вроде бы nextjs ругается когда используем хуки в серверном.
Вот по этой причине мне и нравится юзать редакс, так с добавлением rtk мы одновременно запрашиваем данные и храним в сторе, правда оч не хватает инфинити скролла.
Привет, ты нашел способ как обновлять серверные компоненты? перерыл кучу инфы никто кроме как router.refresh(); ничего не советует, но это такая шляпа, весь сайт перерендеривается. Допустим пример, я добавил пост на странице добавления, иду на главную, а данные с сервака не обновляются, он тупо не идет даже в функцию где эти данные о постах фетчатся, пока не обновишь страницу. Хоть этот Link не используй, а просто тег а
По планам в ближайших видео поговорить о создании API точек и использовании NextAuth.
Спасибо!!! Михаил!!!
Просто огромное спасибо за ваш труд!!!
Спасибо, ждем новых видео
Вооооо!! супер🤘
Михаил, можете еще добавить пунктик на счет стейт менеджеров в next 13, что касается передачи стейта в серверные компоненты? На примере zustand
Благодарю Вам Михаил за разбор серверных и клиентских компонент😊! По возможности прошу Вас записать видео по NextJS как можно быстрее). NextJS сейчас популярен а Вы хорошо доносите концепты❤
Удивительно качественные и понятные видео, чего практически нет на российском ютубе. Респект
Отличный материал! Спасибо! Сижу и сквозь ролик настырно и упорно все забиваю руками попутно обращаясь к докам версел )
Михаил спасибо огромное за видео! Перехожу на Next14 и Zustand в вопросах серверно-клиентских компонент без провайдера просто спасение! Еще раз спасибо, буду в Испании, завезу бутылку коньяка!
Спасибо, очень ценю ваш труд Михаил, очень развивает как специалиста. Заранее извиняюсь если не прав. у вас под конец 20й минуты закончена клиентская страница блога, но на ней есть указание метаданных. По логике не должна отработать страница в браузере должно выдать ошибку (у меня выдало). По типу: нельзя использовать метаданные в клиентских компонентах... по моему у вас проглючила сборка. Я решил эту проблему так. Вынес всю логику в компонент Blog. Создал серверный компонент BlogPage там оставил мету. Остальная логика была уже в Blog. Компонент Blog возвращал в компоненте BlogPage.
Спасибо за отличное видео об Next JS! Замечательный разбор серверных и клиентских компонентов!
Наконец-то стала понятна эта тема с серверными компонентами, спасибо большое)
Отлично рассказал как первую часть так и вторую. Базовое понятие некста станет понятно любому новичку 👍👍👍👍
Не погоджуюся, зовсім не для новачків :(
Спасибо за подробный разбор и популяризацию Next и Zustand. Хотелось бы увидеть, как автор решает чуть более интересные задачи, например я столкнулся с проблемой рендера карты(openstreetmap+react-leaflet) в готовом билде.
Очень, полезное видео. Михаил, спасибо, жду продолжения)
swr и zustand выглядят красиво )
Ждем продолжения в следующей серии )
Большое спасибо за видео. Если возможно, очень нужна тема аутентификации и сессий. из за новых версий напутано просто кошмар, не могу второй день настроить. Уже в планах, супер!
Мне кажется для обучения тайпскрипт не нужен, как тот скрипач (если речь не идет о самом обучении TS). Если сравнить две одинаковые версии кода - вот как в примерах - с тайпскрипт и без, то в общем-то разница очень заметна. Тайпскрипт сильно загромождает код лишними сущностями, необходимости которых, на этапе обучения новым каким-то вещам, просто нет. Оно сильно заметно отвлекает от понимания концепций в целом, ибо привносит элементы вообще никак не влияющие на саму концепцию рассматриваемых технологий.
А вообще у вас очень толковые уроки. Мало таких на ютубе. Большое спасибо!
Спасибо за интересное видео. Я пока не понимаю полностью всей сути разделения на клиент и сервер компоненты. По этому если собираетесь выпускать полноценный курс по Next.js я с удовольствием буду среди преобретающих его.
комментарий для поддержки данного канала.
МИХАИЛ, огромный вам респект и спасибо за видео урок, могли бы в будущем затронуть темы jwt, websockets?
Это есть в моем списке, как и много чего еще.
Но по срокам никакой конкретики. Бэкенд у меня на канале пока не представлен, а начинать сразу с jwt было бы странно.
здравствуйте! благодарю за видео! подскажите, пожалуйста, на 8:53 вы развернули шорткат reactfc с помощью какого расширения?
С помощью кастомного сниппета. В VS Code можно настроить любой вариант под себя. У меня на канале где-то было видео об этом.
Спасибо за хорошую работу
Михаил, спасибо за контент! Очень хотелось бы приобрести именно ваш авторский полноценный курс по современному react+next , надеюсь в будущем вы его реализуете , естественно платный )
В наши дни всё так стремительно меняется, что есть риск к концу записи курса получить уроки по легаси 😄 Я надеюсь, что текущие изменения фреймворка, которые происходят прямо на глазах, устаканятся в ближайшие полгода-год. Тогда можно будет и над курсом подумать. Хотя мне также нравится подход frontendmasters.com, у них есть просто разные версии одного и того же курса (что-то стабильно раз в год обновляется). Т.е. нужно под проект что-то вчерашнее - взял изучил. Сегодняшнее - пожалуйста. Но я пока не вижу как это реализовать на тех платформах, где я сегодня размещаю курсы. А переходить на что-то еще - затратно по времени.
@@mishanepМихаил, добрый день. А можно ли использовать новый некс 13.4, но по старинке? без папки апп, всё как раньше... получается все компоненты станут серверными автоматически что ли?
Хороший ролик! Спасибо
Михай, добрый день, спасибо за полезную инфу.
Очень хотелось бы увидеть реализацию rtk и ssr в next, очень уж болезненная тема, next-redux-wrapper - далек от совершенства, но альтернатив и нет, мб в версии 13.4.2 что-то изменилось в этом плане?)
Настолько большая апликуха, что с контекстом никак? Редакс реально нужен был только на очень больших и разветвленных апликухах
@@alext5030 контекст категорически не подходит для того, чтобы бизнес-данные приложения хранить, он необходим для другого
контекст + useReducer и вперёд :)
Подскажите, в данном случае какой профит от использования next в плане seo, если основное содержимое страницы рендерится на клиенте?
Спасибо за ролик.
Добрый день Михаил, благодарю за видео урок, очень полезно. У меня вопрос ? возможно ли сделать это в Context Provider , без дополнительный библиотек. Я реализовала это, но вот теперь есть сомнения все ли верно я сделала. Благодарю
застрял на первом варианте реализации поиска. Ругается на то что в клиентском компоненте экспортируется метадата, почему у тебя нет такого?
и еще, подскажи, пожалуйста, что за магия с reactfc? как мне себе это установить?
Я деталей не помню, но по идее правильно ругается. Скорее всего у меня серверный компонент импортирует клиентский, и мета-данные в серверном компоненте.
А reactfc - это просто сниппет. В моем случае кастомный. У меня на канале где-то было видео про сниппеты в VS Code.
@@mishanep понял, спасибо
Класс! Миша, спасибо.
Третий вариант конечно самый простой.
Стоит ли учить Redux, если есть Zustand?
Привет, Тимур!
Зависит от целей. Если задаваться поиском работы, то Redux может помочь, т.к. он по старой памяти много где в ходу. Если свои приложения делать, то Zustrand может быть отличным решением. На текущем проекте мы с командой используем Zustand.
Спасибо, очередное шикарное доходчивое видео). Глупый вопрос - но я не понимаю, обычно в приложении очень много компонентов требуют использование состояния или хуков, соответственно мы их должны использовать как клиентские компоненты с приставкой use client. Получается на деле практически основная масса компонентов будет клиентскими, я так понимаю они не рендеряться на сервере, тогда о каком серверном рендеринге может идти речь, получается практически любое приложение на NEXTjS превратиться в приложение на обычном REactJS, разве нет?
Смотря над каким предложением вы работаете. По сути прошлые версии некста так и работали, пока не было серверных компонентов.
@@mishanep спасибо) получается NextJS отлично подойдет и лучше использовать со статическими приложениям, то бишь даже сайтами, а не с динамическими приложениями?
@@mishanep Вопрос интересный. Сейчас с этим столкнулся. Делаю статичный сайт(по большей части статичный), но хочу использовать там MUI. Подключаю его к странице и тут же вылетает ошибка, что мол нельзя использовать как серверный компонент. Все из-за того, что где-то в MUI под капотом используется хук или что то в этом роде(подозреваю что он используется при подключении своей темы). Решение - ставить 'use client', но тогда все генерируется на стороне клиента, а это плохо для SEO что для обычного сайта очень критично...В итоге нужно изощряться с обертками или отказываться от MUI в серверных компонентах...
@@СергейЗамалетдинов а ежели делать как это требует дока реакта - выносить именно всё что связано с ui (листья) в отдельные компоненты, а ветки и деревья приложения пусть будут серверными. тогда не должно быть проблем таких
@@СергейЗамалетдинов 1. КЛИЕНТСКИЕ КОМПОНЕНТЫ не плохо для seo, это все еще ssr и все компоненты до next13 были клиентскими. 2. MUI не работает в серверных компонентах потому что он использует runtime css-in-js, для того, чтобы у вас нормально работали серверные компоненты, вам нужно отказаться от MUI и использовать ту либу, в которой нет runtime css-in-js
Михаил, вот такой вопрос, вы хотели в коде в серверной компоненте использовать зуштанд (если бы не нужно было загружать посты). Сам по зуштанд подразумевает ререндер, при условии что данные в стэйте изменились. Как серверный компонент будет ререндерится? Да и вообще использование глобальных стэйтов в Nextjs дело опасное, на сервере и на клиенте может быть рассинхронизация, при определенных кейсах. Тут надо консолить и разбираться, тема не такая очевидная как кажется. Также я не понял про SWR, во говорили что мы избавимся от use client...
Большое спасибо!
Я только начал изучать Next, поэтому прошу не бросать в меня помидоры 🙂. По моему вариант с app directory только все усложняет. В классическом варианте есть папка pages, где находятся все страницы, все остальное в папке components, никаких use client, по умолчанию все компоненты серверные, на хуки не ругаются. В чем преимущество варианта с app directory? 🤔
В парадигме pages нет понятия серверных компонентов. Они все клиентские.
@@mishanep тогда почему в этих компонентах работают getStaticProps, getServerSideProps?
@@vladimirmuratov2220 А почему они не должны работать?
Огромное спасибо
Спасибо за урок!
Михаил, подскажите, как в VScode называется плагин, который отображает цветные линии от скобки ло скобки? На вид удобно.
Я не ставил никакого плагина для этого. Может быть особенность цветовой темы, у меня CodeSandbox 2021.
@@mishanep Нашёл. В параметрах VScode надо было включить: editor.guides.bracketPairs
Отлично!
А как сделать loading что бы работал при поиске или вообще когда запрос или mutation
Михаил а вы не подскажите случаем, почему в серверных компонентах дважды вызывается fetch ?
Получается , секреты всё же можно увидеть на клиенте? Ведь в случае с поиском, запросы к REST API (например) будут выполняться из браузера?
С клиента запросы должны идти на nextjs сервер и с него уже на внешний сервис с секретом. Тогда в браузере всё тип-топ. У next есть свой rest API и серверные экшны. Оба варианта подходят. Оба освещены на моем канале.
@@mishanep понял, спасибо за ответ.
Спасибо за интересный урок) Очень интересно сравнение технологий! Заметил что функция поиска работает как то странно. Если написать например esse то результаты не содержат эту комбинацию. на пример на моменте 31.04. Так и должно быть?
Там поиск по заголовку и body идёт, поэтому норм
Спасибо за видео! Но урок получился очень сырой. Нужно четко разобрать один, наиболее оптимальный пример. Остальное надо выносить в отдельное видео. Получилось много переделок, переносов и т.п. Так знания не выстраиваются в четкую последовательную цепочку.
Потратил в три раза больше времени, чтобы декомпозировать компоненты и разнести серверную и клиентскую логики.
Но в любом случае спасибо!
Вместо Чакры можно использовать Mantine , которая работает с Next из коробки на СЕРВЕРНЫХ, а не клиентских компонентах
Изучаю Next Js, сделал тестовое похожее на то, что на видео, но не понятно с клиентскими компонентами, я правда использвал редакс, та еще шляпа, но когда я с помощью стейт менеджера запрашиваю посты, они получается в сорсах страницы не видны, они же не серверные, они клиенсткие, может ктото подсказать, это я затупил, или так оно и есть???
в rtk query больше нет надобности? ну раз nextjs теперь сам хеширует данные
Круто, спасибо большое!! Скажите как называется ваша тема в вскоде?
CodeSandbox
На 16 минуте не совсем понял с постами, может кто-то объяснит если не затруднит. Мы посты импортирвали на страницу блога, хотя до этого говорилось что серверные компоненты нужно как пропсы прокидывать. Я что-то явно не понимаю или это ошибка просто?
Как я понял это косячок да?
Здравствуйте, планируете ли вы рассказать как работает реакт квери с новым некстом?
Здравствуйте. Не планирую. Пока не вижу в этом особого смысла. Как провайдер подключать (любой) я показал в этом видео. По сути, где будет реакт квери должна быть директива 'use client'. В остальном какие будут отличия?
Михаил, спасибо за урок. Немного не понял с Провайдером. Допустим мы помечаем Провайдер с ChakraProvider, как клиентский компонент. Не получится ли так, что все дочерки этого провайдера тоже станут клиентскими?
В качестве пропа children у клиентского компонента могут быть и серверные. Поэтому всё норм.
Благодарю за видео. Меня беспокоит вопрос по поводу автоимпорта, не могли бы вы подсказать как его лучше реализовать? Выглядит очень удобно, но откуда этот функционал я не смог найти.
Вообще он идёт из коробки с Vs code. Вы начинаете что-то набирать, в подсказке предлагается выбор. Чаще всего первые значения - автоимпорты. Надо просто их выбрать и нажать энтер.
@@mishanep полазил в настройках, поискал инфу - иногда не работает, нужно в schema добавлять исключения папку node_modules. Добавил и всё заработало.
Михаил привет,а что за тема или шрифт у тебя?
можешь сказать как ты быстро создаешь функцию для компонента реакт?
Кастомный сниппет для VS Code. У меня на канале было видео как их создавать.
@@mishanep нашел аналогичные в плагинах вс кода без стрелочной функции. Спасибо
Сейчас конечно ночь и я уже туплю. Но Серверные компоненты заменяют в итоге getServerSideProps?
По сути - да. По крайней мере, я не видел в обновленной документации использование данной функции совместно с серверными компонентами.
@@mishanep спасибо за ответ, насколько увидел то курсов по новым этим фишкам у вас еще не скоро?
Неделю ковыряюсь со своим проектом на нексте и жутко мучаюсь с этим getServerSideProps :(
Как называется плагин который автоматически импортирует все зависимости? и другие которые помогают быстро разрабатывать?
Это встроенная возможность VS Code. Т.е. специальное расширение я не использую.
@@mishanep а как включить
@@ramilb.252 он уже включен изначально, не нужно ничего специально делать, просто установить VS Code и открыть его.
спасибо
как понимаю, то можно было еще использовать и 4 вариант с помощью server actions(на данный момент экспериментальная версия)
Подскажите пожалуйста. Если серверный компонент состоит из двух клиентских, это как-то оптимизирует приложение, в отличии от того чтобы сделать клиентский компонент в клиентском компоненте?
Серверный или Клиент
| | |
Клиент Клиент Клиент
если серверный компонент большой, то да, если тупа обертка, то в этом нет смысла
Пожалуйста, не могли бы вы выполнить аутентификацию и авторизацию в next13 + ExpressJs (токен доступа JWT)
Cочетание Next и Express - хорошая идея? Если бэкенд у нас полностью на JS, то почему не писать его сразу в Next? Next имеет серверную часть и может спокойно общаться с БД. Часто Next используют как прослойку между фронтендом и бэкендом, когда бэк написан на Java или других языках. А когда всё JS/TS, то нужен ли Express?
@@mishanep я свами согласен но если проек уже написано на express + react, и надо заменит react на next и не писат баск заново
После генерации апи "для ленивых" в реакте, в некстжс работа с запросами выглядит как-то не однообразно и мало удобно, даже в рамках того же swr
кстати, Михаил, кроме истории есть ещё физика, химия, русский, литература и др)
Это вы к чему? Мне больше всего информатика нравилась.
@@mishanep ну всё время историю вспоминаете)
почему не используешь FC для компонентов, а уже в него дженериком тип пропсов? выглядит намного лучше: const Navigation: FC = ({navLinks}) => { ....
спасибо! да чакра ничт
Объясните для меня плиз - зачем мне вообще может быть нужен обычный реакт? Я могу всегда и для всех проектов использовать Next js?
С появлением серверных компонентов этот вопрос, действительно, становится более насущным. Так-то SSR не на каждом проекте нужен, например, вы делаете админскую панель сайта и закрытый от поисковиков раздел, да и не каждый одностраничник нуждается в SEО. Теперь же серверные компоненты еще и бандл оптимизируют.
Но с другой стороны, помимо Nextjs есть куча других инструментов использующих Реакт. У них и SSR может быть при необходимости, а завтра там также появится возможность использования серверных компонентов.
Потом сам Next тоже что-то добавляет в бандл, он не идет бесплатен.
А как затриггерить рендер серверного компонента на клиенте?
Серверный компонент рендерится на сервере. На клиенте вся логика до оператора return на клиент просто не попадает. Поэтому никак.
как в этом всем разобраться? не понимаю!!!
А нафига вообще zustand или SWR? Нет, я понимаю в качестве развития можно изучить быстро, но нельзя было на Redux-tollkit сделать и ReactQuery?
Ааааа, понял, это специально так сделано... чтобы мы сами на Redux-tollkit и ReactQuery перекинули всё :) понятно... Спасибо вам за настоящею практику!
Это значит что скоро на Udemy ждать курса по NextJS?))))))))))))
Поживем - увидим =) Пока выглядит как главный кандидат в курсы.
а преимущества какие у серверных? не увидел явного сравнения, мол, серверные лучше здесь потому что получили такое преимущество, выиграли в чём-то, а там где использовали клиентские компоненты, то выиграли здесь, получили преимущество здесь.
по факту, видно, что та же Chakra вся на клиентских работает, ну т.е. даже они не понимают смысла от серверных.
При использовании серверных компонентов поставляется меньше js-кода на клиент, в том числе в бандл не попадают зависимости, используемые только в серверных компонентах.
@@mishanep во 2м примере, что показали, где по сути вынесли input в отдельный компонент, а обёртка стала серверной, мы особо ничего и не сэкономили-то.
Вот был бы реальный пример, где экономия сотни кб, а так нечто странное.
Да и ещё самому заботиться о том, мол, серверный или клиентский компонент, хотя, вроде бы nextjs ругается когда используем хуки в серверном.
Вот по этой причине мне и нравится юзать редакс, так с добавлением rtk мы одновременно запрашиваем данные и храним в сторе, правда оч не хватает инфинити скролла.
А как он заводится с Next'ом? Нужно дополнительный пакет Wrapper устанавливать?
очень круто, но понимается с трудом))
Привет, ты нашел способ как обновлять серверные компоненты? перерыл кучу инфы никто кроме как router.refresh(); ничего не советует, но это такая шляпа, весь сайт перерендеривается. Допустим пример, я добавил пост на странице добавления, иду на главную, а данные с сервака не обновляются, он тупо не идет даже в функцию где эти данные о постах фетчатся, пока не обновишь страницу. Хоть этот Link не используй, а просто тег а
супер! 👍