Создаём и деплоим собственный FULL STACK блог | NextJs + Sanity

  Рет қаралды 11,435

Елена Литвинова — Искусство Веб-разработки 🛸

Елена Литвинова — Искусство Веб-разработки 🛸

Күн бұрын

В уроке мы целиком и полностью создадим свой блог и заделоим его на vercel. Вёрстка, запросы, админка - ВСЁ!! ❤️‍🔥
🍀 Поддержать канал: www.donationalerts.com/r/webe...
☕️ Купить кофе: buy.stripe.com/5kA7sL9574SG7x...
🎨 Купить набор кистей Procreate: webelart.com/illustration.
✍️ Мой telegram channel: t.me/webelart
🏰 Английский KZbin: @webelart_en
💁🏼‍♀️ Инстаграм: / webelart
🦄 LinkedIn: / webelart
❤️‍🔥 GitHub для старта: github.com/liveldi/my_blog_start
Литература:
Помимо документации при подготовке к уроку, я также смотрела это видео: • Build and Deploy a Mod...
Ссылки используемые в уроке:
😌 date-fns: date-fns.org
😌 React icons: react-icons.github.io/react-i...
😌 Sanity client: www.npmjs.com/package/@sanity...
😌 Sanity block content to react: www.npmjs.com/package/@sanity...
😌 Sanity image-url: www.npmjs.com/package/@sanity...
😌 Финальный пример в продакшене: mysuperblog.vercel.app
😌 Статья где можно почитать про Sanity kittygiraudel.com/2021/07/16/...
😌 Документация Sanity www.sanity.io
😌 Build and Deploy a Modern Full Stack ECommerce React Application with Stripe • Build and Deploy a Mod...
😌 Документация NextJs nextjs.org
00:00 Введение.
04:30 Создаём проект NextJs.
09:38 Создаём проект Sanity.
17:50 Создаём схему Post.
21:20 Заполняем схему Sanity: string, image, date, slug, text, body, array
38:10 Заполняем статьи.
45:30 Создаём группы.
47:38 Клиент: разбираем что нужно сделать.
50:27 Структура, rafce - snippets, подготовка клиента.
57:00 Разработка: создаём компоненты.
01:04:00 Клиент - обложка.
01:26:00 Клиент - вторая секция - начало.
01:29:00 Приступаем к загрузке posts: getServerSideProps.
01:32:45 Язык запросов Groq.
01:35:20 Настраиваем связь Sanity с клиентом.
01:41:00 Image Builder
01:43:00 Создаём функцию загрузки loadPosts.
01:51:30 Отображаем посты.
01:55:00 Решаем баг.
01:59:00 Отображение карточки поста.
02:06:15 Пагинация.
02:16:00 Решаем баг.
02:18:00 Открытие поста.
02:35:50 Добавляем head для мета тегов
02:37:40 Домашнее задание
02:38:34 Заливка на Github + Deploy
На канале я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн.

Пікірлер: 119
@user-ym6uk4rx2u
@user-ym6uk4rx2u 7 ай бұрын
2:26:14 на 19 строке ошибка в запросе, должно быть _type, из-за этого статическая генерация страниц не будет работать. Вдруг кто-то тоже перепечатал и потом удивился когда sitemap генерировал =)
@webelart
@webelart 7 ай бұрын
Спасибо большое. Зачинила ваше сообщение. ❤🎄
@Diego-rx4wr
@Diego-rx4wr Жыл бұрын
Какая же ты красотка. Замотивировала меня опять начать программировать. Спасибо тебе! Ты лучшая! Было бы круто показывать нам, как ты свои приложения деплоишь. А не просто разрабатываешь.
@webelart
@webelart Жыл бұрын
Спасибо! Очень приятно! Про деплой услышала! Не то чтобы у меня много приложений, использую digiral ocean :))) Собираем лайкосики и сделаю! ❤️‍🔥
@igormajrov8444
@igormajrov8444 Жыл бұрын
Повеселил ты меня. Вот встретится страшная заказчица, и что делать будешь? Бросишь кодить? ))))
@eurorock5912
@eurorock5912 Жыл бұрын
О, что-то интересное!)) Спасибо, сча заценим, Елена!)
@asmix7328
@asmix7328 Жыл бұрын
Видео ещё не посмотрел, но лайк уже поставил) Респект Вам и успехов)) В выхи посмотрю полностью)
@vadicus6534
@vadicus6534 Жыл бұрын
Привет, сразу лайк потому что ты на старте показала что конкретно мы делаем и какой итоговый результат ожидаем. Часто такого не хватает в различных уроках. с энтузиазмом приступаю.
@bolovy6093
@bolovy6093 Жыл бұрын
Привет красотка, видео как всегда 🔥 но хотелось бы почаще) Redux/Redux Toolkit/React Query ничего из этого не планируется?😅
@webelart
@webelart Жыл бұрын
Привет, привет!! Стараюсь как могу с частотой! ❤️ В ближайшем будущем про redux - пока нет... Но если коммент будет набирать лайки 😁😁😁 who knows как говорится :)))
@rustoiurazbaev2314
@rustoiurazbaev2314 Жыл бұрын
Спасибо вам за прекрасный и классный проект.Подача материала просто супер.Успехов вам в развитии канала и конечно же в работе.А вы как всегда очаровательная и обоятельная.
@webelart
@webelart Жыл бұрын
Какой крутой комментарий!!! Спасибо ОГРОМНОЕ!!!! Полный вперёд в мир программной магии! 🧙 😍❤️‍🔥❤️‍🔥❤️‍🔥 Все вместе! ❤️
@MiMi-fx4gl
@MiMi-fx4gl Жыл бұрын
залетело на одном дыхании)) спасибо!
@webelart
@webelart Жыл бұрын
❤️❤️❤️‍🔥
@nurdanokenov4439
@nurdanokenov4439 Жыл бұрын
Спасибо за все! Крутой видос.
@webmentorZH
@webmentorZH Жыл бұрын
ааа! какой крутой контент! мне очень нужен был свой блог, думала делать на Hugo и Netlify, уже начала делать) но теперь пошла все смотреть и делать заново! Очень классное пояснение , качество видео бомба! Спасибо огромное!
@webelart
@webelart Жыл бұрын
Круто, я рада что в тему, давайте жгите!!! ❤️‍🔥 Жду ссылку на вашу реализацию!!
@k-ivan
@k-ivan Жыл бұрын
Спасибо за Ваши труды!
@webelart
@webelart Жыл бұрын
Спасибо, что учитесь со мной ❤️
@user-cd1sr5sx2r
@user-cd1sr5sx2r Жыл бұрын
Очень хорошая идея проекта. Спасибо за урок.
@webelart
@webelart Жыл бұрын
Еееее!!! Вперёд реализовывать!!! 😍
@custercuster4918
@custercuster4918 Жыл бұрын
Большое спасибо за контент, не только это видео, но в целом. Не понимаю почему такие годные каналы не так популярны как другие, менее информативные каналы...
@ruslanyusupov793
@ruslanyusupov793 Жыл бұрын
Отличное видео, спасибо
@andrey.kudinov
@andrey.kudinov Жыл бұрын
Огонь 🔥
@webelart
@webelart Жыл бұрын
❤️‍🔥❤️‍🔥❤️‍🔥
@yankov2206
@yankov2206 Жыл бұрын
Лена привет! Лайк, хороший комментарий для продвижения канала Подписчики смотрят, одобряют) спасибо!
@webelart
@webelart Жыл бұрын
Спасибо огромное!!!! ❤Рада, что материал нравится!!
@leuuuuuuuuuuu
@leuuuuuuuuuuu Жыл бұрын
спасибо большое)
@user-sv3sd9df2l
@user-sv3sd9df2l Жыл бұрын
Прикольно)
@yagelProject
@yagelProject Жыл бұрын
Привет. Сделайте пожалуйста видео с Next 13 (App) и Sanity 3, без сложной структуры: - Блог, - Пагинация автоматическая при скролинге, - Категории в виде фильтра, - Поиск в виде фильтра Если конечно это возможно. Нет нормальных уроков на эту тему.
@mazerafi138
@mazerafi138 7 ай бұрын
Полностью поддерживаю!
@oresthrynyshyn
@oresthrynyshyn Жыл бұрын
It will be good to release the 2nd part of the video where all versions of the packages would be updated (Next 13 was released not so long ago). It would also be cool to add a header or footer (or both of these elements) to the site, as well as a small "About Me" or „Contact Us“ page.
@jajanetoure1383
@jajanetoure1383 Жыл бұрын
Очень круто! Твой канал - находка. Смотрю видео и думаю: "она разговаривает со мной на одном языке"))) Отлично подаешь материал, все понятно и четко - без воды Не знаю будет ли интересно, но хотелось бы увидеть разбор задач с литкода
@user-xs2dx2mh3f
@user-xs2dx2mh3f 10 күн бұрын
Деплой на версель == вендэрлок )
@user-bt3hr2ob9q
@user-bt3hr2ob9q Жыл бұрын
красотка я тебя обожаю. хотелось бы узнать как сделать навигацию с автоподгрузкой! было бы супер сделай плиззз
@unicoxr5tj417
@unicoxr5tj417 Жыл бұрын
что-то интересное
@webelart
@webelart Жыл бұрын
Ван хандред пёрсент!!! 😍😁😁😁
@dmitripolevoi4473
@dmitripolevoi4473 10 ай бұрын
Хотелось бы видео по архитектуре приложения на нексте, раньше был fsd но cra умер. как правильно организовывать структуру с призмой бд стейтменеджером итд, спасибо
@maxbogdan9298
@maxbogdan9298 Жыл бұрын
Привет, а можна добавлять посты например конент менеджеру без запуска приложения санити?
@gedonik
@gedonik Жыл бұрын
Отличный материал! Хотелось бы больше масштабных проектов. Вы на работе тоже vs code используете или web storm ? Спасибо вам большое!
@webelart
@webelart Жыл бұрын
vs code, да. Есть ребята, которые web storm используют
@user-uk4ei5zj2b
@user-uk4ei5zj2b Ай бұрын
спасибо за урок. Вот такой вопрос: когда делаешь приложение для заказчика то ему нужно сделать отдельный аккаунт Sanity? и когда заливаешь проект на хостинг, то в санити нужно заменить url студии? спасибо
@vadicus6534
@vadicus6534 Жыл бұрын
Наконец я сделал этот блог) Очень увлекательно было, спасибо за такой классный урок. Я делал на ts и по ходу попадались небольшие сложности, особенно при деплое на версел он ругался и ломался, но все в итоге получилось) и вот незадача - я не понимаю как теперь администрировать блог. надо локально запускать у себя проект и там добавлять посты? или если санити уже в нашем билде в верселе то оттуда как то? Помоги пожалуйста до конца понять что мы наделали)))
@webelart
@webelart Жыл бұрын
Круто, я рада, что завершили. Вообще там интересно этот проект можно затеплоить отдельно от sanity платформы. Т.е. по факту мы имеем две разные платформы: одна с приложением на nextjs, другая sanity. Попробуйте поизучать в направлении деплоя sanity
@vadicus6534
@vadicus6534 Жыл бұрын
@@webelart то есть надо папку с санити извлечь из проекта и отдельным репозиторием его так же на версель деплоить? оно будет так работать? сам клиент и санити напрямую не связаны между собой?
@anastasiiacherkashina4343
@anastasiiacherkashina4343 Жыл бұрын
Спасибо за отличное видео! На основе вашего тьюториала делаю свое портфолио начинающего веб-разработчика) Было бы здорово больше комментариев по реализации. Я если что-то не понимаю, то пытаюсь гуглить и разбираться, но не всегда удается понять. Буду благодарна, если ответите на вопросы, что это за синтаксис: 1. import cl from 'classnames'; Что такое classnames и почему оно принимает в качестве аргументов className, styles.cover? 2. Для чего файл reset.scss?
@webelart
@webelart Жыл бұрын
Это библиотека, которая просто позволяет объединять классы, если их несколько у компоненты, например если несколько классов у элемента, плюс некоторые классы можно класть под условия. и если isShown true, то класс появится. Просто довольно удобная. :) Вот ссылка www.npmjs.com/package/classnames
@TenthHacker
@TenthHacker Жыл бұрын
Это было круто 👍 Всё получилось. Скажите, а папки node_modules обязательно хранить на компе или можно сразу удалить?
@webelart
@webelart Жыл бұрын
Они нужны для запуска проекта.Но на GitHub их заливать не нужно.
@igormajrov8444
@igormajrov8444 Жыл бұрын
Как быть с заголовками на кириллице? Slug автоматически можно как-то транслитерировать?
@webelart
@webelart Жыл бұрын
🤔 вы можете написать функцию преобразования. Текущая наша просто в нижний регистр переводит и пробелы удаляет. Можно поискать библиотеку транслитерации и её заюзать.
@user-fp8so9gz2y
@user-fp8so9gz2y Жыл бұрын
Крутой контент Елена ! Спасибо! Очень хорошо все раскладываете по полочкам! Возможно Вы подскажете, почему [slug] возврашает null?
@webelart
@webelart Жыл бұрын
Рада, что понравился, Наталья! Подскажите минуту?
@user-fp8so9gz2y
@user-fp8so9gz2y Жыл бұрын
@@webelart Елена, спасибо огромное за отклик! На 2:24 когда Вы выводите в console.log (post), у меня ничего не выводится, [slug].js:8 null. И на этом встала и не пойму в чем ошибка))
@user-fp8so9gz2y
@user-fp8so9gz2y Жыл бұрын
@@webelartОчень буду благодарна Вашей помощи))
@webelart
@webelart Жыл бұрын
@@user-fp8so9gz2y Есть только предположение, что у вас нет урла... Но нужно смотреть код, так сложно понять. Вы можете скачать мой код: github.com/liveldi/my_blog и проверить где у вас ошибка.
@user-fp8so9gz2y
@user-fp8so9gz2y Жыл бұрын
@@webelartспасибо огромное за подсказку!
@igormajrov8444
@igormajrov8444 Жыл бұрын
После установки next и sanity выдает конфликт между настройками .eslintrc.json и .eslintrc. Как это починить?
@webelart
@webelart Жыл бұрын
А вы sanity в отдельную папку установили? Т.е. .eslintrc.json должен быть у nextjs проекта. А .eslintrc у sanity_my_super_blog в папке внутри. Кстати ещё можно sanity положить в отдельную папку вообще. Т.е. не в первый проект. А чтобы папочки были рядом. Next.js проект и sanity. Всё будет работать тоже.
@alexanderlisovskiy8167
@alexanderlisovskiy8167 Жыл бұрын
Что думаете на счет Strapi? Там куда больше преимуществ как по мне
@webelart
@webelart Жыл бұрын
Не пользовалась, рекомендуете? Какие преимущества видите?
@demptd13
@demptd13 Жыл бұрын
круто! все понравилось, много нового узнал, это первое видео с канала, которое попалось, буду смотреть теперь) единственный вопрос... почему такая большая задержка при рендере slug-страниц, такого точно не должно быть...
@webelart
@webelart Жыл бұрын
Да я тоже думала, что как-то долго. Надо nextjs подробнее поразбивать. У него есть пререндеры. Но всё-равно, было бы лучше если на страницу переход произошел и был лоадер.., чем ты остаешься на прошлой страницы и как будто ничего не случилось
@demptd13
@demptd13 Жыл бұрын
@@webelart я делал в учебных целях пару небольших проектов на Нексте, там из-под капота очень крутой функционал как отловить событие смены роута и повесить Лодер, хочу к вашему проекту кое-что прикрутить, посмотрим что получится ) А за видео реально спасибо, очень доходчиво все и понятно
@webelart
@webelart Жыл бұрын
@@demptd13 Интересно, если что-то найдёте как ускорить - пишите! Рада, что материал понравился! ❤
@demptd13
@demptd13 Жыл бұрын
@@webelart видел в комментариях под этим видео ссылку на возможность реализации комментариев, не рассматривали вариант сделать вторую часть к этому видео?) с комментариями
@webelart
@webelart Жыл бұрын
@@demptd13 Пока нет, есть темы, которые хочется покрыть. Но я подумала в этом направлении, кто знает что там будет в будущем... :D
@user-bt3hr2ob9q
@user-bt3hr2ob9q Жыл бұрын
а как сделать еще удаление и редактирование поста с клиента?
@webelart
@webelart Жыл бұрын
Вы хотите, чтобы пользователь удалял ваши посты? :) Обычно смысл в том, что это делается на админской стороне. Либо нужна клиентская админка
@narek1771
@narek1771 Жыл бұрын
Привет Елена я питаюсь работать в фрилансе и у меня попросили админ панель могу и советуешь ли ты использовать Sanity ?
@webelart
@webelart Жыл бұрын
Да, крутая штука!
@webelart
@webelart Жыл бұрын
Но я бы уточнила у заказчика, нормально ему будет такая панель. Вообще возможностей там куда. Вы попробуйте сделать промо возможностей и показать заказчику.
@narek1771
@narek1771 Жыл бұрын
@@webelart огромное спасибо за ответ и вообще за уроки 💛💚
@bloggerfox
@bloggerfox Жыл бұрын
Хмммм. Вопросик есть. Фронт и бэк в одну папку залили. У каждого свой package.json. Потом, перезаписали пакеты с бэка поверх фронта. С самого начала нельзя было так сделать? Я не могу понять логику таких виражей)))
@webelart
@webelart Жыл бұрын
Так пакеты не с бека, пакеты для фронта для соединения с беком. По факту можно создать две разные папки просто вытащить sanity_my_super_blog и все будет работать также. Все в одной папке просто, чтобы был один репо.
@igormajrov8444
@igormajrov8444 Жыл бұрын
Еще вопросик. Получается владелец сайта постоянно привязан к сервису sanity. Не минус ли это большой?
@webelart
@webelart Жыл бұрын
В чем видите минус?
@igormajrov8444
@igormajrov8444 Жыл бұрын
@@webelart может выйти дороже хостинга или выделенного сервера при превышении лимита free аккаунта. ... Есть ли доступ по FTP к файлам? Доступ к базе? ...
@webelart
@webelart Жыл бұрын
@@igormajrov8444 Не факт. Например на digital ocean у меня хостинг плачу 25 долларов в месяц кажется и по факту у меня там голая машинка. Тут же вам предоставляется и база данных и уже крутые интерфейсные возможности, о многом просто не нужно думать и тратить деньги на доп. время разработчиков. Здесь можно посчитать сколько времени экономится и сколько стоит тот же Django программист в месяц, а их обычно не один человек нужно. Мы с Django перешли на Sanity, производительность выросла в 3 раза и это по запросам. И скорость разработки тоже возраста. Надо будет кстати на работе про это разузнать, интересная тема сколько ресурсов у нас по факту экономится.
@webelart
@webelart Жыл бұрын
@@igormajrov8444 Но я вас поняла, что чем больше пользователей, больше запросов, больше цена.
@99k27
@99k27 Жыл бұрын
Спасибо за контент! могли бы подсказать как одновременно менять имена? 0:58:03
@webelart
@webelart Жыл бұрын
Тут автоматически выделяется от снипета rafce. Однако в редакторе VS Code можете выделить слово и зажав cmd и кликая D клавишу вы постепенно выбираете все совпадения (для мака, для window может ctrl & D, я точно не знаю).
@99k27
@99k27 Жыл бұрын
Ctrl + f2 как выяснилось) чет сложный какой-то урок, еще полчаса осталось. весь день сегодня осваивал)))(ну как осваивал. копировал с видео)
@webelart
@webelart Жыл бұрын
@@99k27 А вы с реактом до этого работали? Скиньте потом ссылку, что получилось.
@99k27
@99k27 Жыл бұрын
@@webelart не, мой первый опыт с реактом связан с вашим роликом )
@igormajrov8444
@igormajrov8444 Жыл бұрын
Eslint не хочет сохранять как у вас. Все выравнивает построчно. У вас на гите есть настройки линта?)))
@webelart
@webelart Жыл бұрын
Что за проблемы с eslint?
@igormajrov8444
@igormajrov8444 Жыл бұрын
@@webelart как ы написал выше
@webelart
@webelart Жыл бұрын
@@igormajrov8444 На GitHub всё тоже самое, что и здесь.
@99k27
@99k27 Жыл бұрын
Интересные у вас закладки в браузере
@webelart
@webelart Жыл бұрын
Пишите минуту заблюрю :)
@99k27
@99k27 Жыл бұрын
@@webelart не настолько интересные)) подскажите пожалуйста, почему у меня в cmd не видит команду git? Десктопная версия установлена.
@webelart
@webelart Жыл бұрын
@@99k27 С windows мне сложно, пишут что должна быть отдельная консоль git bash support.codebasehq.com/articles/getting-started/git-on-windows
@99k27
@99k27 Жыл бұрын
@@webelart спасибо большое ) попробую сегодня) этот проект может служить конструктором для других проектов?
@webelart
@webelart Жыл бұрын
@@99k27 Смотря что вы подразумеваете под конструктором. Можно расширять, делать, другие комбинации. В зависимости от ваших целей.
@silenciomar
@silenciomar Жыл бұрын
😅блин, скорее бы дойти уровня, чтобы понимать это видео. А то пока начинающая еще
@webelart
@webelart Жыл бұрын
Давай, давай. Расти!!!! ❤️‍🔥 Пусть начала и открытий - это потрясающий путь всегда!
@MisaNia25
@MisaNia25 Жыл бұрын
Можешь Roadmap сделать по твоему каналу как и что изучать постепенно ?
@webelart
@webelart Жыл бұрын
@@MisaNia25 Хорошо, сделаю.
@igormajrov8444
@igormajrov8444 Жыл бұрын
ESLint ругается, что await - зарегистрированное слово.
@webelart
@webelart Жыл бұрын
Скинете кусок кода, что вы написали?
@igormajrov8444
@igormajrov8444 Жыл бұрын
@@webelart по видосу пишу))) export const getServerSiteProps = ({async}) => { const {posts, total} = await loadData(0, LOAD_MORE_STEP) } Это сообщение eslint: [{ "resource": "/d:/_Coding/nextjs_sanity_fullstack/pages/index.js", "owner": "eslint", "severity": 8, "message": "Parsing error: Unexpected reserved word 'await'. (32:25)", "source": "eslint", }]
@igormajrov8444
@igormajrov8444 Жыл бұрын
по ходу перемудрил в = ({async}) => )))
@webelart
@webelart Жыл бұрын
@@igormajrov8444 Да :) export const getServerSiteProps = async ('я не помню что здесь') => { const {posts, total} = await loadData(0, LOAD_MORE_STEP) }
@webelart
@webelart Жыл бұрын
@@igormajrov8444 async идет перед функцией, обозначая по факту, что функция - промис.
@Ролтун
@Ролтун Жыл бұрын
Это я за 2 с половиной часа что-ли сделаю блог?
@webelart
@webelart Жыл бұрын
ДААА! :)))
@Ролтун
@Ролтун Жыл бұрын
@@webelart Ну огонь. Мне еще комменты nested добавить и ок
@webelart
@webelart Жыл бұрын
@@Ролтун Кстати да, крутая идея! И походу такое можно сделать. css-tricks.com/how-to-create-a-commenting-engine-with-next-js-and-sanity/
@igormajrov8444
@igormajrov8444 Жыл бұрын
Засада с картинами. Я уже с англ версии все пакеты поднимал. И там, и здесь ругается на пустой url(): 32 | 33 | src={urlFor(image).url()} | ^ 34 | alt={image.caption} 35 | width={100} 36 | height={100}
@webelart
@webelart Жыл бұрын
Есть возможность прислать ссылку на GitHub?
@igormajrov8444
@igormajrov8444 Жыл бұрын
@@webelart Yaboooo! At last. Перезапостил все статьи. Картинки обновились, все заработало. Перекопал весь инет. Даже нашел совет, что надо отключить SSR)))
@webelart
@webelart Жыл бұрын
@@igormajrov8444 О, ну круто! Поздравляю, вы прошли игру! 😎❤‍🔥 Хаха, вспомнила про игру в кальмара что-то после этой фразы 😂😂😂
@igormajrov8444
@igormajrov8444 Жыл бұрын
@@webelart пока играл в эту игру, перевернул сеть. Это ж стремно. Если такой баг на крупном проекте возникнет. Это ж капут будет.
@webelart
@webelart Жыл бұрын
@@igormajrov8444 Согласна с вами, если что-то такое не постоянное присутствует. Нужно изучать почему такое произошло, возможно есть какая-то понятная проблема. Для предотвращения ошибок, можно проверить существование url или выхода, т.е. интерфейсом предусмотреть. Плюс проверить required поля в админка, но подозреваю у вас там оно прописано. В мире веб-разработки всякое может быть, картинка может действительно стать недоступна по каким-то причинам. Поэтому надо предусматривать со всех сторон, особенно для продакшена. Как я говорила в видео, у нас используется Sanity для довольно крупного продукта. Но мы им через микросервис манипулируем и картинки там же преобразуем.
Пишем и подробно разбираем алгоритм Quick Sort на JavaScript | Быстрая сортировка
32:24
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 9 М.
Разбор Next.js Server Actions!
17:02
PurpleSchool | Anton Larichev
Рет қаралды 10 М.
Самый Молодой Актёр Без Оскара 😂
00:13
Глеб Рандалайнен
Рет қаралды 6 МЛН
HAPPY BIRTHDAY @mozabrick 🎉 #cat #funny
00:36
SOFIADELMONSTRO
Рет қаралды 17 МЛН
Sigma Kid Hair #funny #sigma #comedy
00:33
CRAZY GREAPA
Рет қаралды 31 МЛН
TypeScript от А до Я - часть 1: primitives, objects, array, types, enums, interfaces
44:38
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 40 М.
My opinion on Angular 18 & React 19
9:47
Maximilian Schwarzmüller
Рет қаралды 52 М.
Build Beautiful Landing Pages FAST with Next.js and shadcn/ui
36:31
Skill Issue Studio
Рет қаралды 2,3 М.
Разбираем хуки (hooks) в React по доке и на примере todo листа | уроки JavaScript
1:06:51
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 21 М.
Алгоритм бинарного поиска на JavaScript
18:00
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 8 М.
Самый Молодой Актёр Без Оскара 😂
00:13
Глеб Рандалайнен
Рет қаралды 6 МЛН