ПИШЕМ SINGLE PAGE APPLICATION НА TYPESCRIPT (БЕЗ ФРЕЙМВОРКА) • SPA

  Рет қаралды 20,756

Maxim Filanovich

Maxim Filanovich

Күн бұрын

Пікірлер: 118
@tabrisel
@tabrisel 7 ай бұрын
Спасибо за урок! Долго искала подобное видео по архитектуре SPA. Все очень понятно для новичка.
@MaximFilanovich
@MaximFilanovich 7 ай бұрын
Круто! Рад, что смог помочь!
@АнжеликаТурлак
@АнжеликаТурлак 7 ай бұрын
@@MaximFilanovich Спасибо Вам! И мне оооочень сильно помогли!
@MaximFilanovich
@MaximFilanovich 7 ай бұрын
@@АнжеликаТурлак🔥🔥🔥
@Мефелион
@Мефелион 3 жыл бұрын
Супер, вот таких уроков бы побольше, а то вообще не мог понять как подступить к заданию!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Круто! Рад, что понравилось видео!
@MAKSIMTSA
@MAKSIMTSA 3 жыл бұрын
@@MaximFilanovich я наверное бы провалил таску, если бы сегодня не посмотрел этот ролик) Все сдвинулось с мертвой точки. Роутинг здесь великолепен)
@inaf.2827
@inaf.2827 6 ай бұрын
Спасибо большое! Все четко! Вы мне очень помогли на старте!
@MaximFilanovich
@MaximFilanovich 6 ай бұрын
Пожалуйста)
@НиколайРусакович
@НиколайРусакович Жыл бұрын
Отличный практический урок! Разложил по полочкам. Очень доступно.
@ЕвгенийДраганча
@ЕвгенийДраганча 3 жыл бұрын
Очень долго искал такого формата видео ничего не мог найти и вот наконец то оно
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Круто! Рад, что понравилось видео!
@gerompauel
@gerompauel 2 жыл бұрын
Спасибо. Отличный урок. Побольше бы таких!
@dmytroz.2084
@dmytroz.2084 2 жыл бұрын
годно! надеюсь будут еще ролики, а то вижу редко выходят! Отлично, что нашел этот канал!
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Спасибо :)
@sargeras1802
@sargeras1802 Жыл бұрын
Большое спасибо за урок. Спасибо, что так подробно показываешь каким должен быть код. Теория конечно хорошо, но данный ролик позволил её закрепить. Контент очень полезный, помогает разобраться как всё устроено изнутри. Ещё раз большое спасибо!)
@RamanShalamitski
@RamanShalamitski 2 жыл бұрын
Посомтрел пару твоих уроков, спасибо, четко и по делу) учу js 5 месяц, непростые вещи, объясняешь довольно доступно) полезных вещей подчерпунл много)
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Спасибо за отзыв :) Удачи!
@juniper2nd
@juniper2nd Жыл бұрын
мегакрутой урок, чел ты лучший
@disgracefulsense7882
@disgracefulsense7882 3 жыл бұрын
Спасибо! Вы определенно лучший ментор 🤗
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за комментарий и приятные слова!
@prostonau
@prostonau Жыл бұрын
Хороший урок, спасибо
@SaintPowerFul
@SaintPowerFul 2 жыл бұрын
если у вас не стартует dev server. надо в конфиге вэбпака заменить строку contentBase на static: { directory: path.join(__dirname, 'dist'), },
@ioanlozan5371
@ioanlozan5371 2 жыл бұрын
Спасибо брат
@hacer9168
@hacer9168 5 ай бұрын
Чел ты лучший, спасибо!
@ВероникаТен-ф3л
@ВероникаТен-ф3л 3 жыл бұрын
Большое спасибо за видео!! Буду ждать следующих видео с ts !!))
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Рад, что понравилось! Спасибо!
@nd1851
@nd1851 3 жыл бұрын
Запредельно полезное видео, спасибо!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за запредельно приятный комментарий! :)
@Saveli_Sh
@Saveli_Sh 2 жыл бұрын
Спасибо, то что нужно было для задания и понимания SPA. Успехов Вам!!!
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Пожалуйста :)
@hasst9261
@hasst9261 3 жыл бұрын
Круто, уааааау!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Класс, рад, что понравилось видео!
@kotrvn1576
@kotrvn1576 3 жыл бұрын
Обожаю такие ламповые каналы/видео, как будто с корешем попиздели и он затер тебе про тайпскрипт) Пивка не хватает)))
@ЕленаБасса
@ЕленаБасса 3 жыл бұрын
Максим, видео супер!!! Все очень легко и доступно!!!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо большое за годный комментарий 🔥
@emilvarn9474
@emilvarn9474 2 жыл бұрын
Супер крутой урок!
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Спасибо! Рад, что видео зашло!
@D000023
@D000023 3 жыл бұрын
Спасибо за полезный контент. Сделай, пожалуйста, видео по структуре приложения на примере того же match-match. Исходя из макета какие бы компоненты и модули ты выделил и как бы всё это увязал между собой. С этим у всех большие сложности, вроде по кусочкам всё можно найти, а вот как грамотно увязать вообще не понятно. Можно просто в виде схем или картинок, хочется понять принципы.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за идею! Обязательно ее учту :)
@МаксимКлименков-л6у
@МаксимКлименков-л6у 2 жыл бұрын
Все очень понятно, спасибо!
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Рад, что зашло!
@АндрейНи-э9р
@АндрейНи-э9р 3 жыл бұрын
Спасибо! Очень хорошее объяснение!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за годный коммент! Рад, что понравилось видео!
@dianaholoborodko2651
@dianaholoborodko2651 3 жыл бұрын
Шикарное видео! Всё доступно и понятно рассказываешь! Побольше таких подробных разборов тем!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за крутой отзыв! Рад, что видео помогло!
@nouchance
@nouchance 3 жыл бұрын
Спасибо большое процветанию вашему каналу удачи вам! Очень четко и понятно!!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за крутой комментарий!
@df7464
@df7464 3 жыл бұрын
Круто! Спасибо! Хорошо объясняете, я понимаю!)
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за классный отзыв!
@shaxay
@shaxay 3 жыл бұрын
Очень кстати! Спасибо большое, жду больше уроков))
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за крутой отзыв!
@ТатьянаЛ-л9э
@ТатьянаЛ-л9э 3 жыл бұрын
спасибо за видео!
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за крутой отзыв! Рад, что понравилось видео!
@alenache1
@alenache1 Жыл бұрын
не буду комментировать архитектуру:)) но отмечу важный момент: автор упустил из виду, что использование хеша не дает вам возможность использовать якоря на странице. А если они вам будут все-так нужны, то имейте ввиду, что роутинг без хеша будет перезагружать страницу, если не отменить действие браузера по умолчанию на нажатие ссылки и hashchange уже работать не будет.
@ВячеславМаксютов-у5н
@ВячеславМаксютов-у5н 2 жыл бұрын
отличное видео
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Спасибо!
@dolb9sha
@dolb9sha 3 жыл бұрын
Спасибо. Все просто и понятно
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо за крутой комментарий!
@artemido4ka
@artemido4ka 3 жыл бұрын
Очень круто, хотелось бы скорее увидеть реализацию страничек)
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Спасибо! Хах, ну она навряд ли будет, потому что дизайна нету. Но я подумаю на этот счёт)
@localhost666
@localhost666 Жыл бұрын
Почему так мало видео на канале? Контент шикарен
@apavlukovich
@apavlukovich 3 жыл бұрын
Спасибо за видео! Помогло.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Пожалуйста! Спасибо за отзыв! Рад, что смог помочь :)
@apavlukovich
@apavlukovich 3 жыл бұрын
побольше таких роликов, сейчас на ютубе редко можно найти такое видео с созданием сайта на ts, в основном js
@MAKSIMTSA
@MAKSIMTSA 3 жыл бұрын
Почему Вы раньше не сделали этот ролик!?? ) Он бы мне ответил на много вопросов как по SPA так и по TS
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Лучше поздно чем никогда))
@MAKSIMTSA
@MAKSIMTSA 3 жыл бұрын
@@MaximFilanovich Хотелось бы еще новых видео в таком исполнении! Например про асинхронные выполнения, IndexedDB и много чего другого)
@sharkman6434
@sharkman6434 Жыл бұрын
оч классный урок единственно позволю себе посоветовать писать константы в enum вида MY_CONSTANT = 'My constant' ; потому что считаеться что штуки типа MyConstant это может быть как компонента так и некая функция , особенно в реакт где все компоненты так и пишуться
@annaantypova6956
@annaantypova6956 3 жыл бұрын
Спасибо большое за видео! Как раз то что искала. А можно ли сделать spa в таком формате, только с подключением html файлов?
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Хорошая идея, подумаю над этим)
@foreveryoung5039
@foreveryoung5039 3 жыл бұрын
Спасибо за полезное видео. Один вопрос. Ты здесь раскидываешь модули по папкам. Хочу уточнить, согласно какой архитектуре организации кода ты это делаешь? Может скинешь почитать что-то на этот счёт.
@tanercoder1915
@tanercoder1915 2 жыл бұрын
для начинающего запутанно, что у тебя два index.ts : один в корне другой в папке app . в чем приимущество так делать? поидее ведь лучше app.ts просто для логичности.
@donalnoye4946
@donalnoye4946 Жыл бұрын
16:50 в run и render вместо append напишите appendChild, иначе вылазит ошибка
@Saveli_Sh
@Saveli_Sh 2 жыл бұрын
Добрый день! Все-таки некорректно работает рендеринг при перезагрузке страницы. Например, если мы на settings-page, то при обновлении страницы, хэш остается settings-page, но загружается стартовая и при попытке перейти на settings-page, кликая на кнопку settings-page - ничего не происходит, кнопка не работает, также и с Statistics Page - если на ней остаешься, то после перезагрузки страаницы, она некликабельна, пока не пощелкаешь несколько раз. Хотелось бы, чтобы при перазагрузке хэш был старт-пейдж или вообще пустой, как при первом открытии спа. Получается, что работа приложения после перезагрузке некорректна, к сожалению((( сначала не обратила внимание, а теперь проверила, скачав Ваш код из гитхаба
@ЮрийЛютый-о1ч
@ЮрийЛютый-о1ч Жыл бұрын
Максим здраствуйте. Спасибо за ваш труд. Подскажите. В чем может быть проблема. На всех страница при попытке вывести title получаю undefind. Задаю аргумент в метод в таком формате. createHeaderTitle(SettingsPage.TextObject.MainTitle); Как в видео. На всех страницах кроме главной отображается undefind. Буду благодарен за ответ
@rhorv
@rhorv 3 жыл бұрын
Привет, что думаешь по поводу того что разработчиков, (давай возьмем в тему веб) сможет заменить Искусственный Интеллект, и какая вероятность этого на наше время, потому что реально страшно, что какой-то робот сможет забрать работу, и банально то - чем нравиться заниматься.
@vitaly-
@vitaly- 3 жыл бұрын
Сразу видно что ты не работаешь, ибо смог бы тогда понять, что разработчиков не реально заменить AI или конструктором. Тут банально надо миллион лет потратить на разговоры с заказчиками о том как все должно работать, т.к куча тонкостей и их одни пластом не возможно закрыть без постоянного уточнения. Потом надо тратить время на прояснения с программистами из другого отдела (когда например написан бэк, но по доке не все моменты прояснены и наоборот когда у бека есть уточнения к тому, как лучше сделать api для фронта). Соответственно, тут видно, что из за постоянной кучи тонкостей в разработке и в понимании предметной области, не возможно все это переложить на, как ты выразился, "Искусственный Интеллект", который на самом то деле и не существует и не может в принципе существовать, это лишь нейронки и не более. Или мб ты визитки или одностраничники делаешь, то тогда да, у меня для тебя плохие новости, их можно уже очень давно липить в конструкторах. Да и вообще, повсеместная автоматизация затронет программистов в самую последнюю очередь.
@danil2738
@danil2738 Жыл бұрын
Подскажите пожалуйста, что за расширение для перевода выделенного текста в браузере? Я разные перепробовал, но все работают так или иначе плохо
@barabucho
@barabucho 2 жыл бұрын
Я так и не понял,что выступает в роли движка/ядра web-приложения на стороне клиента? (что удерживает изменение контента от перезагрузки страницы)
@kaprizov3200
@kaprizov3200 3 жыл бұрын
подскажи пожалуйста, у меня есть есть база по реакту, стоит ли учить реакт нативный ?
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Если есть база по рекату, то стоить учить продвинутые темы по Реакту. Сначала стоит прокачать себя в самом реакте. Если это сделаешь, то на нативку потом перейти составит примерно 1,5 - 2 недели
@kaprizov3200
@kaprizov3200 3 жыл бұрын
@@MaximFilanovich понял, спасибо, просто конкуренция большая, устроится на работу, решил выделиться так сказать)
@ViktorElenich
@ViktorElenich 2 жыл бұрын
Продолжение будет этого видео?
@MaximFilanovich
@MaximFilanovich 2 жыл бұрын
Навряд ли :)
@staskob5502
@staskob5502 3 жыл бұрын
Выдает ошибку при запуске npx webpack serve Не могу понять [webpack-cli] Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. - options has an unknown property 'contentBase'. These properties are valid: object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, setupExitSignals?, static?, watchFiles?, webSocketServer? }
@banyman7405
@banyman7405 Жыл бұрын
такая же ошибка на этом шаге. как решили?
@aruna8689
@aruna8689 3 жыл бұрын
Здравствуйте, у меня завтра интервью онлайн, по js и react, без онлайн кода, что нужно знать? Очень волнуюсь
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Привет! Я рекомендую перейти в мой Instagram профиль и посмотреть 2 последних поста. Там описываются топ вопросов по React, которые мне задавали на собесах :) Вот ссылка: instagram.com/p/CPGbYK8jyV2/ Также есть пост про топ популярных вопросов по JS на собеседовании (с ответами на эти вопросы): instagram.com/p/CMKOS5PgJQW/ Тут главное помнить, что собеседование - это не экзамен. Собес - это общение 2-х разработчиков за чашечкой кофе. Все обычно проходит в лайтовой обстановке. Поэтому, самое главное, что нужно взять с собой на собес - это спокойствие и хорошее настроение. 😉 Уверен, у тебя все получится!
@aruna8689
@aruna8689 3 жыл бұрын
@@MaximFilanovich спасибо
@JavaScriptcher
@JavaScriptcher 2 жыл бұрын
Почему импортируем { pageIds } в скобках?
@ДмитрийКуликов-ы9ч7ф
@ДмитрийКуликов-ы9ч7ф 3 жыл бұрын
А какой практический смысл подобных опытов? Приходится сначала писать свой фреймворк, а потом уже писать бизнес логику, в итоге выходит медленно, багисто и не гибко.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Опыт в том, что мы пишем это без фреймворков. Новичкам нет смысла начинать сразу с библиотек, так как без базы никуда не уедешь. А в этом видео очень много базовых и полезных вещей из JS и TS. А если рассматривать реальный проект, то конечно же нужна библиотека :)
@ДмитрийКуликов-ы9ч7ф
@ДмитрийКуликов-ы9ч7ф 3 жыл бұрын
Новичкам надо объяснить то, что инструмент должен соответствовать задаче. Если у меня есть лендинг с одной формой и тремя аккордионами, то я просто пишу более или менее структурированную лапшу и это нормально, а вот если я буду фигачить сюда классы, вот тут поддержка этого всего превращается в ад. Если вы хотите показать преимущества классов, так напишите бизнес логику с богатой моделью на Domain Driven Design, вот тут к месту будет и приватные методы и статические и инкапсуляция и полиморфизм, потом возьмите и поменяйте фреймворк, например, вот оп рабоает на реакте, потом оп на ангуляре, потом оп на svelte. При этом в самой бизнес логике вообще ничего не изменяя. Вот это будет действительно полезно для новичков и будет понятно зачем классы вообще нужны.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
@@ДмитрийКуликов-ы9ч7ф Во всяком случае это ваше мнение и спасибо, что им поделились :) Отзывы других людей говорят сами за себя и поэтому я понимаю, что делаю все правильно
@ДмитрийКуликов-ы9ч7ф
@ДмитрийКуликов-ы9ч7ф 3 жыл бұрын
@@MaximFilanovich Так я не в плане наезда, просто приходится довольно часто править за джуниорами что-то вот такое на классах при этом не являющееся ООП, если в программе есть классы это еще не означает, что есть ООП. Любой инструмент должен быть к месту использован мне кажется.
@1Malak16
@1Malak16 3 жыл бұрын
Внесу немножко критики, надеюсь будет воспринята адекватно. На мой взгляд, нужно более внимательно относиться к тому коду, который вы предлагаете новичкам, которые пока не имеют достаточного опыта, что-бы разделить, что хорошо, а что плохо. Например, конструкция в классе app из последовательных if else. Уверен, вы никогда бы такое не написали в продакшин коде.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Юрий, это ваше мнение и ему есть место быть. Я же считаю иначе. Данная конструкция с if else имеет место быть на реальных проектах и в ней ничего плохого нет. Что вместо него использовать? switch case? Ну у него по факту та же логика. Цепочки if else очень популярные конструкции на проектах. Я это говорю как человек с опытом работы в 1 год. Если Вы более опытный, то Вам, видимо, виднее :)
@lolbozland
@lolbozland 3 жыл бұрын
​@@MaximFilanovich во всём, что работает - нет ничего плохого) switch case вынесенный в отдельный файл, наверное более красивое решение) чем if else в App, наверно об этом говорилось) В любом случае, посмотрел - повторил - усвоил, благодарю)
@aleksandrmatyka3118
@aleksandrmatyka3118 2 жыл бұрын
@@MaximFilanovich Отличное видео, но соглашусь с комментарием выше, можно было бы к примеру вынести в отдельный файл в виде обьекта страниц все инстансы и потом просто сопоставлять урл по ключу с обьектом или памится в случае массива но для учебного примера это не столь важно
@cartel3580
@cartel3580 Жыл бұрын
не запускается девсервер - выдает много ошибок
@zir6471
@zir6471 Жыл бұрын
та же фигня
@victormog
@victormog 3 жыл бұрын
*switch*
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Не совсем понял, к чему это))
@victormog
@victormog 3 жыл бұрын
@@MaximFilanovich if-else-if
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
@@victormog По факту, тут разницы большой нет. Это уже вкусовщина
@victormog
@victormog 3 жыл бұрын
@@MaximFilanovich Видел статьи и видео о нежелательности else вообще - но не смотрел, т.к. сам else-if использую крайне редко...
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
@@victormog Вообще, это зависит от разработчика, насколько часто он используют ту или иную структуру :)
@victormog
@victormog 3 жыл бұрын
Не понял практического смысла в объявлении поля TextObject *статическим...*
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
Смысл TextObject в том, что он хранит константы с контентом, который будет видеть пользователь. Это вообще любой текст для конкретной страницы. Почему он статический? 1. TextObject относится к определенной сущности (будь то страница либо компонент). А значит, он должен находится внутри класса 2. Не вижу смысла делать текстовые константы не статическими. Если поле либо функция никак не работает с this, то есть большой смысл использовать static
@victormog
@victormog 3 жыл бұрын
@@MaximFilanovich Из-за этого статического поля класс сразу стал _одноразовым..._ ... а можно было бы вынести его в абстрактный.
@victormog
@victormog 3 жыл бұрын
@@MaximFilanovich Статическими всё-таки принято делать поля и методы общие для всех экземпляров, а не потому, что они не используют this.
@MaximFilanovich
@MaximFilanovich 3 жыл бұрын
@@victormog Интересное мнение. Я так конечно же не считаю. Просто "одноразовый" класс. Странное выражение. Во всяком случае круто, что мы поделились мнениями))
@hennadiikhudolieiev2198
@hennadiikhudolieiev2198 2 жыл бұрын
ударение в аббериватуре ids ставиться не на i "Айдиз", а на d "айдИз"
@hennadiikhudolieiev2198
@hennadiikhudolieiev2198 2 жыл бұрын
не хИдер, а хЭдер.
@ВалерийФилиппенков-к1ю
@ВалерийФилиппенков-к1ю Жыл бұрын
devServer: { static: path.resolve(__dirname, 'dist') port: 8080 }
My MEAN sister annoys me! 😡 Use this gadget #hack
00:24
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 22 МЛН
Vanilla JS Single Page Application Routes | # or URL  - #88
33:38
Пишем галерею на React + TypeScript & Deploy
1:23:12
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 9 М.
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,1 МЛН