SlideShare a Scribd company logo
eleks.comeleks.com
JAVA SCRIPT FRAMEWORKS
На прикладі Angular 2
Що нас чекає
• Короткий огляд Java
Script Frameworks
• Огляд Angular 2
• Розбір основних
компонентів Angular 2
• Demo
JS Frameworks. Навіщо вони вам?
• Client-side має більше
«відповідальності» ніж
колись
• Фреймворк надає
інфраструктуру для
розробки (очевидно)
• Фреймворк пропагує
певні підходи і стандарти
• Він може спростити
життя розробника
Найпопулярніші JS Frameworks
Angular
Переваги та Недоліки
• Плюси
 Швидкодія
 Архітектурне рішення
 TypeScript
 Простота вивчення
 Велике ком’юніті
 Підтримка Google
o Мінуси
o Специфічний синтаксис
темплейтів
o TypeScript
На чому писати
Архітектура
Component – це основний структурний блок
додатку на Angular. Додаток можна уявити,
як набір компонентів, які взаємодіють між
собою.
Структура Компонента
Template
• Відображення
з HTML
• Прив’язка
даних
• Використання
директив
Class
• Клас на
TypeScript
• Логіка програми
• Властивості та
методи
Metadata
• Дані для самого
Angular
• Декоратор для
класу
Код Компонента
Шаблон
Шаблон – це
відображення,
описане на HTML з
використанням
виразів прив’язки
даних та директив.
Прив’язка Даних
Директиви
Вбудовані директиви
• ngIf
• ngFor
• ngSwitch
• ngClass
• ngStyle
Сервіс – це простий клас, який призначений
для виконання кокретних дій. Він може
повторно застосовуватись, використовується
компонентами, але незалежний від них.
Сервіси та DI
Для DI сервіса:
• Створити клас
сервіса
• Зареєструвати
сервіс в контейнері
• Заін’єктити в
компонент через
конструктор
Angular. presentation
Комунікація із сервером
Для комунікації
використовується
HTTP Client, який
входить в склад
фреймворка і
працює на основі
Observables
https://angular.io/docs/ts/latest/guide/server-communication.html
Роутінг
Routing – забезпечує
процес переходу
юзера між
функціональними
елементами SAP.
Використовується
для навігації по
додатку. https://angular.io/docs/ts/latest/guide/router.html
Що не потрапило в презентацію
• Pipes
• Angular Lifecycle
• @Input, @Output та деталі про Nested
Components
• Та багато іншого
Корисні Посилання
• Офіційна документація
https://angular.io/docs/ts/la
• Хаб з ресурсами
http://www.angular2.com/
Thanks! Any Questions?
P.S.
До наступного юніта вам потрібно
інсталювати:
Лекція 1: JDK; Eclipse IDE
Лекція 2-5: Android Studio; Android SDK;
Genymotion emulator: install and download any
device image (or a couple: phone and tablet).
eleks.com
Inspired by Technology.
Driven by Value.
Ad

More Related Content

What's hot (20)

10 asp.net
10 asp.net 10 asp.net
10 asp.net
eleksdev
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
07 Database Access
07 Database Access07 Database Access
07 Database Access
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
Xdebug (ukr)
Xdebug (ukr)Xdebug (ukr)
Xdebug (ukr)
Anatoliy Okhotnikov
 
Windows service
Windows serviceWindows service
Windows service
eleksdev
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
 
Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
Andrii Hladkyi
 
Rpc
RpcRpc
Rpc
eleksdev
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
Andrii Hladkyi
 
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
Igor Bronovskyy
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
Andrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
Andrii Hladkyi
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
Exoft LLC
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
Andrii Hladkyi
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
 
10 asp.net
10 asp.net 10 asp.net
10 asp.net
eleksdev
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
07 Database Access
07 Database Access07 Database Access
07 Database Access
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
Windows service
Windows serviceWindows service
Windows service
eleksdev
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
 
Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
Andrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
Andrii Hladkyi
 
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
Igor Bronovskyy
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
Andrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
Andrii Hladkyi
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
Exoft LLC
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
Andrii Hladkyi
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
 

Viewers also liked (6)

Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Ad

Similar to Angular. presentation (20)

Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
Pavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
GlobalLogic Ukraine
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Igor Bronovskyy
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro Overview
Kiev ALT.NET
 
AngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, LvivAngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, Lviv
Dmitriy Hunkin
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
QADay
 
Software Construction (Puyul)
Software Construction (Puyul)Software Construction (Puyul)
Software Construction (Puyul)
apofig
 
Методологія розробки ІТ проектів Scrum
Методологія розробки ІТ проектів ScrumМетодологія розробки ІТ проектів Scrum
Методологія розробки ІТ проектів Scrum
Yevgen Vershynin
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
Drupaltour
 
Ember.js. Init...
Ember.js. Init...Ember.js. Init...
Ember.js. Init...
Stfalcon Meetups
 
Grok web application framework
Grok web application frameworkGrok web application framework
Grok web application framework
Quintagroup
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
Fwdays
 
AI у реальному світі
AI у реальному світіAI у реальному світі
AI у реальному світі
Dmitry Morozov
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапи
Олексій Артеменко
 
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
QADay
 
Vue.js
Vue.jsVue.js
Vue.js
Stfalcon Meetups
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQ
Dakiry
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
Pavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
GlobalLogic Ukraine
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Igor Bronovskyy
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro Overview
Kiev ALT.NET
 
AngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, LvivAngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, Lviv
Dmitriy Hunkin
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
QADay
 
Software Construction (Puyul)
Software Construction (Puyul)Software Construction (Puyul)
Software Construction (Puyul)
apofig
 
Методологія розробки ІТ проектів Scrum
Методологія розробки ІТ проектів ScrumМетодологія розробки ІТ проектів Scrum
Методологія розробки ІТ проектів Scrum
Yevgen Vershynin
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
Drupaltour
 
Grok web application framework
Grok web application frameworkGrok web application framework
Grok web application framework
Quintagroup
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
Fwdays
 
AI у реальному світі
AI у реальному світіAI у реальному світі
AI у реальному світі
Dmitry Morozov
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапи
Олексій Артеменко
 
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
QADay
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQ
Dakiry
 
Ad

More from eleksdev (16)

Frontend basics
Frontend basicsFrontend basics
Frontend basics
eleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
eleksdev
 
tsql
tsqltsql
tsql
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
sql introduction
sql introductionsql introduction
sql introduction
eleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
eleksdev
 
Uml
UmlUml
Uml
eleksdev
 
Frontend basics
Frontend basicsFrontend basics
Frontend basics
eleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
sql introduction
sql introductionsql introduction
sql introduction
eleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
eleksdev
 

Angular. presentation

Editor's Notes

  • #4: Функції client-side стали ширшими. Тепер досить велика частина логіки виконується на client-side, що дозволяє зменшити навантаження на сервер. Проте разом з тим зростає відповідальність клієнтської сторони Фреймоврки надають нам інфраструктуру для розробки, беручи на себе роботу над основними рутинними і не зовсім завданнями, з якими доводиться працювати Використання фреймворка так чи інакше спонукає використовувати певні підходи, які закладені розробниками фреймворка. З одного боку це робить код уніфікованим і «інтернаціональним», з іншого – в специфічних випадках це може заважати Оскільки фреймворки перебирають на себе багато роботи, яку засвичай потрібно писати самому – кількість коду зменшується. А менше коду банально легше супортити, поклавшись на добре протестований фреймворк.
  • #5: Статистика по використанню найбільш трендових JS Frameworks. Статистика взята із сайту http://trends.builtwith.com/ Описано відсоток сайтів, на яких використовується той чи інший фреймворк. Для Angular враховане використання 1-ої версії фреймворка. На слайді не згадано багато інщих фреймворків., зокрема: Ember, Knockout, Цікава порівняльна характеристика є в статті: https://www.airpair.com/js/javascript-framework-comparison#6-1-the-good-parts
  • #6: Надалі більш детально розглянемо Angular і принципи його роботи. Розглядатимемо саме його, тому що він активно використовується на ринку і розвивається інтенсивними темпами. А також з ряду причин, які розглянуті на наступних слайдах.
  • #7: Переваги Angular: Швидкий і зручний механізм привязки даних, який в Angular 2 зазнав значної трансформації і тепер в рази швидший і оптимізований. Побудова самого фреймворку, і пропонована схема розробки є досить зручною та зрозумілою Рекомендовано використовувати TypeScript, який є субєктивно досить зручним і привітнішим для людей, які прийшли з бек-енду Має середню складність для вивчення. З ним легко почати працювати, проте на розбрі всіх механізмів роботи потрібен час. Ангулар має велику підтримку спільноти програмістів. Зокрема велика кількість запитань вже вирішено на Stack Overflow і зважаючи на популярність фреймворка 2-га версія в цьому плані не підкачає Ангулар розробляється під крилом Google, що не можна ігнорувати. Недоліки: Специфічний синтаксис побудови темплейтів. Є досить багато всяких різних правил, притаманних суто Ангулару Для людей, які прийшли з фронт-енду TypeScript може видатись незвичним з своїм тайп-чекінгом і іншими особливостями
  • #8: На попередньому слайді згадувався TypeScript. Ангулар пропагує використання його для побудови додатків. Наразі більшість документації описана саме для нього. Проте створювати додатки можна і з використанням інших мов: ES (5, 2015) Dart TypeScript
  • #9: Класична хай-левел архітектура фреймворка, якою її показує сам Google. Кожен із компонентів детальніше буде розглянутий на наступних слайдах. Загалом архітектуру можна описати наступним чином: В центрі стоїть компонент, який взаємодії із відображенням (темплейтом) використовуючи механізми прив’язки даних. Компонент може використовувати різні сервіси, яким він делегує більшість завдань, які пов’язані із маніпуляціями над даними (калькуляція, валідація, взаємодія із сервером тощо) Для того, щоб компонет міг взаємодіяти із сервісами використовується механізм Dependency Injection, який реалізовується з допомогою Injector-а Для розробки темплейта використовуються спеціальні директиви, які дозволяють спростити деякі механізми маніпуляції над відображенням
  • #11: Структуру компонента можна описати як взаємозв’язок між Темплейтом і Класом, який містить метадані. Роль темплейта – надати відображення, в якому описана привязка даних між кодом і Темплейтом Роль класа – вміщувати логіку репрезентації даних і їх обробки Метадані – надають сервісну інформацію про компонент, яка використовується Ангуларом для побудови алпікейшина.
  • #12: Структорний розподіл із попереднього слайду в коді на TypeScript виглядає так, як це показано на даному слайді.
  • #13: Шаблон можна описати, як відображення деякого компонента, яке створене з допомогою HTML. При цьому використовується спеціланий синтаксис для забезпечення роботи механізму привязки даних. Привязка даних реалізує обмін інформацією між елементами DOM та логікою компонента на JS. Окрім того для реалізації певних комон задач використовуються директиви, які надають додаткові можливості маніпуляції над елементами сторінки.
  • #14: В Angular 2 реалізовано 4 типи прив’язки даних. Інтерполяція: тип прив’язки, який працює в одному напрямку (з коду в темплейт). Дуже грубо кажучи він дозволяє привязати значення якоїсь змінною до вмісту якогось HTML елемента. При цьому зміна значення змінної в коді призводить до оновлення HTML елемента Прив’язка подій: дозволяє визначити деякий метод, який є в коді компонента, як обробник події, яка стається на HTML-елементі. Такий тип працює однонаправлено – від темплейта до коду. Прив’язка властивостей: чимось схожа на інтерполяцію, проте більш специфічна. Дозволяє прив’язати властивості HTML-елемента до деякого об’єкта в коді. Працює як і інтерполяція однонаправлено – від коду до темплейта Двостороння прив’язка: найчастіше використовується для елементів вводу. Наодмінно від інших працює двонаправлено. Для прикладу, якщо в юзера є текстове поле, то зміни, які він вводить в нього, автоматично синхронізуються з кодом. І навпаки, якщо змінна, яка прив’язана до текстового поля, змінилася з коду – відображення теж міняється.
  • #15: Директиви дозволяють нам розширити можливості побудови HTML. Ангулар надає наступні вбудовані директиви: ngIf – показати елементи, якщо виконується умова ngFor – показати наступне відображення для всіх елементів всередині деякої колекції ngSwitch – в залежності від значення ключа показати те чи інше відображення ngClass – застосувати клас, якщо виконуються деякі умови ngStyle – застосувати стиль, якщо виконуються деякі умови Окрім того можна і треба створювати свої кастомні директиви.
  • #17: В Angular продумано використання механізму інєкції залежностей, що є дуже зручно і дозволя використовувати принцип IoC. Для реалізації DI сервіса потрібно: Створити сам сервіс і позначити його декоратором Injectable Зареєструвати сервіс в контейнері компонента Виконати механізм DI через конструктор в компоненті, який використовує сервіс
  • #18: Код, який демонструє основні кроки по реєстрації і інєкції залежностей в коді.
  • #19: Більше детально про комунікацію через HTTP можна почитати за посиланням на слайді. Ця тема надто широка, щоб розглянути її в межах презентації.
  • #20: Документація по роутінгу все ще розробляється, тому можуть бути деякі зміни.
  • #21: Angular – це великий та потужний фреймворк, який має багато можливостей. Віндповідно - описати його за одну лекцію просто не можливо. В презентації розкриті самі основні елементи фреймворка. На слайді продемонстровані базові речі, які не увійшли в цю презентацію.
  • #24: Нагадування про те, що потрібно доставити пред лекціями Java і Android.