easydev

easydev

Веб-разработка простым языком

Поддержка канала: www.donationalerts.com/r/easydev

Пікірлер

  • @user-du4oo1ig1o
    @user-du4oo1ig1o15 сағат бұрын

    Твои видео - единственные, которые помогли полностью разобраться с Next! Огромное спасибо!

  • @user-ot6gh4ym2i
    @user-ot6gh4ym2i16 сағат бұрын

    Спасибо огромное Вам!!!

  • @kkkotiqqq
    @kkkotiqqqКүн бұрын

    Спасибо за видео)

  • @Sylar7773
    @Sylar7773Күн бұрын

    Спасибо огромное!!!

  • @tontontonic
    @tontontonicКүн бұрын

    Я снова сюда с вопросом) допустим есть страницы с фильмами (films/1,films/2,films/3 и тд), они динамические, на каждой странице карточки с фильмами по 100 штук (films/[filmpage]/page.tsx). И страниц много, но я хочу их сделать статическими (хотя бы первые 3) ЕСЛИ В УРЛЕ НЕТ СЕРЧ ПАРАМЕТРОВ, а если есть серчпарамс в урле, то динамические. Я попробовал сбилдить проект с использованием generateStaticParams => [{ filmpage: 1 },{ filmpage: 2 },{ filmpage: 3 }]. проект билдится, первые 3 страницы становятся очень быстрыми, но.. У меня возникают две проблемы. 1 - перестают работать поиски серчпарамс, он просто не обращает на них внимания и быстро перекидывает на статическую страницу (films/1), хотя в урле например (films/1?title=t) 2 - перестает работать лоадер на этом пути (films/4,films/5 и тд) все дальнейшие переходы в этом роуте загружаются без лоадера погуглив - все пишут, что без сторонних костылей невозможно сделать статику без серчпарамс в урле, а динамику с серчпарамс, это так???

  • @efimkapliy6370
    @efimkapliy63707 күн бұрын

    Отличное видео, актуально в 2024!

  • @user-es3rb2ef6y
    @user-es3rb2ef6y10 күн бұрын

    Конкретно по данной теме - это самое лучшее видео-обьяснение что я видел. Спасибо автору

  • @EdmundBowie-n3z
    @EdmundBowie-n3z12 күн бұрын

    А какие методы вы используете для обработки потоков данных в JavaScript? я сам долго выбирал курсы по IT, рассматривал разные компании, но остановился на Skypro. После обучения смог перейти на удаленку и теперь доволен работой))

  • @easydev1205
    @easydev120512 күн бұрын

    реклама?)

  • @mushnikov35
    @mushnikov359 күн бұрын

    спасибо, не выберу Skypro)

  • @МихаилЛюбарец
    @МихаилЛюбарец13 күн бұрын

    18:25 - 23:50 А зачем было ставить лишние пакеты и генерировать 10к строк кода, если можно было описать типы и это было заняло 10 строчек?

  • @easydev1205
    @easydev120513 күн бұрын

    Там же я объясняю зачем. Невнимательно смотрели) Потому что в реальном проекте это будет так. В ролике просто микро-проект для примера. В реальном проекте писать вручную всё будет очень долго и поддерживать в актуальном состоянии практически нереально

  • @sergeydostovalov6180
    @sergeydostovalov618013 күн бұрын

    Ну переприлумали пхп)

  • @user-kj9mm2gc3r
    @user-kj9mm2gc3r13 күн бұрын

    Супер очень помогло разобрать с роутами в новой версии

  • @victormog
    @victormog14 күн бұрын

    С самого начала чесались руки написать про генераторы... :-)) Спасибо! Хорошо для понимания хронологическое развитие подходов в самом JS

  • @sk89061
    @sk8906114 күн бұрын

    Для обхода деревьев тоже должно подойти? PS: подача супер

  • @easydev1205
    @easydev120514 күн бұрын

    Спасибо! Генераторы - да, хорошо подходят

  • @thesweetlife843
    @thesweetlife84315 күн бұрын

    У меня хук onRenderTracked срабатывает каждый раз при изменении данных

  • @АлексейДромов
    @АлексейДромов16 күн бұрын

    Возможно что-то изменилось за прошедшее время с router-cache, но если мы изменим данные на сервере, то на клиенте они обновятся через 25 секунд без обновления страницы, но пользователю нужно будет перейти по ссылкам <Link>(запросы будут идти заново). Если мы обновляем страницу, то эти данные обновятся мгновенно - получается SSR. Если не обновляем страницу, а переходим по ссылкам <Link> , то через 25 секунд на клиенте произойдут повторные запросы на сервер - своеобразный ISR на стороне клиента.

  • @user-zu3ld8is4y
    @user-zu3ld8is4y22 күн бұрын

    thanks a lot

  • @abcolut
    @abcolut23 күн бұрын

    Благодарю, за труд

  • @виртуоз_ру
    @виртуоз_ру23 күн бұрын

    👍

  • @happy_cutman
    @happy_cutman23 күн бұрын

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

  • @easydev1205
    @easydev120523 күн бұрын

    Спасибо!)

  • @-rk
    @-rk23 күн бұрын

    Спасибо за видео Что за тема?)

  • @easydev1205
    @easydev120523 күн бұрын

    monokai.theme-monokai-pro-vscode

  • @ashimov1970
    @ashimov197023 күн бұрын

    спасибо тебе, добрый человек

  • @truegotha
    @truegotha24 күн бұрын

    Очень нравятся серверные компоненты, но столкнулся с огромной проблемой... У меня есть отдельный бэкенд на php, куда я шлю запросы и если я отправляю запрос из клиентского компонента, то я могу использовать xdebug и у меня выполнение останавливается на брекпойнтах и я могу отлаживать запросы, но когда делаю точно такой же запрос из серверного компонента, дебаг не работает и исполнение кода не останавливается на брекпойнтах... не понимаю в чем проблема и как обойти... По идее это же самый обычный http запрос, только выполняется до рендера страницы...

  • @easydev1205
    @easydev120523 күн бұрын

    странно... ну да, обычный запрос. Кажется нужно смотреть в сторону php

  • @SM-xp8tw
    @SM-xp8tw28 күн бұрын

    Очень круто все объясняешь, просто супер, странно что так мало подписчиков, но уверен это на время )) Кстати что за расширение у тебя в редакторе, которое вставляет подсказки по хукам ?

  • @easydev1205
    @easydev120523 күн бұрын

    Спасибо! это codeium

  • @webdeveloper5770
    @webdeveloper577029 күн бұрын

    Всё это очень круто только это просто хитрые способы комбинации потоков RxJs (которые лично я за 6 лет не наблюдал в реальных проектах) а не про связь компонентов через сервисы. Пример для олимпиады. Красиво но не используемо.

  • @easydev1205
    @easydev120523 күн бұрын

    ну то что красиво уже отлично)

  • @-rk
    @-rk29 күн бұрын

    Отличное видео! Спасибо за объяснение) 😊

  • @user-we1np6nb6o
    @user-we1np6nb6oАй бұрын

    такой замечательный автор, поясняет все очень доступно и классно, но почему не выкидывает в рекомендации. даже когда ищу какие то ролики чтобы пересмотреть, то все равно не выдает, даже когда намеренно ищу.. за что.. автору ЛЮТЕЙШИЙ респект, спасибо за контент

  • @easydev1205
    @easydev120523 күн бұрын

    Спасибо большое!

  • @big_606
    @big_606Ай бұрын

    в чем разница между серверным компонентом и клиентским с getStaticProps/fetch()? На клиентском же тоже происходит пререндер на сервере -> на клиент летит html + гидрация + логика хуков React итд если она есть, а в случае с серверным компонентом летит тупо уже собранный html (но без интерактива). Вопрос: почему мы не можем просто везде писать 'use client', если страницы будут все равно пререндериться? Какая выгода от серверных компонентов по сравнению с клиентскими SSG? Это же по сути то же самое, но в client+ssg можно использовать стейты. В чем выгода? Не понимаю разницы

  • @njsaab9722
    @njsaab9722Ай бұрын

    Спасибо большое!!! Максимально корректный и полезный урок, очень структурировано, разобранно все по частицам, у Вас очень хорошо получается преподавать)

  • @zybmik
    @zybmikАй бұрын

    делаю сейчас проект и не знал как это сделать, и увидел твой короткий видос где все круто разжевано и понятно, а главное без воды. Спасибо большое за твои старания !!!

  • @tontontonic
    @tontontonicАй бұрын

    не знаю где задать вопрос гуглил - найти решения не смог допустим у меня есть директория с фильмами, где длинный список с пагинацией,поиск по названию итд использую appRouter страница находится по пути films/[[...filmpage]]/page.js чтоб /films вел сразу на первую страницу фильмов ( /films и films/1 это одна и та же страница ) а дальше films/2 и тд но у меня не показывается лоаддер на этой странице при смене серчпараметров , куда бы я не вставлял файл loading.js пробовал и в папку [[...filmpage]] и в папку films вставлять этот лоадинг, но он не отображается я пробовал даже создать такую структуру (films)/films/[[...filmpage]]/page.js и в папку (films) добавил этот лоадер, и даже во все папки подряд но ни чего не помогает , при переходе с /films на /films?title=название лоадер не отображается хотя если переход будет с /films/1 на /films/1?title=название то лоадер появится так нехочется все страницы и пути править, есть этому какое-то решение, куда этот лоадер запехать, чтоб он везде отображался?

  • @easydev1205
    @easydev1205Ай бұрын

    github.com/vercel/next.js/issues/53543

  • @tontontonic
    @tontontonic8 күн бұрын

    @@easydev1205 пробовал и в суспенс оборачивать стр , и передавая ей в фалбак лоадер, делал уникальный ключ из строки урла+серчпарамс ни че не помогло с первой страницы он не врубает лоадер чтоб я не делал, но если страница 2 и тд, то там лоадер врубается, короче работает как захочет пипец там все сырое, куча жалоб гуглится и ни каких решений кроме костылей) которые у кого-то работают, а у кого-то нет (( тоже самое с анимацией переходов между роутами, на старую версию роутера куча примеров с фрэймермоушен на новую - хрена лысого)) переход с роута на роут сразу обрубает старую страницу и ее исчезновение ни как не возможно анимировать фреймермоушеном (нагуглил костыль с каким то кастомным frozenRouter через LayoutRouterContext, но он тоже глючный )

  • @oleksandrterletskyi7269
    @oleksandrterletskyi7269Ай бұрын

    how do you execute typescript directly in editor?

  • @easydev1205
    @easydev120523 күн бұрын

    it is mystery.... ))) quokkajs.com/

  • @Virisound
    @VirisoundАй бұрын

    Наконец-то понятное объяснение. Спс, подписался.

  • @Zreus-ry9el
    @Zreus-ry9elАй бұрын

    Спасибо за видео! Можно подробнее рассказать для чего нам useCallback, если можно заменить его useMemo? В чем конкретно заключается удобство/преимущество useCallback при работе с функциями?

  • @kanstantsinhrytsuk7901
    @kanstantsinhrytsuk7901Ай бұрын

    Приятно слушать 🔥

  • @_Good_Evening_
    @_Good_Evening_Ай бұрын

    Огромное спасибо за эту серию видосов про NextJS!!!!!!!!!!!!

  • @nikewhite4471
    @nikewhite4471Ай бұрын

    Молодец, логично и понятно подаешь материал!

  • @juststart3569
    @juststart3569Ай бұрын

    function productExceptSelf(nums) { const zeros = nums.filter(e => e === 0); const hasOneZero = zeros.length === 1; const hasFewZeros = zeros.length > 1; if (hasFewZeros) return nums.map(e => 0); const m = nums.reduce((r, e) => r * (e === 0 ? 1 : e), 1); return nums.map(e => hasOneZero ? (e === 0 ? m : 0) : m / e); };

  • @dmitry_st
    @dmitry_stАй бұрын

    Дякую за детальний і зрозумілий контент, дуже структороване і чітке роз'яснення.

  • @kiratoy4439
    @kiratoy4439Ай бұрын

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

  • @NursAcademy
    @NursAcademy2 ай бұрын

    слова нету отлично

  • @mryolo5334
    @mryolo53342 ай бұрын

    Автор, вы случайно не продаете курсы на Udemy. Очень понравилось ваше объяснение! Спасибо!

  • @easydev1205
    @easydev120523 күн бұрын

    Спасибо! на Udemy пока нет, может в будущем

  • @RussianFrontend
    @RussianFrontend2 ай бұрын

    для чего использовать брэндирование строк например, если мы можем просто указать тип аля 'a' | 'b' | 'c' ?

  • @Script696
    @Script6962 ай бұрын

    Нормально, молодец!

  • @fayster91
    @fayster912 ай бұрын

    Сначала попробовал сам решить. Получилось следующее: 1. В первом цикле перемножаем каждое число 2. Во втором цикле делим полученное ранее значение на каждый элемент массива На выходе получаем тоже самое. Но есть проблема, если в массиве есть 0. Но это тоже решается путем доп. проверок

  • @RamaRama-qv3jo
    @RamaRama-qv3jo2 ай бұрын

    Огромное спасибо за этот цикл видео! Так просто и понятно никто базу не разбирал)

  • @ruslanryapov6221
    @ruslanryapov62212 ай бұрын

    Лучшие объяснения по typescript, которые я встречал! Большое спасибо тебе, easydev!

  • @ringnull
    @ringnull2 ай бұрын

    Боюсь перехвалить, но твои уроки лучшее, что я видел по next.

  • @lygatastra4633
    @lygatastra46332 ай бұрын

    Странно loading.tsx почему-то не отображается как ни кручу. Версия некста 14.2

  • @user-rk1vb7yt7t
    @user-rk1vb7yt7t2 ай бұрын

    изменение пропсов не является причиной для ререндеров, это является лишь следствием ререндера

  • @easydev1205
    @easydev12052 ай бұрын

    Причиной

  • @user-rk1vb7yt7t
    @user-rk1vb7yt7t2 ай бұрын

    @@easydev1205 окей, в каких случаях происходит ререндер компонента при изменении его пропсов?(не используя memo)

  • @easydev1205
    @easydev12052 ай бұрын

    Если с точки зрения, что изменение локального состояния (которое идёт в пропсы) приводит к ререндерингу компонента и соответственно ререндерингу всех его дочерних компонентов - то да. Не сами по себе пропсы - причина - они связаны с рередерингом родителя

  • @dya-lv8mf
    @dya-lv8mf2 ай бұрын

    Спасибо за курс по NextJS! Как будто то, что я искал, здесь все ответы на мои вопросы, что мне было не понятно! Появилось представление что это такое и как с этим работать)) На RU ютубе однозначно находка!!!)) Удачи в дальнейшем развитии канала!

  • @user-xe4be7iq1q
    @user-xe4be7iq1q2 ай бұрын

    5:00 +