Пікірлер
@markschk
@markschk 4 күн бұрын
Можно я спать пойду? Я не могу уже все смотреть, я устал 😊 ладно еще два видосика и спать 😂
@Reservoirv
@Reservoirv 7 күн бұрын
Добрый день, подскажите пожалуйста по поводу переменной :query в роуте.... не могу понять как это работает.... Вот так: "console.log('/posts/query/:query'.match('/posts/query/test')); " это выдает "null", а по факту в приложении вроде работает и выдает "{ query: 'test' }". Мне бы просто понять почему и как это работает в коде, и почему не работает напрямую в "console.log()". И вообще, как ":query" приравнивается к "test"....
@EasyITChannel
@EasyITChannel 4 күн бұрын
Для обработки роутов используется сторонняя библиотека route-parser. Единственная в проекте. Я об этом упоминал. Обратите внимание на импорты. Роуты в проекте это не просто строки, а экземпляры класса Route и именно у них вызывается match. Когда Вы вызываете '/posts/query/:query'.match('/posts/query/test') то сравниваете строку '/posts/query/:query' и строку '/posts/query/test'. Эти две строки абсолютно точно не матчатся.
@Reservoirv
@Reservoirv 2 күн бұрын
@@EasyITChannel Понял, спасибо)
@XNMEPA
@XNMEPA 8 күн бұрын
Спасибо большое за прекрасный урок!
@---Maksim---
@---Maksim--- 8 күн бұрын
Есть неточности в видео: 1. Тело промиса не выполняется ни в каком отдельном потоке, выполняется синхронно в Call stack 2. В очередь микрозадач попадают именно коллбэки, переданные в then, catch, finally, соответственно после resolve или reject. 3. Если мы зарезолвили промис сразу (Promise.resolve()), то сам промис никуда не попадает, поведение будет такое же как в пункте 2, просто тут отсутствует само тело промиса.
@EasyITChannel
@EasyITChannel 4 күн бұрын
Спасибо, что нашли время на комментарий. 1. Синхронно? т.е. о Promise.race Вы не слышали? И тело промиса может заблокировать рендер UI? Интересненько. Или у Вас какая-то особенная интерпретация понятия "синхронно"? 2. Так точно, об этом я и говорю, только другими словами, для простого понимания и запоминания. 3. Т.е. Вы на полном серьезе думаете что Promise.resolv() возвращает какой-то особенный промис, а не точно такой же точно как любой другой, но зарезолвленный в рамках текущего макротаска? С точки зрения обработки промиса выходит есть мега-разница есть тело у промиса или нет тела? Совет - не нужно плодить сущности там, где все намного проще.
@Reservoirv
@Reservoirv 11 күн бұрын
Привет, а почему приложение работает только с vite, а например с Parcel или Webpack не хочет работать? Сам роутинг не работает...
@EasyITChannel
@EasyITChannel 11 күн бұрын
Это потому, что многое в vite реализовано автоматически "out of the box", а в том же webpack любую мелочь надо делать ручками. Дев сервер vite автоматически перенаправляет все запросы index.js. В webpack поддержку для history api надо настраивать отдельно в конфиге, что-то типа: devServer: { historyApiFallback: true, // вот это open: true, hot: true, port: 3000, static: { directory: path.join(__dirname, 'public'), // Директория для статических файлов }, }
@Reservoirv
@Reservoirv 11 күн бұрын
@@EasyITChannel Спасибо большое! Разобрался с Webpack.... и с Parcel тоже. Все супер!
@johngalt9494
@johngalt9494 15 күн бұрын
8:40 - Что значит "Suspense берёт на себя реакт-роутер"? Как нам указать пролоудер при работе с ".lazy", если он не дружи с "Suspense" ?
@EasyITChannel
@EasyITChannel 15 күн бұрын
При использовании "нового" React Router решается это немного по-другому. В планах есть доснять последний ролик в этом цикле с объяснением как раз этого момента. Если кратко - нужно использовать функцию defer из react-router для возврата данных и компонент Await внутри Suspense. Примечание: это не работает с SSR.
@johngalt9494
@johngalt9494 13 күн бұрын
@@EasyITChannel Понял спасибо, но эта реализация подходит для функции "lazy()" (из реакта), а не для ".lazy" (из роутера). А можно ли как -то сделать фалбэк (прелоудер) с использованием проперт ".lazy()" из роутера?
@EasyITChannel
@EasyITChannel 13 күн бұрын
Конечно, я как раз об этом написал выше. Нужно использовать defer при возврате данных в роуте. А в компоненте нужно использовать Await внутри Suspense.
@johngalt9494
@johngalt9494 12 күн бұрын
@@EasyITChannel 1) В актуальной версии роутера (7+) функции "defer()" нет (её удалили), вместо неё используются обычные промисы. Честно говоря я даже не понял зачем она нужна была. 2) Т.е. реализовать эфект прелодера (fallback) при использовании проперти ".lazy()" марушрутера для загрузки компонента-страницы точно-такая же как без ".lazy" (Через <Await /> и "import()" или через "React.lazy()" и "import()"). В связи с этим вопрос: 3) Получается проперти ".lazy()" маршрутера нужно использовать только тогда, когда мы хотим лениво подгрузить значения для каких-то других проперти маршрутера кроме ".element", т.к. для ленивой подгрузки только ".element" он бесполезен? (т.к. мы всё равно вынуждены использовать <Await /> и "import()" или через "React.lazy()" и "import()")
@EasyITChannel
@EasyITChannel 10 күн бұрын
@@johngalt9494 Скоро будет видео, в нем всё подробно расскажу.
@Fillmore634b
@Fillmore634b 16 күн бұрын
Спасибо автору, такие видео - редкость и встречаются только в русскогоязычном ютубе. У меня вопрос к автору - можно ли wasm использовать в "настоящих" проектах (серьезных, за которые много денег заплатили и сайт должен деньги приносить)? Я знаю что к примеру js вкупе с хаками с css дает возможность узнать айпи зашедшего без уведомления. Или даже каким-то образом узнать акк соц сети зашедшего и позже к нему уведомление прислать (я не знаю как - мб получают доступ к кукам). Это все из того что я слышал - что бизнес использует это. Я таким не занимался (и сайты не делал), мне интересны такие фичи в вебе. Я еще не говорю про порно-сайты, казино - где таких хакерских штучек наверняка используется гораздо больше (даже против ддоса того же). Или даже сквозь впн узнают реальный айпи человека с легкостью - такое реализуемо с wasm или только js?
@EasyITChannel
@EasyITChannel 15 күн бұрын
WASM сам по себе не работает, только через JS. У него нет доступа к браузеру напрямую, нет доступа к DOM. В JS, то что Вы пишете, реализуется по-другому, и в 99% случаев виноват сам юзер. Классика - переход по непонятной ссылке с одновременно залогиненным пользователем в другой вкладке браузера. Как всегда уровень безопасности обратно пропорционален уровню удобства. Сделайте работу 100% безопасной и только 1% юзеров будет способен работать в таком окружении. Не будет редиректов, автологинов, сохранения паролей, и т.д.
@Fillmore634b
@Fillmore634b 15 күн бұрын
@@EasyITChannel теперь понял, благодарю за такой ответ!!
@CuriousSpy
@CuriousSpy 16 күн бұрын
Проблема wasm только в том, что js работает с utf16, а rust с utf8
@EasyITChannel
@EasyITChannel 16 күн бұрын
Ну есть такая проблема, решаемая даже ручками с помощью TextEncoder. Но уже в этом примере мы используем wasm-bindgen, а этот модуль решает вопрос автоматически.
@CuriousSpy
@CuriousSpy 15 күн бұрын
@@EasyITChannel я не про совместимость, а производительность
@EasyITChannel
@EasyITChannel 13 күн бұрын
Ну так и видео об этом. Если издержки при передаче данных в wasm большие, то использовать его не надо. Речь ведь не идет о том, что обязательно нужно везде использовать wasm. Если выигрыш от обработки внутри wasm превышает издержки - можно использовать. Хотя, нужно упомянуть и о том, что бывает и так,что нет выбора и плевать на издержки. Есть, например, закрытая библиотека и прикрутить ее по-другому невозможно.
@andrewkuzmin4400
@andrewkuzmin4400 16 күн бұрын
11:45 ructc != rustc Но в целом, очень познавательно! Спасибо автору за работу!
@EasyITChannel
@EasyITChannel 16 күн бұрын
@@andrewkuzmin4400 спасибо за внимательный просмотр :) Такое бывает.
@nikitashamberger9639
@nikitashamberger9639 16 күн бұрын
Спасибо автору за такой интересный и информативный ролик
@EasyITChannel
@EasyITChannel 16 күн бұрын
@@nikitashamberger9639 Спасибо за поддержку.
@PragmaticIT
@PragmaticIT 16 күн бұрын
Ахаха поржал когда автор сказал что виндовс не очень хороший выбор для Веб разработчика 😂😂😂 Уже как 3 года работаю под wsl и горя не знаю
@EasyITChannel
@EasyITChannel 16 күн бұрын
Работа под виртуалкой всяко хуже полноценной системы. Оправдано только если проект простенький и денег на рабочую машинку нет/жалко, приходится все на одной системе делать. Ну ещё вариант не получается с винды спрыгнуть хотя-бы не время работы. Сам на wsl никогда не работал - я с 2000 года виндой не пользуюсь совсем, но коллеги кто с wsl перешли на Mac чуть ли не до потолка прыгали от счастья.
@12345_qwerty
@12345_qwerty 15 күн бұрын
@@EasyITChannelвообще не важно какой проект. Сейчас никакой разницы нет под чем работать, возможно что наоборот виндовс наиболее удобный вариант так как совмещает в себе плюсы двух систем за счет wsl
@CuriousSpy
@CuriousSpy 13 күн бұрын
@@12345_qwerty проблема с wsl начинается тогда, когда начинаешь работать с железками (гпу для игр), юзб и тд. Сейчас ситуация гораздо лучше, чем было раньше и обходные пути присутствуют. С другой стороны ни один десктоп на линуксе не работает также быстро и плавно как на винде. Уже много лет мечусь с дуалбута до всл и hyperv - с wsl на данный момент самый лучший опыт
@EasyITChannel
@EasyITChannel 11 күн бұрын
Попробуй мак ;)
@EasyITChannel
@EasyITChannel 11 күн бұрын
@@12345_qwerty это очень субъективно. Виндоуз удобна тем, кто к ней привык, только и всего. Я еще до знакомства с windows версии 3.0 работал с несколькими ОС, поэтому уже тогда воспринимал эту ОС как одну из многих, чем-то лучше, чем-то хуже. Ну и мне, после 22 лет на линуксе (только на нем, и на работе и дома) и 3 лет на маке - виндоуз предельно не удобна. Просто жесть как неудобна, реально. Мне удобнее busybox, если понимаете о чем я. Вот при переходе с линукса на мак, кстати, вообще неудобства не ощутил, скорее наоборот. По поводу - не важно какие проекты - улыбнуло. Как и странная уверенность в том, что виртуалка внутри другой системы может конкурировать с нативной системой на том же железе.
@Comm1ted
@Comm1ted 17 күн бұрын
Интересно!
@alexanderaew5897
@alexanderaew5897 20 күн бұрын
И как на реальные часы скинуть проект?
@EasyITChannel
@EasyITChannel 17 күн бұрын
Нужно сбилдить релиз версию, подключить часы проводом к компьютеру и скопировать результат билда на появившуюся флешку.
@GG.MONSTRso2
@GG.MONSTRso2 23 күн бұрын
скиньте код мен как то лень писать
@EasyITChannel
@EasyITChannel 17 күн бұрын
Если посмотреть в описание под видео, то там есть ссылка на исходный код. Причем, это актуально для любого видео на канале.
@kitmonglive
@kitmonglive 29 күн бұрын
используется tampermonkey. даже пофигу сделай платно ну то есть только ежемесячно. этим скриптом будут пользоваться милионы ............... ты можешь написать скрипт который бы возвращал плейлисты слева выпадающим списком на youtube. когда нажимаешь кнопку показать ещё и появлялся список плейлистов. и так же добавить окошко поиска в окне когда добовляют видео в плейлист, чтобы найти нужный плейлист и добавить видео в него. используется tampermonkey. даже пофигу сделай платно ну то есть только ежемесячно. этим скриптом будут пользоваться милионы
@ДмитрийГусаров-к5о
@ДмитрийГусаров-к5о Ай бұрын
да что ты черт возьми такое несеш???
@EasyITChannel
@EasyITChannel Ай бұрын
а что не так, разрешите поинтересоваться?
@ДмитрийГусаров-к5о
@ДмитрийГусаров-к5о Ай бұрын
@EasyITChannel есть спецификация html5 и вней раздел про ивент луп - попробуйте почитать
@EasyITChannel
@EasyITChannel Ай бұрын
:) возможно Вы не поняли о чем этот ролик? Кроме "почитать" еще есть "понять прочитанное". В ролике речь идет о практическом понимании, о том как это работает на практике. Как это реализовано в "металле" ;) Будете с этим спорить? Что-то из изложенного, на самом деле не так и Вы можете это доказать практическим примером?
@n_u_b_o_m
@n_u_b_o_m Ай бұрын
Очень полезно. Спасибо за исходный код. По настоящему достала эта дурацкая музыка, особенно когда с трудом разбираешься в расплывчатом и нечетком коде ролика...
@EasyITChannel
@EasyITChannel Ай бұрын
Спасибо за просмотр и обратную связь. Исходный код есть у почти всех видео на канале. Чтобы все буковки были видны четко и не расплывались рекомендую смотреть в 1080p, это значительно упростит разбор кода. У фоновой музыки есть важная причина. Вряд ли Вам будет комфортно слушать как в фоне воет воздушная тревога, проезжает трамвай, лают собаки, работает пылесос у соседей, скрипит кресло и т.д. А переозвучивать по 100 раз или часами чистить звук у меня, к сожалению, нет времени - работать надо. Поэтому простой Noise Gate и нейтральная фоновая музычка решают проблему.
@n_u_b_o_m
@n_u_b_o_m Ай бұрын
@@EasyITChannel Приношу Вам свои извинения. Я сначала скачал весь плей лист, а потом смотрел в низком разрешении. К музыке постепенно привык. После просмотра ролика окончательно отказался от React и подписался на Ваш канал. Огромное Вам спасибо! Жаль, что «прикоснулся к прекрасному» с некоторым опозданием…
@Sound-Of-Wisdom.
@Sound-Of-Wisdom. Ай бұрын
Отличное объяснение! Теперь всё ясно Очень полезный хак, спасибо за доступную подачу материала! 🔥👏
@EasyITChannel
@EasyITChannel Ай бұрын
Спасибо за поддержку.
@amat0ru
@amat0ru Ай бұрын
👍в реакте вообще есть что нибудь что без костылей?👍
@EasyITChannel
@EasyITChannel Ай бұрын
Тут зависит от того, что считать костылями. Есть "стандартный подход" работы с компонентами в реакт. "Данные в компонент через пропсы, из компонента - через колбэки". Это отлично работает в большинстве случаев. Но в сложных, и особенно в высоконагруженных приложениях такая схема работает не очень (запредельная сложность, лишние ре-рендеры, куча зависимстей), поэтому есть встроенные механизмы, упрощающие работу в сложных случаях. Это уже продвинутый уровень и он как-бы нарушает кажущуюся простоту и логичность ;) Но так в любом фреймворке. В документации всегда демонстрируют примитивный пример и говорят - во как у нас всё легко и просто. Потом с ростом приложения часто упираются в тупик и начинают городить костыли. Причем, тупик этот появляется тем быстрее, чем меньше опыта работы с фреймворком, чем хуже понимаешь его сильные и слабые стороны.
@Планшет-л9е
@Планшет-л9е 2 ай бұрын
Респект за то что правильно x - называете экс, а y - уай. Мне приятно слушать грамотную речь. Это говорит о многом.
@EasyITChannel
@EasyITChannel 2 ай бұрын
Ну, я знаю как правильно, но есть грешок - часто тоже говорю как у нас принято, а не как правильно. Вероятно, потому что когда голосом среди своих обсуждаем, то привыкаешь к сложившейся терминологии. Когда работаешь в англоязычной среде, то это выравнивает в другую сторону, хотя там тоже есть свои нюансы, даже нэтивы не всё называют/произносят идентично.
@Hits1133
@Hits1133 2 ай бұрын
Отлично, а как потом в бандле их искать?
@EasyITChannel
@EasyITChannel 2 ай бұрын
А зачем их искать в бандле? Бандл загружен, шрифты подключены, загружены, им назначено имя. Нужно просто указывать шрифт в стилях в font-family по имени и всё.
@Hits1133
@Hits1133 2 ай бұрын
@EasyITChannel Я подключил шрифты, у них путь допустим: ../../src/fonts/Arial.ttf В бандле потом они теряют свои пути, ну либо я что-то не так делаю
@Чинчопа-ы3з
@Чинчопа-ы3з 2 ай бұрын
чел харош кста
@Чинчопа-ы3з
@Чинчопа-ы3з 2 ай бұрын
@easy_it/cordova-ser-generator это вы сделали себе форк генератора в свой репозоиторий и доработали его? А что именно вы доработали?
@dmitryts9093
@dmitryts9093 2 ай бұрын
Очень полезный контент! Подобные кейсы часто встречаются
@EasyITChannel
@EasyITChannel 2 ай бұрын
Вы правы, почти все видео делаю исходя из опыта в продакшн. Правда иногда это понятно только тем, кто тоже имеет подобный опыт ;)
@dmitryts9093
@dmitryts9093 2 ай бұрын
Круто, отличное видео Лайк, подписка)
@EasyITChannel
@EasyITChannel 2 ай бұрын
Спасибо за просмотр.
@ЕвгенийПоляков-с7е
@ЕвгенийПоляков-с7е 2 ай бұрын
Привет. Подскажите кто нибудь, почему в папке Example1 две одинаковые папки EasyRunTracker с одинаковым набором папок и файлов?
@EasyITChannel
@EasyITChannel 2 ай бұрын
Добрый день, очень сложно сказать что-то по поводу этого вопроса. В Git находится одна папка с одним набором файлов. В этом легко убедиться если зайти через веб-браузер по ссылке. Мне, если честно еще не доводилось увидеть двух одинаковых папок рядом, по моему скромному опыту операционные системы не допускают такого.
@ЕвгенийПоляков-с7е
@ЕвгенийПоляков-с7е 2 ай бұрын
@EasyITChannel я имею ввиду папки проекта в вашем видео, но и в моем vs code тоже самое.
@EasyITChannel
@EasyITChannel 2 ай бұрын
ах это :) Это среда разработки так отображает. Это одни и те же файлы, example1/EasyRunTracker это гит репозиторий, а та что в корне это проект Манки скрипта. Вот так отображается. Если открыть проект прямо из папки проекта, а не из корня репозитория то будет одна папка. Но это ерунда, не берите в голову.
@andreynaralchuk4382
@andreynaralchuk4382 2 ай бұрын
Спасибо за видео
@EasyITChannel
@EasyITChannel 2 ай бұрын
И Вам спасибо за просмотр.
@nikitakopot
@nikitakopot 2 ай бұрын
Спасибо)
@MaxFomin-g8b
@MaxFomin-g8b 2 ай бұрын
👍👍👍👍
@СашаАлександр-е4м
@СашаАлександр-е4м 2 ай бұрын
Выглядит,как проект на коленки, хотя так и есть. Но спасибо, было интересно.
@EasyITChannel
@EasyITChannel 2 ай бұрын
Спасибо за просмотр.
@-ebaka
@-ebaka 2 ай бұрын
Спасибо🙏💕 сколько времени вы нам сэкономили, не передать
@EasyITChannel
@EasyITChannel 2 ай бұрын
Спасибо на добром слове.
@snowzilla99
@snowzilla99 3 ай бұрын
Вы очень крутой, очень рад, что нашел ваш канал. Спасибо за контент! У вас очень много прям крутейших видео с важными темами.
@EasyITChannel
@EasyITChannel 3 ай бұрын
Большое спасибо за поддержку, стараюсь выкладывать полезное, в первую очередь, с практической точки зрения. И в максимально простом изложении. Не всегда получается, но цель такая есть.
@marpusik1277
@marpusik1277 3 ай бұрын
спасибо 🙏
@Dimidrol14
@Dimidrol14 4 ай бұрын
Посмотрел видос - еще больше запутался
@EasyITChannel
@EasyITChannel 3 ай бұрын
Так бывает. Особенно когда и изначально четкого понимания не было, а были догадки навеянные знанием как это устроено в других языках. Более новое видео посмотрели?
@Graymar112
@Graymar112 4 ай бұрын
Vite сборка в режиме dev работает, а билд крашится почему то
@EasyITChannel
@EasyITChannel 3 ай бұрын
Скорее всего связано с тем, что момента выпуска видео прошло уже порядочно времени и версии программ поменялись. Как дойдут руки - поправлю.
@EasyITChannel
@EasyITChannel 3 ай бұрын
@Graymar112 Обновил репозиторий. Просто обновил пакеты до последних и установил type в package.json - для новой версии vite это обязательно. Должно работать.
@marpusik1277
@marpusik1277 4 ай бұрын
куда пропали?😇
@EasyITChannel
@EasyITChannel 4 ай бұрын
Работы навалилось много. Нет времени на хобби ;)
@marpusik1277
@marpusik1277 4 ай бұрын
куда пропали? 😇
@K1appy
@K1appy 4 ай бұрын
спасибо за контент и труды 🙂
@EasyITChannel
@EasyITChannel 4 ай бұрын
Пожалуйста. Главное, чтобы польза была. Вам тоже спасибо за поддержку.
@biLLie_wiLLie
@biLLie_wiLLie 4 ай бұрын
а где первая часть?
@K1appy
@K1appy 4 ай бұрын
на канале
@EasyITChannel
@EasyITChannel 4 ай бұрын
В тот момент когда я об этом говорю в правом верхнем углу появляется ссылка на видео. вот такая kzbin.info/www/bejne/mYfdqHilrLGYZpo
@НиколайКалужских-щ6м
@НиколайКалужских-щ6м 4 ай бұрын
напишите кто-нибудь комент с таймкодами, буду очень признателен
@EasyITChannel
@EasyITChannel 4 ай бұрын
Добавил.
@voxel1547
@voxel1547 4 ай бұрын
Да, устноавка пакетов действительно сложна, мне пришлось написать целых 10 букв и нажать тяжелую кнопку "Ввод", а про какойто "Пробел' коих в командах много я вообще молчу. Че за пробел, не понятно, ведь этой буквы даже в алфавите нет, напридумавают эти линуксоиды своих пробелов...
@marys8191
@marys8191 4 ай бұрын
Так а где видео с циферблатами?
@EasyITChannel
@EasyITChannel 4 ай бұрын
Так а нет его. По крайней мере пока.
@OwezAtajanow
@OwezAtajanow 4 ай бұрын
Спасибо большое ❤❤❤
@EasyITChannel
@EasyITChannel 4 ай бұрын
И Вам спасибо за просмотр. И поддержку.
@vladostema
@vladostema 5 ай бұрын
Музычка зачет
@asa_015
@asa_015 5 ай бұрын
Спасибо. Очень полезно. Если будет возможность раскрыть тему weakMap и weakSet и есть опыт работы с ними, поделитесь, пожалуйста
@EasyITChannel
@EasyITChannel 5 ай бұрын
Хорошо. Спасибо за просмотр.
@marpusik1277
@marpusik1277 5 ай бұрын
Спасибо 🙏
@alenache1
@alenache1 5 ай бұрын
символ это ж буква, че тут непонятного
@EasyITChannel
@EasyITChannel 5 ай бұрын
И то верно ;)
@alenache1
@alenache1 5 ай бұрын
@@EasyITChannel 😂
@АлександрСергеевич-и4ы
@АлександрСергеевич-и4ы 5 ай бұрын
лайк неглядя
@romanpit4you361
@romanpit4you361 5 ай бұрын
Спасибо!) Как раз столкнулся с заменой 1 и последнего элемента местами)
@EasyITChannel
@EasyITChannel 5 ай бұрын
Спасибо за фидбэк:)
@АлександрСергеевич-и4ы
@АлександрСергеевич-и4ы 5 ай бұрын
очень годно