Making big SPA applications

Slides:



Advertisements
Similar presentations
AngularJS Routing Routes, Route Parameters, Templates, Location, Navigation SoftUni Team Technical Trainers Software University
Advertisements

AngularJS Services Built-in and Custom Services SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC SoftUni Team Technical Trainers Software University
AngularJS Directives Defining Custom Directives SoftUni Team Technical Trainers Software University
AMD and RequireJS Splitting JavaScript Code into Dependent Modules Software University Technical Trainers SoftUni Team.
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Stacks and Queues Processing Sequences of Elements SoftUni Team Technical Trainers Software University
XML Processing SoftUni Team Database Applications Technical Trainers
Version Control Systems
Auto Mapping Objects SoftUni Team Database Applications
Databases basics Course Introduction SoftUni Team Databases basics
Interface Segregation / Dependency Inversion
Services & Dependency Injection
Web API - Introduction AJAX, Spring Data REST SoftUni Team Web API
Introduction to MVC SoftUni Team Introduction to MVC
Deploying Web Application
PHP MVC Frameworks Course Introduction SoftUni Team Technical Trainers
PHP Fundamentals Course Introduction SoftUni Team Technical Trainers
C# Database Fundamentals with Microsoft SQL Server
JavaScript Applications
Application Architecture, Redux
Classes, Properties, Constructors, Objects, Namespaces
Mocking tools for easier unit testing
Parsing JSON JSON.NET, LINQ-to-JSON
JavaScript Applications
State Management Cookies, Sessions SoftUni Team State Management
Browser Routing Design Patterns in JS
EF Code First (Advanced)
PHP MVC Frameworks MVC Fundamentals SoftUni Team Technical Trainers
EF Relations Object Composition
Entity Framework: Code First
Parsing XML XDocument and LINQ
Unit Testing with Mocha
Databases advanced Course Introduction SoftUni Team Databases advanced
C#/Java Web Development Basics
MVC Architecture. Routing
Install and configure theme
Balancing Binary Search Trees, Rotations
Front-End Framework for Responsive Web Sites
Entity Framework: Relations
Fast String Manipulation
Functional Programming
ASP.NET Razor Engine SoftUni Team ASP.NET MVC Introduction
ASP.NET MVC Introduction
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Exporting and Importing Data
Databases Advanced Course Introduction SoftUni Team Databases Advanced
Best Practices and Architecture
Best practices and architecture
Design & Module Development
Magento Basics part 2 Modules & Themes Stenik Group Ltd. Magento
Multidimensional Arrays, Sets, Dictionaries
Extending functionality using Collections
ASP.NET REST Services SoftUni Team ASP.NET REST Services
Exporting and Importing Data
Manual Mapping and AutoMapper Library
Functional Programming
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Course Overview, Trainers, Evaluation
Introduction to TypeScript & Angular
CSS Transitions and Animations
Train the Trainers Course
Directives & Forms Capturing User Input SoftUni Team
Version Control Systems
JavaScript Frameworks & AngularJS
/^Hel{2}o\s*World\n$/
Lean .NET stack for building modern web apps
CSS Transitions and Animations
Iterators and Generators
CS5220 Advanced Topics in Web Programming Angular – Routing
Presentation transcript:

Making big SPA applications Modules & Routing Making big SPA applications Angular Development SoftUni Team Technical Trainers Software University http://softuni.bg

Table of Contents Bootstrapping an application The NgModule The root module The NgModule Using built-in modules Creating your own modules Routing & Navigation Creating our SPA

Have a Question? sli.do #angular-js

Bootstrapping An Application From where the Angular app starts

Bootstrapping An Application An NgModule class describes how the application parts fit together Every application has at least one NgModule – the root module It is used to bootstrap the application Usually, it is called AppModule but it is not necessary

Bootstrapping An Application The initial AppModule import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }

Bootstrapping An Application The imports array – adds functionality from other modules For example – BrowserModule, HttpModule, FormsModule, etc. The declarations array – registers components to be used in this module For example – HomeComponent, ListCarsComponent, etc. The bootstrap array – the root component, which Angular will insert into the index.html file

What is an Angular module? The NgModule What is an Angular module?

The NgModule Modules organize applications Many libraries are modules (HttpModule) Contain components, directives and pipes with similar features Modules add global services to an application Can be loaded eagerly on application start or asynchronously by the router Each application has at least one module – the root module As the application grows – you add different feature modules into the root module

The NgModule Creating custom modules import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { SomePipe } from './some.pipe'; import { SomeComponent } from './some.component'; import { SomeService } from './some.service'; import { SomeDirective } from './some.directive'; @NgModule({ imports: [ CommonModule, FormsModule ], declarations: [ SomeComponent, SomeDirective, SomePipe ], exports: [ SomeComponent ], providers: [ SomeService ] }) export class SomeModule { }

The NgModule Suggested common modules SharedModule – to contain all common components and directives used by a lot of places CoreModule – to contain singleton services and components needed only once in the application FeatureModule – to contain feature specific components More info: https://angular.io/guide/ngmodule

Routing & Navigation The core SPA feature

Routing & Navigation First add the base meta tag into the index.html file Second add the following into your HTML Add routes.module.ts file Add links Extract parameters with (the non-observable options) <base href="/"> <router-outlet></router-outlet> <a routerLink="/about">About</a> constructor (private route: ActivatedRoute) let id = this.route.snapshot.paramMap.get('id');

Routing & Navigation The routes configuration import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; // Component imports… const routes: Routes = [ { path: '', component: HomeComponent }, { path: 'about', component: AboutComponent }, { path: '**', component: PageNotFoundComponent } ]; @NgModule({ imports: [ RouterModule.forRoot(routes) ], exports: [ RouterModule ] }) export class AppRoutesModule { }

JavaScript Web – Angular Fundamentals https://softuni.bg/courses/angular-2-fundamentals © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.

License This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" license Attribution: this work may contain portions from "End-to-end JavaScript Applications" course by Telerik Academy under CC-BY-NC-SA license © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.

Free Trainings @ Software University Software University Foundation – softuni.org Software University – High-Quality Education, Profession and Job for Software Developers softuni.bg Software University @ Facebook facebook.com/SoftwareUniversity Software University @ YouTube youtube.com/SoftwareUniversity Software University Forums – forum.softuni.bg © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.