Introducció a Angular
Angular és un framework de desenvolupament web de codi obert mantingut per Google. És utilitzat per construir aplicacions web dinàmiques i de gran escala. Angular proporciona una arquitectura robusta basada en components, que facilita la creació i manteniment de codi.
Característiques Clau d'Angular
- Arquitectura basada en components: Angular utilitza components per construir la interfície d'usuari.
- Data Binding bidireccional: Permet la sincronització automàtica entre el model i la vista.
- Dependency Injection: Facilita la gestió de dependències i la reutilització de codi.
- Directives: Permet estendre el comportament dels elements HTML.
- Routing: Facilita la navegació entre diferents vistes de l'aplicació.
- RxJS: Utilitza observables per gestionar operacions asíncrones.
Configuració de l'Entorn
Instal·lació de Node.js i npm
Angular requereix Node.js i npm (Node Package Manager) per gestionar les dependències.
- Descarrega i instal·la Node.js des del lloc oficial.
- Verifica la instal·lació executant les següents comandes en la terminal:
node -v npm -v
Instal·lació de l'Angular CLI
L'Angular CLI (Command Line Interface) és una eina que facilita la creació i gestió de projectes Angular.
-
Instal·la l'Angular CLI globalment:
npm install -g @angular/cli
-
Verifica la instal·lació:
ng version
Creació d'un Nou Projecte Angular
-
Crea un nou projecte:
ng new my-angular-app
-
Navega al directori del projecte:
cd my-angular-app
-
Inicia el servidor de desenvolupament:
ng serve
-
Obre el navegador i visita
http://localhost:4200/
per veure l'aplicació en funcionament.
Estructura d'un Projecte Angular
Un projecte Angular té una estructura de directoris específica. A continuació es mostra una estructura típica:
my-angular-app/ ├── src/ │ ├── app/ │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ └── ... │ ├── assets/ │ ├── environments/ │ ├── index.html │ ├── main.ts │ ├── styles.css │ └── ... ├── angular.json ├── package.json └── ...
Fitxers i Directories Clau
- src/app: Conté els components, serveis i altres fitxers de l'aplicació.
- app.component.ts: Component principal de l'aplicació.
- app.module.ts: Mòdul principal de l'aplicació.
- main.ts: Punt d'entrada de l'aplicació.
- angular.json: Configuració del projecte Angular.
- package.json: Llista de dependències del projecte.
Creació de Components
Definició d'un Component
Un component Angular es defineix mitjançant una classe TypeScript decorada amb @Component
.
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'my-angular-app'; }
Creació d'un Nou Component
-
Utilitza l'Angular CLI per generar un nou component:
ng generate component my-new-component
-
Això crearà els següents fitxers:
src/app/my-new-component/ ├── my-new-component.component.css ├── my-new-component.component.html ├── my-new-component.component.spec.ts └── my-new-component.component.ts
Utilització d'un Component
Per utilitzar un component en un altre component, simplement afegeix el selector del component fill al fitxer HTML del component pare.
Data Binding
Interpolació
Permet mostrar dades del component en la vista.
Property Binding
Permet establir propietats dels elements HTML.
Event Binding
Permet gestionar esdeveniments dels elements HTML.
Two-Way Data Binding
Permet la sincronització bidireccional entre el model i la vista.
Directives
Directives Estructurals
Les directives estructurals canvien la disposició del DOM.
-
ngIf: Mostra o amaga elements.
<div *ngIf="isVisible">This is visible</div>
-
ngFor: Itera sobre una col·lecció.
<ul> <li *ngFor="let item of items">{{ item }}</li> </ul>
Directives d'Atribut
Les directives d'atribut canvien l'aparença o el comportament dels elements.
-
ngClass: Afegeix o elimina classes CSS.
<div [ngClass]="{'active': isActive}">This is active</div>
-
ngStyle: Aplica estils CSS.
<div [ngStyle]="{'color': color}">This is colored</div>
Exercici Pràctic
Objectiu
Crear una aplicació Angular que mostri una llista de tasques i permeti afegir-ne de noves.
Passos
- Crea un nou projecte Angular.
- Genera un component
task-list
. - Defineix un array de tasques en el component
task-list
. - Mostra les tasques utilitzant
ngFor
. - Afegeix un formulari per afegir noves tasques.
- Implementa la lògica per afegir tasques al array.
Solució
1. Crea un nou projecte Angular
2. Genera un component task-list
3. Defineix un array de tasques en el component task-list
// src/app/task-list/task-list.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-task-list', templateUrl: './task-list.component.html', styleUrls: ['./task-list.component.css'] }) export class TaskListComponent { tasks: string[] = ['Task 1', 'Task 2', 'Task 3']; }
4. Mostra les tasques utilitzant ngFor
<!-- src/app/task-list/task-list.component.html --> <ul> <li *ngFor="let task of tasks">{{ task }}</li> </ul>
5. Afegeix un formulari per afegir noves tasques
<!-- src/app/task-list/task-list.component.html --> <input [(ngModel)]="newTask" placeholder="New task"> <button (click)="addTask()">Add Task</button> <ul> <li *ngFor="let task of tasks">{{ task }}</li> </ul>
6. Implementa la lògica per afegir tasques al array
// src/app/task-list/task-list.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-task-list', templateUrl: './task-list.component.html', styleUrls: ['./task-list.component.css'] }) export class TaskListComponent { tasks: string[] = ['Task 1', 'Task 2', 'Task 3']; newTask: string = ''; addTask() { if (this.newTask.trim()) { this.tasks.push(this.newTask); this.newTask = ''; } } }
Resum
En aquesta secció, hem après els conceptes bàsics d'Angular, incloent la configuració de l'entorn, la creació de components, el data binding, i les directives. També hem realitzat un exercici pràctic per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per explorar temes més avançats d'Angular i construir aplicacions web dinàmiques i robustes.
JavaScript: De Principiant a Avançat
Mòdul 1: Introducció a JavaScript
- Què és JavaScript?
- Configuració del Teu Entorn de Desenvolupament
- El Teu Primer Programa en JavaScript
- Sintaxi i Conceptes Bàsics de JavaScript
- Variables i Tipus de Dades
- Operadors Bàsics
Mòdul 2: Estructures de Control
- Declaracions Condicionals
- Bucles: for, while, do-while
- Declaracions Switch
- Gestió d'Errors amb try-catch
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Expressions de Funció i Funcions Fletxa
- Paràmetres i Valors de Retorn
- Àmbit i Tancaments
- Funcions d'Ordre Superior
Mòdul 4: Objectes i Arrays
- Introducció als Objectes
- Mètodes d'Objecte i Paraula Clau 'this'
- Arrays: Conceptes Bàsics i Mètodes
- Iteració sobre Arrays
- Desestructuració d'Arrays
Mòdul 5: Objectes i Funcions Avançades
- Prototips i Herència
- Classes i Programació Orientada a Objectes
- Mòduls i Importació/Exportació
- JavaScript Asíncron: Callbacks
- Promeses i Async/Await
Mòdul 6: El Model d'Objectes del Document (DOM)
- Introducció al DOM
- Selecció i Manipulació d'Elements del DOM
- Gestió d'Esdeveniments
- Creació i Eliminació d'Elements del DOM
- Gestió i Validació de Formularis
Mòdul 7: APIs del Navegador i Temes Avançats
- Emmagatzematge Local i de Sessió
- Fetch API i AJAX
- WebSockets
- Service Workers i Aplicacions Web Progressives (PWAs)
- Introducció a WebAssembly
Mòdul 8: Proves i Depuració
- Depuració de JavaScript
- Proves Unitàries amb Jest
- Proves d'Integració
- Proves de Cap a Cap amb Cypress
Mòdul 9: Rendiment i Optimització
- Optimització del Rendiment de JavaScript
- Gestió de Memòria
- Manipulació Eficient del DOM
- Càrrega Per Mandat i Divisió de Codi
Mòdul 10: Frameworks i Llibreries de JavaScript
- Introducció a React
- Gestió d'Estat amb Redux
- Conceptes Bàsics de Vue.js
- Conceptes Bàsics d'Angular
- Triar el Framework Adequat