Azkar Moulana
Software Engineer | Mentor | Speaker
I'm Azkar Moulana
azkarmoulana
client side JavaScript framework which allows you to create Single Page Applications
14,490
Angular 1
Angular 1.x
Angular 1.6
Angular 2
Angular 4
Angular 5
...
Angular 8
Angular.JS
Angular
Long time ago...
After a years...
The KING was tired...
The KING retires...
Component-based architecture that provides a higher quality of code
Re-usability
Readability
Unit-test friendly
Maintainability
TypeScript - better tooling, cleaner code, and higher scalability
RxJS - efficient, asynchronous programming
grew > 50% in 2018
Angular is the most searched topic in all web languages
- Julia Silge
data scientist @ Stack Overflow
Not Really,
SPA
MPA
Angular CLI is a command line interface, which includes the functionality that Webpack provides
vs
Modules
Components
Templates
Metadata
Data binding
Directives
Services
Dependency injection
Components are the most basic building block of an UI in an Angular application
Decorator
Selector
Template
Styles
cohesive block of code with a related set of capabilities which have a specific application domain or a workflow
classes that are related to views
modules whose classes are needed by the components
services present in the application
indicates the component that is to be bootstrapped
* only root module has this property
exports[ ] - classes that should be accessible to the components of other modules.
directive is a function that executes whenever the Angular compiler finds it in the DOM
Component
Structural
Attribute
a directive with a template
changes the structure of the DOM
change the behavior and appearance of the DOM
*ngIf
*ngFor
[ngClass]
[ngStyle]
transform outputs to desired format
hello world
HELLO WORLD
Fri Apr 15 1988 00:00:00 GMT-0700
April 15, 1988
define communication between the component and view
{{ String Interpolation }}
[Property Binding]
(Event Binding)
[(Two-Way Data Binding)]
Model
View
output data
Model
View
output data
{{data}}
[property]="data"
Model
View
react to user events
Model
View
(event)="expression"
[(ngModel)]="data"
typically a class with a narrow, well-defined purpose
Dependency Injection (DI) is a way to create objects that depend on the other objects
IN CASE OF EMERGENCY, DO NOT CREATE MANUAL INSTANCES IN COMPONENTS
AppModule
Same instance of the service is available application wide
AppComponent
Same instance of the service is available for all components (not for other services)
Any other components
Same instance of the service is available for the component and its child components
ngOnChanges
ngOnInit
ngDoCheck
ngAfterContentInit
ngAfterContentChecked
ngAfterViewInit
ngOnDestroy
ngAfterViewChecked
called when an input binding value changes
after the first ngOnChanges
after every run of change detection
after component content initialized
after every check of component content
after component's view(s) are initialized
after every check of a component's view(s)
just before the component is destroyed
Books written
[
{
"name": "Harry Potter and the Philosopher's Stone",
"imagePath":"https://vignette.wikia.nocookie.net/harrypotter/images/7/7b/Harry01english.jpg/revision/latest?cb=20150208225304"
},
{
"name": "Harry Potter and the Chamber of Secrets",
"imagePath":"https://images.gr-assets.com/books/1474169725l/15881.jpg"
},
{
"name": "Harry Potter and the Prisoner of Azkaban",
"imagePath":"https://vignette3.wikia.nocookie.net/harrypotter/images/1/11/Prisoner_of_Azkaban_cover.jpg/revision/latest?cb=20070328184627"
},
{
"name": "Harry Potter and the Goblet of Fire",
"imagePath":"https://vignette.wikia.nocookie.net/harrypotter/images/a/a3/Goblet_of_Fire_New_Cover.jpg/revision/latest?cb=20170109054633"
},
{
"name": "Harry Potter and the Order of the Phoenix",
"imagePath":"https://vignette.wikia.nocookie.net/what-you-love/images/5/5d/Harry_Potter_And_The_Order_Of_The_Phoenix.jpeg/revision/latest?cb=20150330170917"
},
{
"name": "Harry Potter and the Half-Blood Prince",
"imagePath":"https://hpmedia.bloomsbury.com/rep/s/9781408855942_309034.jpeg"
},
{
"name": "Harry Potter and the Deathly Hallows",
"imagePath":"https://images.gr-assets.com/books/1474171184l/136251.jpg"
}
]Q
A
@Azkar_moulana
for $89 for the year: https://thinkster.io/pro/yearly/student-yearly … or use code "student-yearly" or for monthly $15/month https://thinkster.io/pro/monthly/student-sale-2019 … or use code "student-sale-2019"
By Azkar Moulana
Slide deck for 'Angular zero to hero' workshop at NSBM(26/06/2019)