Слайд 2План урока
Что такое ReactJS, в чем его преимущества?
Сравнение с другими технологиями
![План урока Что такое ReactJS, в чем его преимущества? Сравнение с другими](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-1.jpg)
Современный JS. Что нового в ES6 и как это использовать
Let, const, области видимости блока
Слайд 3План урока
Деструктуризация, значения по умолчанию при деструктуризации
Arrow functions, отличие от обычных
![План урока Деструктуризация, значения по умолчанию при деструктуризации Arrow functions, отличие от](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-2.jpg)
функций
Классы и наследование
Промисы
Слайд 4Что такое ReactJS, в чем его преимущества? Сравнение с другими технологиями
![Что такое ReactJS, в чем его преимущества? Сравнение с другими технологиями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-3.jpg)
Слайд 5React.js
React.js — это библиотека для создания интерфейсов. Была разработана Facebook, как расширение
![React.js React.js — это библиотека для создания интерфейсов. Была разработана Facebook, как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-4.jpg)
к JS. Отвечает за представление данных, получение и обработку ввода пользователя.
Слайд 6React.js
React может совместно работать с концепцией MVC (Model-View-Controller: модель-вид-контроллер). Суть концепции в
![React.js React может совместно работать с концепцией MVC (Model-View-Controller: модель-вид-контроллер). Суть концепции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-5.jpg)
четком разделении разрабатываемых приложений на три части со строго соблюдаемыми правилами и установленными задачами:
Слайд 7React.js
Model (Обработка данных и логика приложения)
View (Представление данных пользователю в любом
![React.js Model (Обработка данных и логика приложения) View (Представление данных пользователю в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-6.jpg)
поддерживаемом формате)
Controller (Обработка запросов пользователя и вызов соответствующих ресурсов)
Слайд 9Плюсы:
Простой в работе. Отлично подходит для командной разработки, строгое соблюдение UI,
![Плюсы: Простой в работе. Отлично подходит для командной разработки, строгое соблюдение UI,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-8.jpg)
и шаблона рабочего процесса. Быстрый (не замедляет работу приложения)
Слайд 10Плюсы:
Вы всегда можете сказать, как ваш компонент будет отрисован, глядя на
![Плюсы: Вы всегда можете сказать, как ваш компонент будет отрисован, глядя на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-9.jpg)
исходный код (те же возможности есть в Angulsr). Если известно состояние — то известен и результат отрисовки. Не нужно прослеживать ход выполнения программы. Удобно, когда разрабатывается сложное приложение
Слайд 11Плюсы:
Возможно рендерить (визуализировать) React на сервере (Angulsr и пр. шаблоны предлагают
![Плюсы: Возможно рендерить (визуализировать) React на сервере (Angulsr и пр. шаблоны предлагают](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-10.jpg)
использовать доп. программы или платные сервисы)
Слайд 12Минусы:
Все-таки его работа заключается просто в переводе js-кода в html, что
![Минусы: Все-таки его работа заключается просто в переводе js-кода в html, что](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-11.jpg)
не позволяет создавать полноценных динамических web-приложений
Слайд 13Минусы:
Не всегда понятная логика работы.Понять, как работают некоторые компоненты, и как
![Минусы: Не всегда понятная логика работы.Понять, как работают некоторые компоненты, и как они взаимодействуют бывает непросто.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-12.jpg)
они взаимодействуют бывает непросто.
Слайд 14Минусы:
React не поддерживает браузеры от IE8 и младше. Необходимо использовать дополнительные
![Минусы: React не поддерживает браузеры от IE8 и младше. Необходимо использовать дополнительные приложения типа webpack, babel.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-13.jpg)
приложения типа webpack, babel.
Слайд 15Современный JS. Что нового в ES6 и как это использовать
![Современный JS. Что нового в ES6 и как это использовать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-14.jpg)
Слайд 16Современный JS. Что нового в ES6 и как это использовать
Язык Java
![Современный JS. Что нового в ES6 и как это использовать Язык Java](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-15.jpg)
Script стандартизируется организацией ECMA (European Computer Manufacturers Association).
Стандарт носит название ECMAScript.
Слайд 17Современный JS. Что нового в ES6 и как это использовать
Стандарт определяет
![Современный JS. Что нового в ES6 и как это использовать Стандарт определяет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-16.jpg)
следующее:
Синтаксис языка —ключевые слова, операторы, выражения и прочее;
Типы — числа, строки, объекты и прочее;
Правила наследования;
Стандартные библиотеки, объекты и функций — JSON, Math, методы массивов, методы объектов.
Слайд 18Современный JS. Что нового в ES6 и как это использовать
Стандарт не
![Современный JS. Что нового в ES6 и как это использовать Стандарт не](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-17.jpg)
определяет всё, что связано с HTML и CSS, DOM.
ECMAScript 6 (ES6) — новый стандарт JavaScript, принятый в 2015г.
Для конвертирования коа рекомендуется использовать: Babel (http://babeljs.io/repl/)
Слайд 19Let, const, области видимости блока
![Let, const, области видимости блока](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-18.jpg)
Слайд 20Let, const, области видимости блока
Оператор let — альтернатива var в ES6. Этот
![Let, const, области видимости блока Оператор let — альтернатива var в ES6.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-19.jpg)
оператор очень чётко даёт возможность разобраться с областью видимости.
Слайд 21Let, const, области видимости блока
Константа const – эта такая переменная, которая после
![Let, const, области видимости блока Константа const – эта такая переменная, которая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-20.jpg)
объявления недоступна для редактирования, при этом не имея ограничения на значение переменной.
Слайд 22Деструктуризация, значения по умолчанию при деструктуризации
![Деструктуризация, значения по умолчанию при деструктуризации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-21.jpg)
Слайд 23Деструктуризация, значения по умолчанию при деструктуризации
Деструктуризация – это особый синтаксис присваивания, при
![Деструктуризация, значения по умолчанию при деструктуризации Деструктуризация – это особый синтаксис присваивания,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-22.jpg)
котором можно присвоить массив или объект сразу нескольким переменным, разбив его на части.
Синтаксис: let [a,b,c]=[1,2,3]
Слайд 24Деструктуризация, значения по умолчанию при деструктуризации
Spread – выполняет разделение объекта на составляющие
![Деструктуризация, значения по умолчанию при деструктуризации Spread – выполняет разделение объекта на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-23.jpg)
(присваивает каждой компоненте массива значение оператора а)
Слайд 25Деструктуризация, значения по умолчанию при деструктуризации
Rest – объединяет объекты массива в один.
![Деструктуризация, значения по умолчанию при деструктуризации Rest – объединяет объекты массива в один.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-24.jpg)
Слайд 26Деструктуризация, значения по умолчанию при деструктуризации
Значение «по умолчанию» вводится в том случае,
![Деструктуризация, значения по умолчанию при деструктуризации Значение «по умолчанию» вводится в том](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-25.jpg)
если значений в массиве меньше, чем переменных.
Синтаксис: let [a,b=”f”,c=”d”] = [].
Слайд 27Arrow functions, отличие от обычных функций
![Arrow functions, отличие от обычных функций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-26.jpg)
Слайд 28Arrow functions, отличие от обычных функций
Стрелочные функции представляют собой сокращённую запись функций
![Arrow functions, отличие от обычных функций Стрелочные функции представляют собой сокращённую запись](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-27.jpg)
в ES6.
Синтаксис:let NameFunction= (Параметр 1, Параметр 2) => a + b;
Слайд 30Для использования классов необходимо:
Классы создаются в блочном коде ({и }),
Обозначается записью
![Для использования классов необходимо: Классы создаются в блочном коде ({и }), Обозначается](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-29.jpg)
classN, означает, что будет создана функция-конструктор functionN (в ES5)
Слайд 31Для использования классов необходимо:
Свойство constructor используется для обозначение того, что будет происходить
![Для использования классов необходимо: Свойство constructor используется для обозначение того, что будет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-30.jpg)
непосредственно в самом конструкторе.
При перечисления методов не надо использовать запятые (вне класса они запрещены)
Для вызова функции класса необходимо использовать оператор new.
Слайд 33Промисы
Промисы(Promise) - это объекты, которые ждут выполнения асинхронной операции.
После выполнения
![Промисы Промисы(Promise) - это объекты, которые ждут выполнения асинхронной операции. После выполнения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-32.jpg)
операции промис принимает одно из двух состояний: fulfilled (resolved, успешное выполнение) или rejected (выполнено с ошибкой), позволяя оценить работу кода.
Слайд 34Промисы
Promise
Fulfilled - программа выполняется успешно
Rejected - программа выполняется с ошибкой
![Промисы Promise Fulfilled - программа выполняется успешно Rejected - программа выполняется с ошибкой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-33.jpg)
Слайд 35Промисы
На promise можно навешивать коллбэки двух типов:
onFulfilled – срабатывают, когда
![Промисы На promise можно навешивать коллбэки двух типов: onFulfilled – срабатывают, когда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/873583/slide-34.jpg)
promise в состоянии «выполнен успешно».
onRejected – срабатывают, когда promise в состоянии «выполнен с ошибкой».