React Server Components | разбор и мое впечатление

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024

Комментарии • 72

  • @dimoskuvaldos
    @dimoskuvaldos Год назад +2

    Супер интересно про серверные компоненты и полезные примеры! Спасибо за видео! 🙏

  • @gritsienkooleg3447
    @gritsienkooleg3447 Год назад +2

    Спасибо за видео, Айюб! Круто послушать такое развёрнутое мнение ✨ обычно на твои вопросы отвечаю сам, потом сравниваю с твоим пониманием
    Действительно, истина где-то посередине 💪
    Успехов, пожалуйста, продолжай! 🎉🎉🎉

  • @user-rm7oz4xu3k
    @user-rm7oz4xu3k Год назад +1

    Спасибо за конкретные примеры! Смотрел несколько видео, сейчас стало все максимально понятно.

  • @MrYurgens
    @MrYurgens Год назад +6

    Спасибо за видео и разбор. Насчет возврата в 2000е. Никакого возврата, мы продолжаем писать на Php + Vue/React 😬

    • @HEX_CAT
      @HEX_CAT Год назад +2

      То же самое: пишем проекты на Laravel + React/Vue)

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      ну здесь я под возвратом подразумеваю именно рендеринг темплейтов на сервере, без апи запросов)

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      Говорят Laravel и сам PHP -- это разные вещи))

  • @magnific8930
    @magnific8930 Год назад +2

    Очень ждал подобное видео, спасибо

  • @user-ru6qv3vp6p
    @user-ru6qv3vp6p Год назад +3

    ура новая видео

  • @oWeRQ666
    @oWeRQ666 Год назад +1

    Мне было интересно увидеть как оно передает данные, какой html приходит, стриминг наверное можно увидеть если запросить через какой-нибудь curl, как вызываются серверные действия, в общем больше подкапотных подробностей.

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +3

      Да, самому тоже интересно, но еще не успел разобраться. Планирую отдельные видео делать на эту тему. По формату в демках от команды React был формат на jsx похожий. Но в некст может быть есть какие-то особенности.

  • @TheMonsterLPchanel
    @TheMonsterLPchanel Год назад +2

    29:00 по идее если не рендерить динамические компоненты на сервере а передавать в пропсы все тудушки то удаление будет моментальным, просто нужно отправлять отдельный запрос на сервер для удаления тудушки и получения обновлённых данных

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Тоже верно. Но тогда и почти все в туду листе будет клиентским компонентом. Не уверен, что в таком случае будет сильный профит. Надо на более большом приложении смотреть.

  • @user-wt8sq9om6c
    @user-wt8sq9om6c Год назад +4

    Айюб а подскажи пожалуйста, все манипуляции с серверными компонентами, происходят по умолчанию, как замена getServerSideProps, теперь только вместо него мы получаем данные 'внутри серверного компонента', а для клиентских пишется строка c указанием, что это клиентский компонент ?
    А для React, тоже будет же работать ? В расширении файла надо писать *server.jsx или client.jsx ? (на хабре читал)
    Айюб хотел еще добавить, по поводу качества контента. Речь стала менее беглой, что не может не радовать. Один нюанс если можно попробуй пожалуйста, когда идет твое повествование, не прыгай СИЛЬНО ПО КОДУ (скроллинги, выделение текста, различные перемещения.. ) - это создаёт дополнительный дискомфорт для быстрого понимания.
    А в целом благодарю отличный контент делаешь!

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      По поводу серверных компонентов - да, они делают getServerSideProps не нужными. Но помимо этого у тебя появляются более расширенные возможности (меньше бандл, ререндер на сервере и тд).
      В обычном React работать будет, но, как я и говорил в уроке, нужен отдельный setup сервера + сборки + клиента с роутингом. То есть самому использовать будет не совсем удобно. По поводу расширений, насколько я понял нет. Сборщик сам компилит все компоненты, как серверные. За исключением тех, где есть 'use client'.
      По поводу качества - рад, что заметен прогресс. Да, с прыганием и выделением есть плохая привычка. Это причем не только во время записи видео у меня, даже когда сам пишу/читаю что-то есть такая проблема) В общем, буду исправлять, спасибо за фидбэк!

    • @user-wt8sq9om6c
      @user-wt8sq9om6c Год назад +1

      @@ayub_begimkulov 🙏 Тебе спасибо!!!

  • @ArtemMindsurfer
    @ArtemMindsurfer 10 месяцев назад

    шикарная инфа

  • @AmericanDragon134
    @AmericanDragon134 Год назад +2

    Я еще не посмотрел до конца, как только время будет обязательно посмотрю, но данный момент у меня появилось вопрос , React , server components , это типа React постепенно становится бэкэндом ?

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +2

      Не совсем. Теперь у тебя есть опция рендерить твои компоненты на беке, там же и запросы нужные делать. По сути библиотека расширила свои возможности рендеринга.

  • @ummyusuf8206
    @ummyusuf8206 Год назад +1

    🎉🎉🎉🎉🎉

  • @artyomtaranenko2267
    @artyomtaranenko2267 Год назад +1

    Наконец Айюб добрался до next))
    Я до сих пор удивлён, почему только 25-30% разрабов юзают next в соотношении с react. К моему сожалению на текущем месте работы next никому не интересен ((

    • @art7653
      @art7653 Год назад +2

      Скорее всего работаешь с командой, где люди постарше) Молодым разработчикам зачастую интереснее писать на новом, сам в команде, где от саг не хотят отказываться, не то что уже и next юзать😄

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +2

      Мне кажется это связанно с тем, что если ты пишешь настоящее веб приложение - то толку от next.js мало. Скорее наоборот сложности добавляет. Да, можно тут найти пользу в том, что запросы отправляются раньше. Человек сразу видит данные. Но это небольшим сервером на node.js решить можно (опять же, для реальных spa, где всегда один html отдается).

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +2

      Ну и проекты тоже разные. Next.js относительно недавно стал популярен. Вообще на западе прям много где требуют. Да и проекты новые в основном на нем делают. Просто большинство людей работают над более старыми проектами.

    • @sashas.3323
      @sashas.3323 10 месяцев назад +1

      @@ayub_begimkulov, в плане можно сделать ssr без next-а несложно? Интересно, как это сделать

  • @antisocial6974
    @antisocial6974 3 месяца назад

    Привет,а у тебя есть ещё проекты на новинки react 18?, мне просто проект в вузе надо сделать о новинках react 18 и сравнить их с react 17, я ушёл в разработчики бд и мне эта тема,к сожалению, не очень близка(Фронт), а отчисляться не хочется, поэтому ищу способы сделать это с помощью ютуба и гита). Или у тебя может даже есть проекты прям по сравнению react 17 и react 18

  • @TheS68123
    @TheS68123 9 месяцев назад

    Здравствуйте. Спасибо за такой качественный разбор стало понятно. У меня вопрос а что если нужно изменить не параметры а сам путь но используя тот же подход рендеринг на сервере. Интересно это возможно?

  • @Mr.Bellamy
    @Mr.Bellamy Год назад +4

    Получается некое размазывание логики между бэком и фронтом. Стирание четкого разделения границ отвественности., что будет вести к антипаттернам в работе. Начнем в базу напрямую лезть и кричать что это единый источник истины)))
    Сначала наделаем ошибок, потом героические будем их решать, наполняя хабр все новыми статьями КАК НАДО. А там еще не все хуки то стандратные разобрали КАК НАДО. А реакт уже свеженького подкидывает))))

    • @CJIu3eHb
      @CJIu3eHb Год назад +1

      Тут надо было по-быстрому сделать MVP на пару страниц, но с простейшим беком. Выбрал Next, но запросы делал не через серверные компоненты, а через api возможности некста. Таким образом, бек и фронт развязаны, можно заменять их на другие технологии. Т.е. Next брался, чтобы не поднимать еще и бек отдельно - показалось, что будет проще и при старте и при деплое.

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Да, это тоже показалось странным. Реакт по сути дает возможность писать всю бекенд логику в рамках компонентов, что не очень хорошо. Но я думаю у них подход такой - мы даем тебе инструменты, а на архитектуру ты сам смотри.
      Мне кажется, что если и использовать серверные компоненты, то только как BFF. То есть да, преимущества есть, но надо все равно относится ко всем серверным компонентам, как к фронт-части. Но не думаю, что этого будут все придерживаться...

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Да, такой подход кажется самым правильным.

  • @Tunec_s_hlebom
    @Tunec_s_hlebom Год назад +4

    Честно говоря, выглядит довольно странно. Как будто мы и раньше так могли сделать с применением ssr и при этом получали профит - SEO оптимизацию, а тут нам возвращается обычный jsx, сгенерированный на бэке. Выглядит как какое-то усложнение 🤔

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Да, мне тоже так казалось в начале, даже в прошлых видео говорил об этом.
      Но плюсы тоже есть по сравнению со старым подходом:
      - Более удобный запрос данных на беке
      - Тот же ssr до сих пор есть, зато на клиент приходит меньше компонентов, вся статическая часть твоего дерева остается на беке
      - Можно оставить часть тяжелый библиотек на сервере

  • @HEX_CAT
    @HEX_CAT Год назад +1

    🎉🎉❤❤

  • @sour5786
    @sour5786 11 месяцев назад

    четкая бицуха на обложке)))

  • @_boolive_
    @_boolive_ Год назад

    Знать бы, что под капотом в бандле, чтобы всё это работало? Чтобы роутеры понимали как и что грузить, обрабатывать формат рендера, как различать методы которые на самом деле вызовы методов на сервере... какой-то прикрытый ужас. А проблема то какая? Всегда можно что-то рассчитать посчитать на сервере и вернуть через апи.

    • @_boolive_
      @_boolive_ Год назад

      Разве быстрее ждать рендер компонента на сервере, грузить его вёрстку, чем сделать запрос к АПИ и получить чисто данные?

  • @_boolive_
    @_boolive_ Год назад

    Как на сервере рендерится только конкретный компонент? Когда в поле поиска вводишь текст, уходит запрос на сервер для рендера компонента.. компонент же в дереве приложения находится, серверу нужно снова создать это дерево, найти в нём нужный компонент и рендерить его или рендерится всё приложение но вернется вёрстка одного компонента?

  • @user-wl2xp8yo6x
    @user-wl2xp8yo6x Год назад +1

    Я посмотрел примеры и появился вопрос. Могу ли я в серверных экшенах не делать API запрос на другой сервер, а выполнять там бизнес логику работы с БД. Т.е вместо того чтобы вызвать еще один запрос на удаление TODO я просто сделал бы что то вроде Todo.deleteById(id) (Это ORM модель, которая работает напрямую с БД через SQL запросы)?

    • @RdmHeroe
      @RdmHeroe Год назад +1

      да, можешь

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Да, там можно делать что угодно. Это просто асинк функция, которая запускается на бекенде.

  • @popuguytheparrot_
    @popuguytheparrot_ 10 месяцев назад

    32:30 Ничего странного нет. Это основная концепция компонентно-ориентированной модели React

  • @popuguytheparrot_
    @popuguytheparrot_ 10 месяцев назад

    render functions это code smell

  • @pink-doublethink
    @pink-doublethink Год назад +1

    У меня бложик написан на нексте 12. Страницы бложека создаются динамически из md файлов. Если переписать сайт на 13.4, то из-за серверных компонентов сайт должен стать быстрее?

    • @combodia123
      @combodia123 Год назад

      Что за такое MD файлы?

    • @pink-doublethink
      @pink-doublethink Год назад +1

      @@combodia123 markdown файлы. В них удобно редактировать текст и конвертировать текст из этого формата в html / jsx на сайте

    • @alexandershemelin6605
      @alexandershemelin6605 Год назад +3

      SSG же есть, а он быстрее всего

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      В первую очередь, как уже написали, тебе нужен static site generation (ssg). В 12-м нексте у тебя генерировалась сразу же статика, но все равно все скрипты подгружались и гидрировали html на клиенте.
      Мне кажется тут основной вопрос в том, будет ли подгружаться меньше скриптов, если ты сделаешь ssg своих серверных компонентов. На первый взгляд кажется, что да. Но на 100% не уверен, надо замерять.

  • @NikolayKasparov
    @NikolayKasparov Год назад +1

    Попробовал - 💩
    Теряется декларативный подход, ломается гибкость в переиспользовании компонентов, и ни под одну из ныне пополярных в реакте архитектур это безболезненно не встроить. 10 дизлайков из 10

  • @oWeRQ666
    @oWeRQ666 Год назад

    Отталкиваться надо от юзкейсов, для туду листа серверный рендеринг нафиг не нужен, там где это нужно страницы должны быть ближе к статике и примеры нужны соответствующие, например, как из этого можно было бы собрать интернет магазин, какой-нибудь слайдер с картинками товара, которые одновременно будут отдаваться как статика для поиска и красиво пролистываться для пользователя.

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      По поводу кейсов согласен, но смысл в том, что тот же ecom не сильно отличаться то будет.
      Например страница результатов. Экшен добавление товара в корзину будет похож на обновление туду элемента. Слайдер -- это просто клиентский компонент, который на вход получает массив картинок. Поиск тоже похож будет, но туда еще добавятся фильтры.
      То есть в целом примера то достаточно должно быть для понимания особенностей. Ecom даже более динмический. Там нужно в корзину наверху синкать товары и тд.

    • @oWeRQ666
      @oWeRQ666 Год назад

      @@ayub_begimkulov я имел ввиду как сделать слайдер с картинками, которые проиндексирует поисковик, в старом ssr это была не проблема, отдается статика, а на клиенте гидратация

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      @@oWeRQ666 Сейчас если использовать next - то это также работает. Твои клиентские компоненты будут на сервере рендериться в статику, а на клиенте уже гидрироваться. То есть в плане SEO тут ничего не теряется. Просто получается, что часть компонентов теперь могут рендериться только на сервере.

  • @kotrvnwork6665
    @kotrvnwork6665 Год назад

    Как я понимаю это станет стандартом, как в 2020 стали хуки)

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Вот даже не знаю, кажется, что push-back от комьюнити в этот раз намного хуже, чем это было с хуками.

  • @vacsa
    @vacsa Год назад +1

    Что у тебя за кресло?

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +2

      Я сам не знаю. Купил на местном рынке техники. Что-то с китая, но мне нравится)

    • @vacsa
      @vacsa Год назад

      @@ayub_begimkulov 🤣🤣🤣

  • @pryanik150
    @pryanik150 Год назад +3

    React Rip 😢
    Nuxt server components 💪💪💪

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      А чем nuxt в этом плане лучше? Это же вообще другой фреймворк) (Vue)

  • @grenadier4702
    @grenadier4702 Год назад +5

    Не знаю, какую проблему это решает, но разработка становится сложнее

    • @stashladki2594
      @stashladki2594 Год назад +1

      По-моему как раз таки наоборот: намного более мощный роутер, серверные компоненты (да-да, это плюс, очень советую всё же разобраться) которые помимо своих "серверных" фичей заменяет getServerSideProps() на супер упрощённую модель. Всегда можно добавть 'use client' в любой компонент и он начнёт себя вести абсолютно идентично тому как было раншье.

    • @grenadier4702
      @grenadier4702 Год назад +1

      ​@@stashladki2594 что мощного в этом роутере чего так не хватало в нынешней разработке? Что сложного в gssp?

    • @apexnuts9785
      @apexnuts9785 Год назад

      @@stashladki2594 я тоже так думал, пока не начал писать приложение ))

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      Я смотрю на это так, что если ты делаешь полностью клиентские приложения, то ничего не должно меняться. А если делаешь серверные -- то кажется плюсы должны быть значимые.
      Но 100% станет хотя бы чут-чуть сложнее, нужно будет понимать больше концептов. Интересно конечно, как это все дальше будет развиваться)

    • @esp2644
      @esp2644 10 месяцев назад

      Сложнее до того момента, пока нет готового кода

  • @popuguytheparrot_
    @popuguytheparrot_ 10 месяцев назад

    С чего у тебя становятся компоненты более связанными? У тебя компоненты теперь по факту не знают о друг друге вообще, ахахахах

  • @user-xv3sy9hf6w
    @user-xv3sy9hf6w Год назад

    Vue гораздо лучше реакта. Как и в читабельности, так и в кодинге.

    • @ayub_begimkulov
      @ayub_begimkulov  11 месяцев назад

      тут кто к чему привык)