Твои видео - единственные, которые помогли полностью разобраться с Next! Огромное спасибо!
@user-ot6gh4ym2i16 сағат бұрын
Спасибо огромное Вам!!!
@kkkotiqqqКүн бұрын
Спасибо за видео)
@Sylar7773Күн бұрын
Спасибо огромное!!!
@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 и тд) все дальнейшие переходы в этом роуте загружаются без лоадера погуглив - все пишут, что без сторонних костылей невозможно сделать статику без серчпарамс в урле, а динамику с серчпарамс, это так???
@efimkapliy63707 күн бұрын
Отличное видео, актуально в 2024!
@user-es3rb2ef6y10 күн бұрын
Конкретно по данной теме - это самое лучшее видео-обьяснение что я видел. Спасибо автору
@EdmundBowie-n3z12 күн бұрын
А какие методы вы используете для обработки потоков данных в JavaScript? я сам долго выбирал курсы по IT, рассматривал разные компании, но остановился на Skypro. После обучения смог перейти на удаленку и теперь доволен работой))
@easydev120512 күн бұрын
реклама?)
@mushnikov359 күн бұрын
спасибо, не выберу Skypro)
@МихаилЛюбарец13 күн бұрын
18:25 - 23:50 А зачем было ставить лишние пакеты и генерировать 10к строк кода, если можно было описать типы и это было заняло 10 строчек?
@easydev120513 күн бұрын
Там же я объясняю зачем. Невнимательно смотрели) Потому что в реальном проекте это будет так. В ролике просто микро-проект для примера. В реальном проекте писать вручную всё будет очень долго и поддерживать в актуальном состоянии практически нереально
@sergeydostovalov618013 күн бұрын
Ну переприлумали пхп)
@user-kj9mm2gc3r13 күн бұрын
Супер очень помогло разобрать с роутами в новой версии
@victormog14 күн бұрын
С самого начала чесались руки написать про генераторы... :-)) Спасибо! Хорошо для понимания хронологическое развитие подходов в самом JS
@sk8906114 күн бұрын
Для обхода деревьев тоже должно подойти? PS: подача супер
@easydev120514 күн бұрын
Спасибо! Генераторы - да, хорошо подходят
@thesweetlife84315 күн бұрын
У меня хук onRenderTracked срабатывает каждый раз при изменении данных
@АлексейДромов16 күн бұрын
Возможно что-то изменилось за прошедшее время с router-cache, но если мы изменим данные на сервере, то на клиенте они обновятся через 25 секунд без обновления страницы, но пользователю нужно будет перейти по ссылкам <Link>(запросы будут идти заново). Если мы обновляем страницу, то эти данные обновятся мгновенно - получается SSR. Если не обновляем страницу, а переходим по ссылкам <Link> , то через 25 секунд на клиенте произойдут повторные запросы на сервер - своеобразный ISR на стороне клиента.
@user-zu3ld8is4y22 күн бұрын
thanks a lot
@abcolut23 күн бұрын
Благодарю, за труд
@виртуоз_ру23 күн бұрын
👍
@happy_cutman23 күн бұрын
Просто оставлю тут комментарий в знак поддержки и уважения автору, спасибо! Призываю всех, смотрящих это видео, поступать так же.
@easydev120523 күн бұрын
Спасибо!)
@-rk23 күн бұрын
Спасибо за видео Что за тема?)
@easydev120523 күн бұрын
monokai.theme-monokai-pro-vscode
@ashimov197023 күн бұрын
спасибо тебе, добрый человек
@truegotha24 күн бұрын
Очень нравятся серверные компоненты, но столкнулся с огромной проблемой... У меня есть отдельный бэкенд на php, куда я шлю запросы и если я отправляю запрос из клиентского компонента, то я могу использовать xdebug и у меня выполнение останавливается на брекпойнтах и я могу отлаживать запросы, но когда делаю точно такой же запрос из серверного компонента, дебаг не работает и исполнение кода не останавливается на брекпойнтах... не понимаю в чем проблема и как обойти... По идее это же самый обычный http запрос, только выполняется до рендера страницы...
@easydev120523 күн бұрын
странно... ну да, обычный запрос. Кажется нужно смотреть в сторону php
@SM-xp8tw28 күн бұрын
Очень круто все объясняешь, просто супер, странно что так мало подписчиков, но уверен это на время )) Кстати что за расширение у тебя в редакторе, которое вставляет подсказки по хукам ?
@easydev120523 күн бұрын
Спасибо! это codeium
@webdeveloper577029 күн бұрын
Всё это очень круто только это просто хитрые способы комбинации потоков RxJs (которые лично я за 6 лет не наблюдал в реальных проектах) а не про связь компонентов через сервисы. Пример для олимпиады. Красиво но не используемо.
@easydev120523 күн бұрын
ну то что красиво уже отлично)
@-rk29 күн бұрын
Отличное видео! Спасибо за объяснение) 😊
@user-we1np6nb6oАй бұрын
такой замечательный автор, поясняет все очень доступно и классно, но почему не выкидывает в рекомендации. даже когда ищу какие то ролики чтобы пересмотреть, то все равно не выдает, даже когда намеренно ищу.. за что.. автору ЛЮТЕЙШИЙ респект, спасибо за контент
@easydev120523 күн бұрын
Спасибо большое!
@big_606Ай бұрын
в чем разница между серверным компонентом и клиентским с getStaticProps/fetch()? На клиентском же тоже происходит пререндер на сервере -> на клиент летит html + гидрация + логика хуков React итд если она есть, а в случае с серверным компонентом летит тупо уже собранный html (но без интерактива). Вопрос: почему мы не можем просто везде писать 'use client', если страницы будут все равно пререндериться? Какая выгода от серверных компонентов по сравнению с клиентскими SSG? Это же по сути то же самое, но в client+ssg можно использовать стейты. В чем выгода? Не понимаю разницы
@njsaab9722Ай бұрын
Спасибо большое!!! Максимально корректный и полезный урок, очень структурировано, разобранно все по частицам, у Вас очень хорошо получается преподавать)
@zybmikАй бұрын
делаю сейчас проект и не знал как это сделать, и увидел твой короткий видос где все круто разжевано и понятно, а главное без воды. Спасибо большое за твои старания !!!
@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Ай бұрын
github.com/vercel/next.js/issues/53543
@tontontonic8 күн бұрын
@@easydev1205 пробовал и в суспенс оборачивать стр , и передавая ей в фалбак лоадер, делал уникальный ключ из строки урла+серчпарамс ни че не помогло с первой страницы он не врубает лоадер чтоб я не делал, но если страница 2 и тд, то там лоадер врубается, короче работает как захочет пипец там все сырое, куча жалоб гуглится и ни каких решений кроме костылей) которые у кого-то работают, а у кого-то нет (( тоже самое с анимацией переходов между роутами, на старую версию роутера куча примеров с фрэймермоушен на новую - хрена лысого)) переход с роута на роут сразу обрубает старую страницу и ее исчезновение ни как не возможно анимировать фреймермоушеном (нагуглил костыль с каким то кастомным frozenRouter через LayoutRouterContext, но он тоже глючный )
@oleksandrterletskyi7269Ай бұрын
how do you execute typescript directly in editor?
@easydev120523 күн бұрын
it is mystery.... ))) quokkajs.com/
@VirisoundАй бұрын
Наконец-то понятное объяснение. Спс, подписался.
@Zreus-ry9elАй бұрын
Спасибо за видео! Можно подробнее рассказать для чего нам useCallback, если можно заменить его useMemo? В чем конкретно заключается удобство/преимущество useCallback при работе с функциями?
@kanstantsinhrytsuk7901Ай бұрын
Приятно слушать 🔥
@_Good_Evening_Ай бұрын
Огромное спасибо за эту серию видосов про NextJS!!!!!!!!!!!!
@nikewhite4471Ай бұрын
Молодец, логично и понятно подаешь материал!
@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Ай бұрын
Дякую за детальний і зрозумілий контент, дуже структороване і чітке роз'яснення.
@kiratoy4439Ай бұрын
Спасибо за подробный и понятный контент, очень структорированное и четкое разъяснение.
@NursAcademy2 ай бұрын
слова нету отлично
@mryolo53342 ай бұрын
Автор, вы случайно не продаете курсы на Udemy. Очень понравилось ваше объяснение! Спасибо!
@easydev120523 күн бұрын
Спасибо! на Udemy пока нет, может в будущем
@RussianFrontend2 ай бұрын
для чего использовать брэндирование строк например, если мы можем просто указать тип аля 'a' | 'b' | 'c' ?
@Script6962 ай бұрын
Нормально, молодец!
@fayster912 ай бұрын
Сначала попробовал сам решить. Получилось следующее: 1. В первом цикле перемножаем каждое число 2. Во втором цикле делим полученное ранее значение на каждый элемент массива На выходе получаем тоже самое. Но есть проблема, если в массиве есть 0. Но это тоже решается путем доп. проверок
@RamaRama-qv3jo2 ай бұрын
Огромное спасибо за этот цикл видео! Так просто и понятно никто базу не разбирал)
@ruslanryapov62212 ай бұрын
Лучшие объяснения по typescript, которые я встречал! Большое спасибо тебе, easydev!
@ringnull2 ай бұрын
Боюсь перехвалить, но твои уроки лучшее, что я видел по next.
@lygatastra46332 ай бұрын
Странно loading.tsx почему-то не отображается как ни кручу. Версия некста 14.2
@user-rk1vb7yt7t2 ай бұрын
изменение пропсов не является причиной для ререндеров, это является лишь следствием ререндера
@easydev12052 ай бұрын
Причиной
@user-rk1vb7yt7t2 ай бұрын
@@easydev1205 окей, в каких случаях происходит ререндер компонента при изменении его пропсов?(не используя memo)
@easydev12052 ай бұрын
Если с точки зрения, что изменение локального состояния (которое идёт в пропсы) приводит к ререндерингу компонента и соответственно ререндерингу всех его дочерних компонентов - то да. Не сами по себе пропсы - причина - они связаны с рередерингом родителя
@dya-lv8mf2 ай бұрын
Спасибо за курс по NextJS! Как будто то, что я искал, здесь все ответы на мои вопросы, что мне было не понятно! Появилось представление что это такое и как с этим работать)) На RU ютубе однозначно находка!!!)) Удачи в дальнейшем развитии канала!
Пікірлер
Твои видео - единственные, которые помогли полностью разобраться с Next! Огромное спасибо!
Спасибо огромное Вам!!!
Спасибо за видео)
Спасибо огромное!!!
Я снова сюда с вопросом) допустим есть страницы с фильмами (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 и тд) все дальнейшие переходы в этом роуте загружаются без лоадера погуглив - все пишут, что без сторонних костылей невозможно сделать статику без серчпарамс в урле, а динамику с серчпарамс, это так???
Отличное видео, актуально в 2024!
Конкретно по данной теме - это самое лучшее видео-обьяснение что я видел. Спасибо автору
А какие методы вы используете для обработки потоков данных в JavaScript? я сам долго выбирал курсы по IT, рассматривал разные компании, но остановился на Skypro. После обучения смог перейти на удаленку и теперь доволен работой))
реклама?)
спасибо, не выберу Skypro)
18:25 - 23:50 А зачем было ставить лишние пакеты и генерировать 10к строк кода, если можно было описать типы и это было заняло 10 строчек?
Там же я объясняю зачем. Невнимательно смотрели) Потому что в реальном проекте это будет так. В ролике просто микро-проект для примера. В реальном проекте писать вручную всё будет очень долго и поддерживать в актуальном состоянии практически нереально
Ну переприлумали пхп)
Супер очень помогло разобрать с роутами в новой версии
С самого начала чесались руки написать про генераторы... :-)) Спасибо! Хорошо для понимания хронологическое развитие подходов в самом JS
Для обхода деревьев тоже должно подойти? PS: подача супер
Спасибо! Генераторы - да, хорошо подходят
У меня хук onRenderTracked срабатывает каждый раз при изменении данных
Возможно что-то изменилось за прошедшее время с router-cache, но если мы изменим данные на сервере, то на клиенте они обновятся через 25 секунд без обновления страницы, но пользователю нужно будет перейти по ссылкам <Link>(запросы будут идти заново). Если мы обновляем страницу, то эти данные обновятся мгновенно - получается SSR. Если не обновляем страницу, а переходим по ссылкам <Link> , то через 25 секунд на клиенте произойдут повторные запросы на сервер - своеобразный ISR на стороне клиента.
thanks a lot
Благодарю, за труд
👍
Просто оставлю тут комментарий в знак поддержки и уважения автору, спасибо! Призываю всех, смотрящих это видео, поступать так же.
Спасибо!)
Спасибо за видео Что за тема?)
monokai.theme-monokai-pro-vscode
спасибо тебе, добрый человек
Очень нравятся серверные компоненты, но столкнулся с огромной проблемой... У меня есть отдельный бэкенд на php, куда я шлю запросы и если я отправляю запрос из клиентского компонента, то я могу использовать xdebug и у меня выполнение останавливается на брекпойнтах и я могу отлаживать запросы, но когда делаю точно такой же запрос из серверного компонента, дебаг не работает и исполнение кода не останавливается на брекпойнтах... не понимаю в чем проблема и как обойти... По идее это же самый обычный http запрос, только выполняется до рендера страницы...
странно... ну да, обычный запрос. Кажется нужно смотреть в сторону php
Очень круто все объясняешь, просто супер, странно что так мало подписчиков, но уверен это на время )) Кстати что за расширение у тебя в редакторе, которое вставляет подсказки по хукам ?
Спасибо! это codeium
Всё это очень круто только это просто хитрые способы комбинации потоков RxJs (которые лично я за 6 лет не наблюдал в реальных проектах) а не про связь компонентов через сервисы. Пример для олимпиады. Красиво но не используемо.
ну то что красиво уже отлично)
Отличное видео! Спасибо за объяснение) 😊
такой замечательный автор, поясняет все очень доступно и классно, но почему не выкидывает в рекомендации. даже когда ищу какие то ролики чтобы пересмотреть, то все равно не выдает, даже когда намеренно ищу.. за что.. автору ЛЮТЕЙШИЙ респект, спасибо за контент
Спасибо большое!
в чем разница между серверным компонентом и клиентским с getStaticProps/fetch()? На клиентском же тоже происходит пререндер на сервере -> на клиент летит html + гидрация + логика хуков React итд если она есть, а в случае с серверным компонентом летит тупо уже собранный html (но без интерактива). Вопрос: почему мы не можем просто везде писать 'use client', если страницы будут все равно пререндериться? Какая выгода от серверных компонентов по сравнению с клиентскими SSG? Это же по сути то же самое, но в client+ssg можно использовать стейты. В чем выгода? Не понимаю разницы
Спасибо большое!!! Максимально корректный и полезный урок, очень структурировано, разобранно все по частицам, у Вас очень хорошо получается преподавать)
делаю сейчас проект и не знал как это сделать, и увидел твой короткий видос где все круто разжевано и понятно, а главное без воды. Спасибо большое за твои старания !!!
не знаю где задать вопрос гуглил - найти решения не смог допустим у меня есть директория с фильмами, где длинный список с пагинацией,поиск по названию итд использую 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=название то лоадер появится так нехочется все страницы и пути править, есть этому какое-то решение, куда этот лоадер запехать, чтоб он везде отображался?
github.com/vercel/next.js/issues/53543
@@easydev1205 пробовал и в суспенс оборачивать стр , и передавая ей в фалбак лоадер, делал уникальный ключ из строки урла+серчпарамс ни че не помогло с первой страницы он не врубает лоадер чтоб я не делал, но если страница 2 и тд, то там лоадер врубается, короче работает как захочет пипец там все сырое, куча жалоб гуглится и ни каких решений кроме костылей) которые у кого-то работают, а у кого-то нет (( тоже самое с анимацией переходов между роутами, на старую версию роутера куча примеров с фрэймермоушен на новую - хрена лысого)) переход с роута на роут сразу обрубает старую страницу и ее исчезновение ни как не возможно анимировать фреймермоушеном (нагуглил костыль с каким то кастомным frozenRouter через LayoutRouterContext, но он тоже глючный )
how do you execute typescript directly in editor?
it is mystery.... ))) quokkajs.com/
Наконец-то понятное объяснение. Спс, подписался.
Спасибо за видео! Можно подробнее рассказать для чего нам useCallback, если можно заменить его useMemo? В чем конкретно заключается удобство/преимущество useCallback при работе с функциями?
Приятно слушать 🔥
Огромное спасибо за эту серию видосов про NextJS!!!!!!!!!!!!
Молодец, логично и понятно подаешь материал!
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); };
Дякую за детальний і зрозумілий контент, дуже структороване і чітке роз'яснення.
Спасибо за подробный и понятный контент, очень структорированное и четкое разъяснение.
слова нету отлично
Автор, вы случайно не продаете курсы на Udemy. Очень понравилось ваше объяснение! Спасибо!
Спасибо! на Udemy пока нет, может в будущем
для чего использовать брэндирование строк например, если мы можем просто указать тип аля 'a' | 'b' | 'c' ?
Нормально, молодец!
Сначала попробовал сам решить. Получилось следующее: 1. В первом цикле перемножаем каждое число 2. Во втором цикле делим полученное ранее значение на каждый элемент массива На выходе получаем тоже самое. Но есть проблема, если в массиве есть 0. Но это тоже решается путем доп. проверок
Огромное спасибо за этот цикл видео! Так просто и понятно никто базу не разбирал)
Лучшие объяснения по typescript, которые я встречал! Большое спасибо тебе, easydev!
Боюсь перехвалить, но твои уроки лучшее, что я видел по next.
Странно loading.tsx почему-то не отображается как ни кручу. Версия некста 14.2
изменение пропсов не является причиной для ререндеров, это является лишь следствием ререндера
Причиной
@@easydev1205 окей, в каких случаях происходит ререндер компонента при изменении его пропсов?(не используя memo)
Если с точки зрения, что изменение локального состояния (которое идёт в пропсы) приводит к ререндерингу компонента и соответственно ререндерингу всех его дочерних компонентов - то да. Не сами по себе пропсы - причина - они связаны с рередерингом родителя
Спасибо за курс по NextJS! Как будто то, что я искал, здесь все ответы на мои вопросы, что мне было не понятно! Появилось представление что это такое и как с этим работать)) На RU ютубе однозначно находка!!!)) Удачи в дальнейшем развитии канала!
5:00 +