Складчина: [learn.javascript.ru] JavaScript/DOM/Интерфейсы для новичков (Константин Александров)
Ссылка на картинку
Курс для тех, кто не разрабатывал на JS и имеет мало опыта в профессиональном программировании.
Вы научитесь создавать браузерные компоненты на JavaScript, разбираться в коде и будете готовы к освоению фреймворка.
Цели курса:
Научить писать хороший современный код, понимать JavaScript в объёме, достаточном для создания интерфейсных компонентов, взаимодействия с сервером (детали программы далее).
Подготовить к освоению фреймворка: React, Vue, Angular или другого, если ваша цель - создавать сложные приложения.
Программа курса:
Основы языка, инструменты для разработки и отладки:
К первому занятию вы посмотрели вводный видеокурс и уже знаете самые основы JavaScript. Вместе проходим по важным особенностям JavaScript, обращаем внимание на нюансы и особые возможности языка, убеждаемся в том, что понимаем их.
Изучаем инструменты для разработки и отладки JavaScript, которыми будем пользоваться далее.
Объекты:
Особенности объектов в JavaScript: передача по ссылке, копирование объектов.
Методы объектов, использование this.
Деструктуризация объектов и массивов.
Массивы и Функции:
Способы задания функций в JavaScript: Function Expression, Function Declaration, функции-стрелки, их отличия.
Замыкания, функции-колбэки и методы массивов, которые их используют, сортировка, поиск.
По окончанию этого занятия вы знаете JavaScript и умеете работать с основными структурами данных в достаточной степени, чтобы перейти к созданию интерфейсов.
DOM-модель:
Создание, вставка, изменение элементов на странице.
Атрибуты, свойства, управление классами.
Простые задачи по генерации компонентов интерфейса.
DOM и инструменты разработчика в браузере.
Динамическая генерация элементов интерфейса.
Обработчики событий:
Установка обработчиков событий.
Свойства событий.
Погружение и всплытие.
Приём проектирования "делегирование" для работы с большим количеством элементов, упрощения сложных интерфейсов.
Приём проектирования "поведение" для добавления функционала при помощи HTML-атрибутов.
Практика: меню, карусель изображений.
Компонентная архитектура, ООП:
Современный подход к разработке приложений: создание интерфейсных компонентов, использование своих событий (Custom Events) для связи между ними. Архитектура веб-приложения.
Классы, ООП в JavaScript.
Модули в JavaScript.
Более сложные компоненты:
Drag'n'drop при помощи событий, компонент "слайдер" для проекта.
Обработка пользовательского ввода, события клавиатуры.
Компоненты "модальное окно", "ленточное меню".
Взаимодействие с сервером:
Начинаем это занятие с обычных HTTP-форм, затем переходим к динамическим сетевым запросам.
Создание и отправка форм, динамические формы, их валидация.
DOM-свойства и методы для форм. Чтение данных из формы.
Метод fetch и, основы Promise для сетевых запросов.
Обмен данными с сервером в формате JSON.
Promise в деталях, более сложный асинхронный код:
Событийный цикл браузера.
Объектов Promise в деталях, их методы, цепочки Promise.
Промисификация функций.
Синтаксис async/await.
Сборка проекта, фреймворки:
На этом занятии мы собираем воедино проект, компоненты которого создавали в предыдущих занятиях.
Серверный JavaScript: основы Node.js
Сборка проекта при помощи Webpack
Основные JavaScript фреймворки: как устроены, куда двигаться дальше, что изучать, откуда брать информацию.
Предварительные требования:
Знакомство с HTML/CSS: верстать макеты не понадобится, но основные теги, позиционирование, margin/padding надо знать.