Проект на JavaScript Приложение список задач ToDo

  Рет қаралды 75,494

ВебКадеми | Юрий Ключевский

ВебКадеми | Юрий Ключевский

Күн бұрын

Пікірлер: 122
@WebCademy
@WebCademy 2 жыл бұрын
Тайм коды: 00:00 Обзор проекта 02:03 Старт работы над проектом 04:42 Добавление задач 17:26 Очистка поля ввода и фокус 19:07 Блок "Список дел пуст" 22:48 Рефакторинг 25:37 Удаление задач 34:21 Блок "Список дел пуст" 36:27 Отмечаем выполненные задачи 45:02 Рефакторинг 50:40 Сохранение разметки в localStorage 1:00:08 Работа с данными 1:03:15 Данные. Добавление задач 1:12:31 Данные. Удаление задач 1:22:04 Данные. Удаление задач через фильтр массива 1:27:07 Данные. Статус done 1:32:38 Данные. Блок "Список дел пуст" 1:41:38 Данные. Сохранение массива с задачами в localStorage 1:52:58 Рефакторинг. Функция renderTask 1:58:01 Публикация проекта на GitHub pages
@СемёнЗахаренко-л8з
@СемёнЗахаренко-л8з Жыл бұрын
Настолько просто и понятно, как будто осваиваю арифметику за первый класс. При вашем таланте вы можете с такой же легкостью объяснять ядерную физику или высшую математику. Спасибо!
@shprints84
@shprints84 11 ай бұрын
Прохожу курсы в Скиллбоксе, запнулся на задаче сделать туду-приложение (там лектор очень быстро показал, как его делать, минут за 15). Решил поискать еще туториалы, посмотрел этот, и все стало намного понятнее. Большое вам спасибо!
@pxxx6196
@pxxx6196 10 ай бұрын
тоже самое
@runak56
@runak56 8 ай бұрын
Да уже желание деньги обратно требовать, вообще поддержки ноль
@ssr.1989
@ssr.1989 Ай бұрын
Кратко, чётко, ясно и без излишеств!!! Спасибо большое! Теперь лучше понимаю как делать todo с localStorage.
@armazet8081
@armazet8081 8 ай бұрын
Хочется от души хочу написать, что очень понравилась подача. Приятно стилизованая страница, спокойные объяснения - эталон к которому нужно стремится. Спасибо
@Natali_Max
@Natali_Max Жыл бұрын
Два часа - как пара минут. Получила заряд верьіі в себя. Спасибо огромное!!!
@Awe88Some
@Awe88Some Жыл бұрын
Божечки, как же круто! спасибо! это тот случай, когда сложное объясняют простыми словами! я понял, как работать с массивами, у меня были проблемы, я узнал, как обратиться вновь появившемуся элементу на странице, я теперь умею в localStorege! и даже знаю, как НЕ нужно его использовать)))) я искренне Вас благодарю, вы светлый человек! спасибо Вам за это объяснение! вроде ToDo list, а знаний полученных при написании этого кода я получил, как за курс JS! бесконечная благодарность! пересмотрю ваши видео, думаю, я стану гением после такой подачи информации! Живите долго и счастливо!
@aleksanderr4673
@aleksanderr4673 2 жыл бұрын
Очень четкая и приятно поставленная речь. Максимально доступно для понимания. Спасибо!!!!
@АлисаЛиса-з2л
@АлисаЛиса-з2л 3 ай бұрын
Большое спасибо за урок! Все подробно рассказано, что на этапе обучения очень важно. Смотрела несколько уроков, и только после вашего видео все встало на свои места, позднее еще пересмотрю, чтобы закрепить. Лайк и подписка!
@antonmakarov8669
@antonmakarov8669 Жыл бұрын
Все работает, все супер. спасибо автору! Остался только один нюанс - по окончании написания кода убираем уже ненужный const emptyList в самом начале.
@ЮлияМостовая-ю7т
@ЮлияМостовая-ю7т 2 жыл бұрын
Лучший урок по тудушке что пересматривала за последнее время, спасибо за труд !!
@simonbryczkowski8675
@simonbryczkowski8675 2 жыл бұрын
так мне не хотелось 2ух часовое видео смотреть, но как оказалось все на много круче чем я предпологал) Спасибо за работу!
@razvalnuy
@razvalnuy Жыл бұрын
Благодарю изучал локал сторайдж теория максимально легкая, но вот на практике думал как же будет правильно сделать и нашел у вас реализацию, спасибо!
@ЮлияНикифорова-з1э
@ЮлияНикифорова-з1э Жыл бұрын
Очень крутой урок. Кусочками пригодился, как раз застряла на опции удаления, пришлось подправить весь остальной код, но работает в итоге все шикарно. Спасибо!
@VeroNi4ka92
@VeroNi4ka92 Жыл бұрын
Обалдеть, как, оказывается, всё может быть просто и понятно! Спасибо огромное!
@katenka_katrusya
@katenka_katrusya Жыл бұрын
Очень хорошо объясняете, я бы сказала "разжёвываете")), приятно слушать, спасибо вам за видео, пошла смотреть другие)
@nikomunikabelen8540
@nikomunikabelen8540 2 жыл бұрын
Спасибо, очень хороший урок объяснение максимально понятные, что очень важно первая часть на легке сделалась, ибо уже практиковал по вашим урокам с данными конечно тяжко, непросто все эти нейронные связи создать, в моей трудной и долгой голове)) приходится по 5 раз одно и тоже с паузами переделывать))
@НиколайСтепанов-ю3м
@НиколайСтепанов-ю3м 3 ай бұрын
Столько много полезной и интересной информации, вам большое спасибо за это видео!!!
@НискемкромеСовести
@НискемкромеСовести 2 жыл бұрын
отличный обучающий материал. я прямо чую как растет мознг
@dm92mk
@dm92mk 2 жыл бұрын
мознгн
@tpostolova
@tpostolova 2 жыл бұрын
Как всегда, все четко и лаконично, спасибо Учитель
@uliqqesss__
@uliqqesss__ 3 ай бұрын
Спасибо большое за чудесный курс 😊
@VideosFromNorway
@VideosFromNorway Жыл бұрын
Плюс еще один урок: done!Спасибо как всегда все класс!
@MrGreenman02
@MrGreenman02 Жыл бұрын
классный был урок!) получил не только знания но и удовольствие от учёбы!) теперь Javascript мне нравится еще больше!) Спасибо Юра за Труд!)
@WebCademy
@WebCademy Жыл бұрын
Рад что было и полезно и интересно!) Спасибо за комментарий!)
@uk-lych_sveta
@uk-lych_sveta 2 жыл бұрын
Юрий вы просто маг в IT индустрии, особенно в части объяснения и понятности того контента, который хотите донести своим подписчикам и другим посетителям Вашего канала. Спасибо за Ваш труд и старания. Желаю всяческих успехов и удачи.
@WebCademy
@WebCademy 2 жыл бұрын
Спасибо за позитивный отзыв!)
@uk-lych_sveta
@uk-lych_sveta 2 жыл бұрын
@@WebCademy Юрий, если это возможно сделайте пожалуйста мастер-класс по форме обратной связи на сайте, от начала до конца. Думаю зайдет всем начинающим верстальщикам.
@la_la4997
@la_la4997 Жыл бұрын
Вы чудесный преподаватель, спасибо вам!!!!!❤❤❤❤❤❤
@ea4613
@ea4613 Жыл бұрын
Ух ты !!! Спасибо большое за урок 🙏. Классное подробное объяснение 👍. Отдельное спасибо за несколько вариантов решения одной задачи , проговаривание комбинаций клавиш для ускорения работы с кодом, красивость кода и публикацию на гитхабе. 🙏👍 Ждём-с 🧘‍♂️ SPA todo 😅😉
@artemsergeev4833
@artemsergeev4833 2 жыл бұрын
Спасибо! Все четко, доходчиво и понятно!
@pechkinjohn
@pechkinjohn Ай бұрын
Спасибо! Очень подробно и понятно все❤
@POEOneLove
@POEOneLove 9 ай бұрын
Ну наконец то. Хоть кто-то написал пример на todo. Везде одни блоги и hello world, а тут todo
@GreatOsmanSultan
@GreatOsmanSultan 2 жыл бұрын
Профи и талант преподавания! Спасибо.
@ТимурДжабаров-п4ю
@ТимурДжабаров-п4ю Жыл бұрын
спасибо! Очень понравилаясь подача инф-ии, красивый и лаконичный код получился!
@Мария-ц8ъ2е
@Мария-ц8ъ2е 2 жыл бұрын
Спасибо большое. Очень хорошее объяснение. Все понятно и легко.
@jasurbekshomaqsudov2208
@jasurbekshomaqsudov2208 2 жыл бұрын
Спасибо за урок, как раз я зделал тодо для портфолио.
@sartjhon3300
@sartjhon3300 2 жыл бұрын
не стоит его впихивать в портфолио ))) наверное, каждый ученик после курсов кидает тодо в портфолио, и потенциального работодателя или нанимателя уже тошнит от этих тодо
@jasurbekshomaqsudov2208
@jasurbekshomaqsudov2208 2 жыл бұрын
@@sartjhon3300 Ok, Спасибо
@dm92mk
@dm92mk 2 жыл бұрын
@@sartjhon3300 я думаю ничего страшного не будет, если переписать всё заново и самостоятельно, по своему сверстать и оформить приложение, добавить дополнительные функции и т.д. Например добавить очки за выполнение дел чтобы был стимул их делать и т.д.
@XNADA93LB
@XNADA93LB Жыл бұрын
спасибо за урок !!!!супер . шикарное детальное обьяснение.
@Balenciaga_police
@Balenciaga_police Жыл бұрын
Большое спасибо за ваши уроки
@СтаниславГорячев-г1ъ
@СтаниславГорячев-г1ъ Жыл бұрын
Спасибо Вам очень понятная подача, низкий вам поклон
@СергейМурин-ь8х
@СергейМурин-ь8х Жыл бұрын
Спасибо, все просто шикарно
@max-anna
@max-anna 2 жыл бұрын
спасибо за урок! очень понятно объясняете👍🏼
@crn05
@crn05 2 жыл бұрын
Очень четко 🤟
@WockeezChannel
@WockeezChannel 2 жыл бұрын
Какая у вас тема vscode, не подскажете?
@clojure_sith
@clojure_sith Жыл бұрын
Спасибо за практичный ролик, было очень полезно
@artemsergeev4833
@artemsergeev4833 2 жыл бұрын
Проверку через trim() необходимо произвести, иначе добавляются задачи с пробелами и без текста. В функцию addTask добавить код if (taskInput.value.trim() == " ") return;
@dm92mk
@dm92mk 2 жыл бұрын
что-то не работает пытаюсь понять в чем дело
@dm92mk
@dm92mk 2 жыл бұрын
я короче глобально запретил вводить первым символом пробел taskInput.oninput = () => { if (taskInput.value.charAt(0) === ' ') { taskInput.value = "''; } }
@johngalt6376
@johngalt6376 Жыл бұрын
Наконец-то JavaScript в деле ))
@Anatoli-bq1pe
@Anatoli-bq1pe Жыл бұрын
Благодарю за классный видос!
@dokers2084
@dokers2084 Жыл бұрын
Спасибо за видео, какая у вас стоит цветовая тема VS code? Хочу такую же поставить
@rostyslavkinash5232
@rostyslavkinash5232 2 жыл бұрын
спасибо за урок
@banderprofi
@banderprofi 2 жыл бұрын
В настройках редактора надо изменить количество отступов с 4 на 2 - будет больше видно кода, можно ещё скрыть крайнюю левую вертикальную панель
@MelkoR4111
@MelkoR4111 2 жыл бұрын
с 4 отступами удобнее
@banderprofi
@banderprofi 2 жыл бұрын
@@MelkoR4111 Да ну, несколько вложенностей и конца и края не видать
@MelkoR4111
@MelkoR4111 2 жыл бұрын
@@banderprofi экран больше покупай)
@banderprofi
@banderprofi 2 жыл бұрын
@@MelkoR4111 С экран норм, у меня 34", ты просто мало пишешь, ещё не пришел к понимаю, что 4 - это много
@MelkoR4111
@MelkoR4111 2 жыл бұрын
@@banderprofi у меня есть проекты где по 20к строк)) так что пишу нормально
@deGGenerate
@deGGenerate 2 жыл бұрын
Когда рефакторили код и выносили логику в отдельную хэндлер функцию можно было пройтись по теме модулей в js и вынести функцию в отдельный модуль
@bearddev9974
@bearddev9974 2 жыл бұрын
Супер
@СтаниславГорячев-г1ъ
@СтаниславГорячев-г1ъ Жыл бұрын
хотел поинтересоваться, а есть ли у вас курс только с практикой по js ?
@SNSDfOu
@SNSDfOu Жыл бұрын
спасибо, очень полезно
@MurodilIbroximov-pq1wl
@MurodilIbroximov-pq1wl Жыл бұрын
Very Good Practice
@saidyusupov8686
@saidyusupov8686 4 ай бұрын
Здравствуйте, есть ли другой способ кроме insertadjacentHtml . не хочется что бы код html был в js . через createelement , appendchild
@anndyy7
@anndyy7 Жыл бұрын
Можно к этому как-то прикрутить создание диаграмм Ганта? На основе данных которые мы указываем в задаче? Подскажите куда копать
@ЕвгенияАлехина-в2я
@ЕвгенияАлехина-в2я 2 жыл бұрын
Клевое видео, осталась довольна
@egorov-dev
@egorov-dev 2 жыл бұрын
Спасибо за отличный урок! Если можно, подсказку, как удалить все выполненные задачи?:)
@gerz_og
@gerz_og 2 жыл бұрын
начал только смотреть, может потом исправите. Почему инпут забираете отдельно если он уже есть в form который получили выше. Так по феншую вроде правильней.
@alEL321
@alEL321 2 жыл бұрын
Профессионально.
@vaspurakavdalian1133
@vaspurakavdalian1133 10 ай бұрын
Урок очень классный ,супер .Юрий ,я не смог найти стартовый код к уроку.Поискал в ТГ ,но не нашёл
@WebCademy
@WebCademy 10 ай бұрын
t.me/c/1579074518/97
@vaspurakavdalian1133
@vaspurakavdalian1133 10 ай бұрын
@@WebCademy Благодарю Юрий
@dmaberlin
@dmaberlin 2 жыл бұрын
Спасибо!!!
@dd4el12
@dd4el12 Жыл бұрын
здраствуйте сейчас github pages автоматический не публикует сайт, надо написать самому домен. Но у меня каждый выходить ошибка, не могли бы подсказать как правильно написать?
@torycat1337
@torycat1337 2 жыл бұрын
Кращий, просто кращий)) Тільки є одне але, в аддтаск потрібно сказати, щоб в задачу не додавалися пусті поля, а так все гуд)
@WebCademy
@WebCademy 2 жыл бұрын
Дякую) Да, можно добавить trim() чтобы обрезать пустые символы.
@ruslantt7528
@ruslantt7528 10 ай бұрын
35:14 Почему, если равно единице? Список дел долен быть пустым, чтобы появилось это окно, то есть должно быть "если меньше единицы". Не понимаю почему это работает
@WebCademy
@WebCademy 10 ай бұрын
emptyList и есть тот самы один элемент. Если задач нет, то остается только он.
@development76
@development76 8 ай бұрын
Здравствуйте, а где то можно скачать код этого урока? В вашей телеге не нашел(((
@KarandashChannel
@KarandashChannel Жыл бұрын
Посмотрел, спасибо. Хороший урок. Но немного позабавил тот факт, что наравне с такими более - менее продвинутыми функциями языка, таких как навигация по dom и обработка событий, автор иногда останавливается на уточнении, что такое оператор присваивания, а что - сравнения))
@ludoman228zxc
@ludoman228zxc Күн бұрын
Есть кто живой? Почему у меня кнопка формы ничего не отправляет по событию "submit"? если переделать событие на "click", тогда все работает, но так как все это висит на форме, то клик отрабатывает по любому элементу формы. Кликаешь на инпут, чтоб ввести данные, тебе сразу добавляет в список пустую задачу
@otollfe9183
@otollfe9183 Жыл бұрын
можете подсказать, как добавить функцию редактирование? Добавил кнопку, настроил ее нахождение, а саму функцию редактирования не могу придумать как прописать?
@АлександрПантюхин-о3ъ
@АлександрПантюхин-о3ъ 9 ай бұрын
Скажите, а как реализовать эту же задачу, но чтоб не как веб сайт, а как приложение , которое открываеться на рабочем столе при нажатии на ярлык с этим приложением. Я исею ввиду, чтоб не index.html запускал , а например какой нить .exe файл или еще что нить ? Тоесть как его слелать не веб прилодением. Спасибо заранее за ответ
@WebCademy
@WebCademy 9 ай бұрын
Делать на electron js
@Ксюша-у1я
@Ксюша-у1я Жыл бұрын
Добрый день, пытаюсь сделать по этому принципу список дел на одной странице для нескольких пользователей, столкнулась с тем, что работает только первая форма, если закомментить в html первую - работает вторая, а последующие - нет. Также пыталась разделить на три разные html страницы - та же история, работает только одна первая. Можете подсказать, пожалуйста, в какую сторону двигаться и что применить?
@ostapmiklysh9470
@ostapmiklysh9470 8 ай бұрын
а где файл взять?
@ishurabotu9424
@ishurabotu9424 Жыл бұрын
Отличный урок, все предельно понятно, спасибо! Но, есть одно НО. После выгрузки из LocalStorage зачеркивание не убирается. Срабатывает, как и должно после обновления очередного, но, зачеркивание не убирается
@66luv6
@66luv6 Жыл бұрын
такая же проблема, решил?
@ishurabotu9424
@ishurabotu9424 Жыл бұрын
@@66luv6 да, там с классами я перемудрил, все забываю посмотреть)) Посмотри, что меняется при нажатии в браузере и что отличается при выгрузке локалСтораджа
@theoty-js
@theoty-js 2 жыл бұрын
Всем рекомендую
@host_admin
@host_admin 4 ай бұрын
А как сделать счетчик который будет считат количество задач ?
@ВалерийДынько
@ВалерийДынько 2 жыл бұрын
а можете кто нибудь объяснить в какой момент done меняется с false на true в newTask, мы ведь нигде не перезаписываем значение
@ShaDe059
@ShaDe059 Жыл бұрын
В функции doneTask производится проверка, был ли клик по кнопке задача выполнена, в теле условия меняем значение done на противоположное - task.done = !task.done
@МаксимСафронов-ф9ж
@МаксимСафронов-ф9ж 2 жыл бұрын
В объяснение все максимально непонятно. Почему только, при сохранение разметки через localStorage, и удалении всех задач из списка, не появляется блок "Список дел пуст"?
@rvitalia1
@rvitalia1 Жыл бұрын
насколько я понял, данные сохраняются в формате html collection. и когда идет адресация к emptylist он класс то удаляет, только не поянтно где.....и у нас уже получается не работает. поэтому вместо этого ставим: tasksList.children.item(0).classList.remove('none');
@ИльяЩербаков-э4р
@ИльяЩербаков-э4р 2 жыл бұрын
После написания кода до 1:00:08 если добавить задачи и перезагрузить страницу а затем удалить эти задачи то тогда почему то блок "Список дел пуст" не появляется :( Почему? Проверьте у себя еще раз пожалуйста, возможно я где то допустил ошибку
@WebCademy
@WebCademy 2 жыл бұрын
Посмотрите какие условия к нему прописаны. В любом случае сначала показываем/скрываем его на основании разметки, после на основании данных. Вариант с данными предпочтительнее. Во второй половине урока это показано. Код с урока есть в ТГ канале.
@Landskrunn
@Landskrunn 2 жыл бұрын
Привет, как правильно называется объект описания задачи? const newTask = { id: Date.now(), text: taskText, done: false, } Это не прототип и конечно не класс, хочу знать когда это принято использовать, чтобы не сойти за говнокодера)
@WebCademy
@WebCademy 2 жыл бұрын
Объект. Здесь сразу формируем объект. Можно было бы использовать Class или функцию конструктор. Но в данном случае - сразу формируем объект.
@lolerkapich
@lolerkapich Жыл бұрын
Кто знает как удалить выполненные задачи по кнопке "удалить все выполненные задачи"?
@dogvscatfunny9956
@dogvscatfunny9956 Жыл бұрын
У этого автора так и не понял где взять стартовую страницу html?
@WebCademy
@WebCademy Жыл бұрын
Стартовый код к уроку в ТГ канале: t.me/+9XtDDNBdHAk4Yjhi Переходите в ТГ канал и в нем ищите пост за 25.06.2022
@Sergey-off
@Sergey-off 2 жыл бұрын
не доделали. Не дописали код для кнопки удалить сделанные задачи
@oleksandrlitash1751
@oleksandrlitash1751 2 жыл бұрын
спробуй сам)
@mirzomok
@mirzomok Жыл бұрын
не понимаю зачем каждый раз проверять объявление переменной в console.log(кажется эт пустая трата времени)
@WebCademy
@WebCademy Жыл бұрын
Урок для новичков. На первых порах порой такие простые ошибки проскакивают, поэтому лучше проверять каждую строчку кода.
@МашаБукина-в1ц
@МашаБукина-в1ц Жыл бұрын
Сложно объясняет,не чего удивительного нет,подача конечно плохая.
@WebCademy
@WebCademy Жыл бұрын
Конкретика будет? Проект для тех кто знаком с основами. Посмотрите ролик JS за 6 часов. А перед этим рекомендую с версткой ознакомиться. Невозможно же каждое видео с совсем азов начинать.
@jasurbekshomaqsudov2208
@jasurbekshomaqsudov2208 2 жыл бұрын
Но я этих функций уже сделал, сейчас сделаю функции добавить фото, документы. Можно если я закончу свою тодо сайт, отправлю вам ссылку через гмаил или телеграм...Ну чтобы вы проверили мою работу. Потому что я сейчас учусь и у меня мало практики.
@xxxxx-iy1lc
@xxxxx-iy1lc 2 жыл бұрын
Здравствуйте, я все делал как вы, но у меня в консоль выводить вот это (main.js:2087 Uncaught TypeError: Cannot read properties of null (reading 'insertAdjacentHTML') at HTMLFormElement.) выводит оно, когда мы выводить в шаблонные строки li . также я правильно обращаюсь к taskList.insertAdjacentHTML('beforeend', taskHTML), но я не могу разобраться в чем суть проблемы
@WebCademy
@WebCademy 2 жыл бұрын
Cannot read properties of null - скорее всего в данном контексте элемент для которого вызывается insertAdjacentHTML не был найден, то есть неверно произведен поиск по querySelector.
@LiSa-ld6ue
@LiSa-ld6ue 2 жыл бұрын
Столкнулась с той же проблемой после того, как рефакторили код в самом конце. Дело в том, что переменная taskHTML стала локальной, когда мы её перенесли в отдельную функцию рендеренга задачи. Не знаю, правильно ли я сделала, но я объявила эту переменную через let taskHTML; в самом начале кода после объявления массива tasks. А в функции renderTask(task) соответственно убрала слово const. Заработало ;)
@unknown.6914
@unknown.6914 Жыл бұрын
прекрасное видео, спасибо 😊
JS  Как самостоятельно выучить JavaScript  Пошаговая схема
14:42
ВебКадеми | Юрий Ключевский
Рет қаралды 71 М.
When u fight over the armrest
00:41
Adam W
Рет қаралды 29 МЛН
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 96 МЛН
Из какого города смотришь? 😃
00:34
МЯТНАЯ ФАНТА
Рет қаралды 2,3 МЛН
Pet-projects. What projects must a beginner front-end developer do?
33:08
Front-end Science із Сергієм Пузанковим
Рет қаралды 165 М.
Самые любимые проекты Javascript-разработчиков
7:40
Миша Ларченко
Рет қаралды 13 М.
Урок 17. JavaScript. Все о LocalStorage
16:39
Владилен Минин
Рет қаралды 154 М.
Пишем список задач на React (React Hooks)
18:37
Влад Калачев - JavaScript уроки
Рет қаралды 35 М.
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 225 М.
When u fight over the armrest
00:41
Adam W
Рет қаралды 29 МЛН