Build a step-by-step, decentralized application (Ethereum Blockchain Dapp) in more than 128 words – Part 1

This article aims to explain the key concepts of blockchain, dapp (decentralized app), smart contract and tokenization.

Blockchain

A blockchain is a decentralized database, it is shared between several nodes that has a copy of that database.

Block

A request for a user to add data to the database is a transaction. Transactions are grouped and added to a block in the blockchain.

Note that all data in this shared register, the blockchain, is secured by cryptographic hash and validated by an algorithm that is a consensus among network users.

Block concept in a blockchain

Minor

Minors are network users who use a program to validate new transactions and record them on the blockchain.

Example of a miner’s farm equipped to calculate transactions on the blockchain (via complex mathematical and cryptographic problem solving), miners receive a « reward » for their work.

Blockchain Ethereum

Ethereum is an open source platform that uses blockchain technology to run decentralized applications (dapps).

This platform is based on the creation of Smart Contract, it is a program that contains data and functions called by applications.

Based on the blockchain there is no centralized database but a register shared and maintained in peer to peer by users.

This technology can be used to exchange currencies or to create decentralized applications that call smart contracts and store their data in blocks of the blockchain.

Public Blockchain

In a public blockchain there is no permission, everyone can join the blockchain network, which means they can read, write or participate with a public blockchain.

Public Blockchains are decentralized, no one has control over the network and they remain secure because the data cannot be changed once validated on the block chain.

Public blockchain platforms such as Bitcoin, Ethereum, Litecoin are un authorized blockchain platforms, striving to increase and protect the anonymity of the user.

Private Blockchain

In a private blockchain there are restrictions to filter who is allowed to participate in the network and what transactions.

Private blockchains tend to be associated with identity management tools or a modular architecture on which you can plug in your own identity management solution.

This may be an OAuth solution service provider that uses Facebook, LinkedIn, for example,…

Token Ethereum

Ethereum tokens or tokens are digital assets that are built from the Ethereum blockchain. These are tokens that attest that you have a value (economic for example). These tokens are based on Ethereum’s existing infrastructure.

To store, receive, send ether (cryptocurrency on the blockchain ethereum) or tokens (which are tokens that are digital assets), you need at least one account. The easiest way to create an account is:

It is possible to create its own token to create its decentralized application that uses the public blockchain ethereum.

Tokenisation of financial assets

Tokenization is a method that converts the rights of an asset (financial, real estate …) into digital tokens (tokens).

Example for a 400,000 Euro apartment. Tokenizing it consists of turning it into 400,000 tokens (the number is arbitrary, the Issue can be 4 million or 100 chips).

Tokens are issued on a kind of platform that supports intelligent contracts, for example on Ethereum. The goal is for tokens to be freely exchanged.

When you buy a token, you actually buy a share of the ownership of the asset (from the apartment of 400,000 euros).

Buy 200,000 chips and you own half the assets. The Blockchain is shared register that is immutable, it ensures that once you buy tokens, no one can delete your property.

Decentralized application

Decentralized applications are applications that communicate with the blockchain. The decentralized application interface is similar to any website or mobile application.

The Smart Contract represents the central logic of decentralized application.

Illustration of a DApp that uses a blockchain with smart contracts combined with the looters of Swarm and Whisper.
Source: Ethereum Stack exchange

Smart Contract

Smart Contracts contain all the business logic of a DApp. They are responsible for reading and writing data in the blockchain, so they execute business logic.

Intelligent contacts are written in a programming language called SOLIDITY https://solidity.readthedocs.io, similar to Javascript.

To read on the subject:

Construir una aplicación paso a paso y descentralizada (Ethereum Blockchain Dapp) en más de 128 palabras – Parte 1

Este artículo tiene como objetivo explicar los conceptos clave de blockchain, dapp (aplicación descentralizada), contrato inteligente y tokenización.

Blockchain

Una cadena de bloques es una base de datos descentralizada, se comparte entre varios nodos que tiene una copia de esa base de datos.

Bloquear

Una solicitud para que un usuario agregue datos a la base de datos es una transacción. Las transacciones se agrupan y se agregan a un bloque en la cadena de bloques.

Tenga en cuenta que todos los datos de este registro compartido, la cadena de bloques, están protegidos por hash criptográfico y validados por un algoritmo que es un consenso entre los usuarios de la red.

Concepto de bloque en una cadena de bloques

Menor

Los menores son usuarios de la red que utilizan un programa para validar nuevas transacciones y registrarlas en la cadena de bloques.

Ejemplo de granja de un minero equipada para calcular transacciones en la cadena de bloques (a través de la resolución de problemas matemáticos y criptográficos complejos), los mineros reciben una « recompensa » por su trabajo.

Blockchain Ethereum

Ethereum es una plataforma de código abierto que utiliza la tecnología blockchain para ejecutar aplicaciones descentralizadas (dapps).

Esta plataforma se basa en la creación de Smart Contract, es un programa que contiene datos y funciones a las que llaman las aplicaciones.

Basado en la cadena de bloques no hay una base de datos centralizada, pero un registro compartido y mantenido en peer to peer por los usuarios.

Esta tecnología se puede utilizar para intercambiar divisas o para crear aplicaciones descentralizadas que llaman a contratos inteligentes y almacenan sus datos en bloques de la cadena de bloques.

Cadena de bloques pública

En una cadena de bloques pública no hay permiso, todo el mundo puede unirse a la red blockchain, lo que significa que puede leer, escribir o participar con una cadena de bloques pública.

Las cadenas de bloques públicas están descentralizadas, nadie tiene control sobre la red y permanecen seguras porque los datos no se pueden cambiar una vez validados en la cadena de bloques.

Plataformas blockchain públicas como Bitcoin, Ethereum, Litecoin son plataformas blockchain no autorizadas, tratando de aumentar y proteger el anonimato del usuario.

Cadena de bloques privada

En una cadena de bloques privada hay restricciones para filtrar quién puede participar en la red y qué transacciones.

Las cadenas de bloques privadas tienden a estar asociadas con herramientas de administración de identidades o con una arquitectura modular en la que puede conectar su propia solución de administración de identidades.

Puede ser un proveedor de servicios de solución de OAuth que usa Facebook, LinkedIn, por ejemplo,…

Token Ethereum

Los tokens o tokens de Ethereum son activos digitales que se construyen a partir de la cadena de bloques Ethereum. Estos son tokens que atestian que tiene un valor (económico, por ejemplo). Estos tokens se basan en la infraestructura existente de Ethereum.

Para almacenar, recibir, enviar éter (criptomoneda en el etereum blockchain) o tokens (que son tokens que son activos digitales), necesita al menos una cuenta. La forma más fácil de crear una cuenta es:

Es posible crear su propio token para crear su aplicación descentralizada que utiliza el ethereum blockchain público.

Tokenización de activos financieros

La tokenización es un método que convierte los derechos de un activo (financiero, inmobiliario…) en tokens digitales (tokens).

Ejemplo para un apartamento de 400.000 euros. Tokenizarconsiste en convertirlo en 400.000 tokens (el número es arbitrario, el problema puede ser de 4 millones o 100 fichas).

Los tokens se emiten en una especie de plataforma que admite contratos inteligentes, por ejemplo en Ethereum. El objetivo es que los tokens se intercambien libremente.

Cuando compras un token, en realidad compras una parte de la propiedad del activo (desde el apartamento de 400.000 euros).

Compra 200.000 fichas y posees la mitad de los activos. El Blockchain es un registro compartido que es inmutable, garantiza que una vez que compre tokens, nadie pueda eliminar su propiedad.

Aplicación descentralizada

Las aplicaciones descentralizadas son aplicaciones que se comunican con la cadena de bloques. La interfaz de aplicación descentralizada es similar a cualquier sitio web o aplicación móvil.

El contrato inteligente representa la lógica central de la aplicación descentralizada.

Ilustración de una DApp que utiliza una cadena de bloques con contratos inteligentes combinados con los saqueadores de Swarm y Whisper.
Fuente: Intercambio de Ethereum Stack

Contrato inteligente

Los contratos inteligentes contienen toda la lógica empresarial de una DApp. Son responsables de leer y escribir datos en la cadena de bloques, por lo que ejecutan la lógica de negocios.

Los contactos inteligentes se escriben en un lenguaje de programación llamado SOLIDITY Website solidity.readthedocs.io, similar a Javascript.

Para leer sobre el tema:

Construire une application décentralisée full-stack pas à pas (Ethereum Blockchain Dapp) en plus de 128 mots – Partie 1

Cet article a pour objectif d’expliquer les concepts clés de la blockchain, des dapp (decentralized app), des smart contract et de la tokenisation.

Blockchain

Une blockchain est une base de donnée décentralisée, elle est partagée entre plusieurs nœuds qui possède une copie de cette base de donnée.

Block

Une demande d’ajout de donnée dans la base par un utilisateur est une transaction. Les transactions sont regroupées et ajoutées à un block dans la blockchain.

A noter que toutes les données de ce registre partagé qu’est la blockchain, sont sécurisées par hachage cryptographique et validées par un algorithme qui fait consensus entre les utilisateurs du réseau.

Concept de block dans une blockchain

Mineur

Les mineurs sont des utilisateurs du réseau qui mettent, grâce à un programme, les ressources de leur ordinateur pour valider les nouvelles transactions et les enregistrent sur le registre partagé (blockchain).

Exemple de ferme de mineur équipée pour calculer des transactions sur la blockchain (via la résolution de problème mathématique et cryptographique complexe), les mineurs reçoivent une « récompense » pour leur travail.

Blockchain Ethereum

Ethereum est une plate-forme open source qui utilise la technologie blockchain pour éxecuter des applications décentralisées (dapps).

Cette plateforme se base sur la création de Smart Contract, c’est un programme qui contient des données et des fonctions appelées par des applications.

Se basant sur la blockchain il n’y a pas de base de donnée centralisée mais un registre partagé et maintenu en peer to peer par les utilisateurs.

Cette technologie peut être utilisée pour échanger des devises ou pour créer des applications décentralisées qui appellent des smarts contracts et qui stockent leurs données dans des blocs de la blockchain.

Blockchain publique

Dans une blockchain publique il n’y a pas d’autorisation, tout le monde peut rejoindre le réseau de blockchain, ce qui signifie qu’il peut lire, écrire ou participer avec une blockchain publique.

Les Blockchain publiques sont décentralisées, personne n’a de contrôle sur le réseau et elles restent sécurisées car les données ne peuvent pas être modifiées une fois validées sur la chaîne de blocs.

Les plates-formes publiques de blockchain comme Bitcoin, Ethereum, Litecoin sont des plateformes de blockchain sans autorisation, elles s’efforcent d’augmenter et de protéger l’anonymat de l’utilisateur.

Blockchain privée

Dans une blockchain privée il y a des restrictions pour filtrer qui est autorisé à participer au réseau et à quelles transactions.

Les blockchains privées ont tendance à être associées à des outils de gestion des identités ou une architecture modulaire sur laquelle vous pouvez brancher votre propre solution de gestion des identités.

Il peut s’agir d’un fournisseur de services d’adhésion à une solution OAuth qui utilise par exemple Facebook, LinkedIn,…

Token Ethereum

Les tokens ou jetons Ethereum sont des actifs numériques qui sont construits à partir de la blockchain Ethereum. Ce sont des jetons qui attestent que vous possédez une valeur (économique par exemple). Ces jetons sont basés sur l’infrastructure existante d’Ethereum.

Pour stocker, recevoir, envoyer les ether (cryptomonnaie sur la blockchain ethereum) ou les tokens (qui sont des jetons qui sont des actifs numérique), il vous faut a minima un compte. Le plus simple moyen de créer un compte est :

Il est possible de créer son propre token pour créer son application décentralisée qui utilise la blockchain publique ethereum.

Tokenisation des actifs financier

La tokenisation est une méthode qui convertit les droits d’un actif (financier, immobilier …) en jetons numériques (tokens).

Exemple pour un appartement de 400 000 Euros. Le tokeniser consiste à le transformer en 400 000 tokens (le nombre est arbitraire, l’Émission peut être de 4 millions ou 100 jetons).

Les tokens sont émis sur une sorte de plate-forme prenant en charge les contrats intelligents, par exemple sur Ethereum. Le but est que les tokens puissent être librement échangés.

Lorsque vous achetez un token, vous achetez en fait une part de la propriété de l’actif (de l’appartemment de 400 000 euros).

Achetez 200 000 jetons et vous possédez la moitié des actifs. La Blockchain est registre partagé qui est immuable, il garantit qu’une fois que vous achetez des tokens, personne ne peut supprimer votre propriété.

Application décentralisée

Les applications décentralisées sont des applications qui communiquent avec la blockchain. L’interface des applications décentralisées est similaire à n’importe quel site Web ou application mobile.

Le Smart Contract représente la logique centrale de l’application décentralisée.

Illustration of a DApp that uses a blockchain with smart contracts combined with the pillars of Swarm and Whisper.
Source: Ethereum Stack exchange

Smart Contract

Les Smart Contract contiennent toute la logique métier d’une DApp. Ils sont chargés de lire et d’écrire des données dans la blockchain, aussi ils exécutent la logique métier.

Les contacts intelligents sont écrits dans un langage de programmation appelé SOLIDITY Website solidity.readthedocs.io, proche de Javascript.

A lire sur le sujet :

ANGULAR in less than 128 words – TypeScript – Angular Part 8

This article follows the first seven on the subject ANGULAR and deals with the language TypeScript:

Templates and interpolation

Interpolation is the incorporation of expressions into marked text. By default, interpolation uses double braces, ‘and ‘a’ as a delimiter.

<h3>Customer Number: 'numbereroClient'</h3>

Example of a directive with iteration:

<li *ngfor="let client of listeClients">'customer.name'</li>

Services:

The services allow to decouple the component of the call to a service, they are thus reusable.

ng generate customer service
import - Injectable - from '@angular/core';

@Injectable
  providedIn: 'root',
})
export class ClientService

  constructor()

}

The logic is then decoupled from the service which is injectable via the addiction injection.

Addiction injection

Example of injection of CustomerService dependency into a CustomerComponent component

import - Component, OnInit - from '@angular/core';

import 'Hero ' from '.. /hero';
import 'HeroService ' from '.. /hero.service';
import 'MessageService ' from '.. /message.service';

@Component
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  StyleUrls:['./heroes.component.css']
})
export class ClientComponent implements OnInit

...

  getClients(): void
    this.clientService.getClients();
  }
}

ANGULAR en menos de 128 palabras – TypeScript – Angular Part 8

Este artículo sigue a los primeros siete sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Plantillas e interpolación

La interpolación es la incorporación de expresiones en texto marcado. De forma predeterminada, la interpolación utiliza llaves dobles, 'y 'a' como delimitador.

<h3>Número de cliente: 'numbereroClient'</h3>

Ejemplo de una directiva con iteración:

<li *ngfor="let client of listeClients">'customer.name'</li>

Servicios:

Los servicios permiten desacoplar el componente de la llamada a un servicio, por lo que son reutilizables.

ng generar servicio al cliente
importación - Inyectable - de '@angular/núcleo';

@Injectable
  siempre: 'raíz',
})
clase de exportación ClientService

  constructor()

}

La lógica se desacopla del servicio que es inyectable a través de la inyección de adicción.

Inyección de adicciones

Ejemplo de inyección de la dependencia CustomerService en un componente CustomerComponent

importación - Componente, OnInit - de '@angular/núcleo';

importar 'Héroe' desde '.. /héroe';
importar 'HeroService' desde '.. /hero.service';
importar 'MessageService' desde '.. /message.service';

@Component
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  StyleUrls:['./heroes.component.css']
})
la clase de exportación ClientComponent implementa OnInit

...

  getClients(): void
    this.clientService.getClients();
  }
}

ANGULAR en moins de 128 mots – TypeScript – Angular Partie 8

Cet article fait suite aux sept premiers sur le sujet ANGULAR et porte sur le langage TypeScript :

Templates et interpolation

L’interpolation est l’incorporation d’expressions dans du texte balisé. Par défaut, l’interpolation utilise comme délimiteur les doubles accolades, {{ et }}.

<h3>Client n° : {{ numeroClient }}</h3>

Exemple de directive avec itération :

<li *ngFor="let client of listeClients">{{client.nom}}</li>

Services :

Les services permettent de découpler le composant de l’appel à un service, ils sont ainsi réutilisables.

ng generate service client
import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class ClientService {

  constructor() { }

}

La logique est alors découplée du service qui est injectable via l’injection de dépendance.

Injection de dépendance

Exemple d’injection de la dépendance ClientService dans un composant ClientComponent

import { Component, OnInit } from '@angular/core';

import { Hero } from '../hero';
import { HeroService } from '../hero.service';
import { MessageService } from '../message.service';

@Component({
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  styleUrls: ['./heroes.component.css']
})
export class ClientComponent implements OnInit {

...

  getClients(): void {
    this.clientService.getClients();
  }
}

ANGULAR in less than 128 words – TypeScrip – Angular Part 7

This article follows the first six on the subject ANGULAR and deals with the language TypeScript:

Manufacturer:

The builder is the method called to create the instance of an object

Class Point
    x: number;
    y: number;

    constructor (x: number, y: number)
        this.x x;
        this.y - y;
    }
    add (point: Point)
        return new Point (this.x - point.x, this.y - point.y);
    }
}

var p1 - new Point (30, 5);
var p2 - new Point (14, 21);
var p3 - p1.add (p2);

Optional setting:

If a setting is declared optional then all the parameters declared to its right are optional. Example of the name setting in the manufacturer.

Class Point
    x: number;
    y: number;
    name: string;

    constructor (x: number, y: number, name?:string)
        this.x x;
        this.y - y;
        this.name - name;
    }
}

Visibility:

By default the visibility of the setting is public, you can use "access modifiers" to change it.

Class Point
    private x: number;

Access modifiers can be positioned on methods, variables and properties.

Class Point
...
     private add (point: Point)
        return new Point (this.x - point.x, this.y - point.y);
    }
}
Class Point
...
    constructor (private x: number, private y: number)
...

Adding an access modifier (public/private/protected/reading only) to a builder setting will automatically assign that setting to a field of the same name.

Getter and setter:

TypeScript supports getters/setters as a way to intercept access to a member of an object.

This allows for a finer control over how a member is accessed on each object.

Const lengthMaxDuNom - 10;

Wage class
    private _nomComplet: string;

    get nameComplet(): thong
        return this._nomComplet;
    }

    name setComplet (newName: string)
        if (newName - newNom.length - lengthMaxDuNom)
            throw new Error ("Error Maximum length of the name reached, maximum length allowed - " lengthMaxDuNom);
        }
        
        this._nomComplet - newName;
    }
}

let salarie - new Salarie();
salarie.nameComplet - "Toto Hello";
if (employee.nomComplete)
    console.log (employee.nameComplete);
}

References to read:

ANGULAR en menos de 128 palabras – TypeScrip – Angular Parte 7

Este artículo sigue los primeros seis sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Fabricante:

El generador es el método llamado para crear la instancia de un objeto

Punto de clase
    x: número;
    y: número;

    constructor (x: número, y: número)
        this.x x;
        this.y - y;
    }
    añadir (punto: Punto)
        devolver nuevo Punto (this.x - point.x, this.y - point.y);
    }
}

var p1 - nuevo punto (30, 5);
var p2 - nuevo punto (14, 21);
var p3 - p1.add (p2);

Ajuste opcional:

Si una configuración se declara opcional, todos los parámetros declarados a su derecha son opcionales. Ejemplo de la configuración de nombre en el fabricante.

Punto de clase
    x: número;
    y: número;
    name: string;

    constructor (x: number, y: number, name?:string)
        this.x x;
        this.y - y;
        this.name - nombre;
    }
}

Visibilidad:

De forma predeterminada, la visibilidad de la configuración es pública, puede usar "modificadores de acceso" para cambiarla.

Punto de clase
    x privado: número;

Los modificadores de acceso se pueden colocar en métodos, variables y propiedades.

Punto de clase
...
     private add (punto: Punto)
        devolver nuevo Punto (this.x - point.x, this.y - point.y);
    }
}
Punto de clase
...
    constructor (privado x: número, número y privado)
...

Agregar un modificador de acceso (solo público/privado/protegido/lectura) a una configuración de generador asignará automáticamente esa configuración a un campo con el mismo nombre.

Getter y setter:

TypeScript admite getters/setters como una forma de interceptar el acceso a un miembro de un objeto.

Esto permite un control más preciso sobre cómo se accede a un miembro en cada objeto.

Const lengthMaxDuNom - 10;

Clase salarial
    _nomComplet privada: string;

    get nameComplet(): tanga
        devolver this._nomComplet;
    }

    nombre setComplet (newName: string)
        if (newName - newNom.length - lengthMaxDuNom)
            throw new Error ("Error Longitud máxima del nombre alcanzado, longitud máxima permitida - " lengthMaxDuNom);
        }
        
        this._nomComplet - newName;
    }
}

deje que salarie - nuevo Salarie();
salarie.nameComplet - "Toto Hello";
si (employee.nomComplete)
    console.log (employee.nameComplete);
}

Referencias a leer:

Typescript Getter Setter ANGULAR

Cet article fait suite aux six premiers sur le sujet ANGULAR Typescript Getter Setter et porte sur le langage TypeScript :

Constructeur :

Le constructeur est la méthode appelée à la création de l’instance d’un objet

class Point {
    x: number;
    y: number;

    constructor(x: number, y: number) {
        this.x = x;
        this.y = y;
    }
    ajouter(point: Point) {
        return new Point(this.x + point.x, this.y + point.y);
    }
}

var p1 = new Point(30, 5);
var p2 = new Point(14, 21);
var p3 = p1.ajouter(p2);

Paramètre optionnel :

Si un paramètre est déclaré optionnel alors tous les paramètres déclarés à sa droite sont optionnels. Exemple du paramètre name dans le constructeur.

class Point {
    x: number;
    y: number;
    name: string;

    constructor(x: number, y: number, name?:string) {
        this.x = x;
        this.y = y;
        this.name = name;
    }
}

Visibilité :

Par défaut la visibilité du paramètre est publique, on peut utiliser des « access modifier » pour la modifier.

class Point {
    private x: number;

Les modificateurs d’accès peuvent être positionnés sur les méthodes, les variables et les propriétés.

class Point {
...
     private ajouter(point: Point) {
        return new Point(this.x + point.x, this.y + point.y);
    }
}
class Point {
...
    constructor(private x: number, private y: number) {
...

L’ajout d’un modificateur d’accès (public / privé / protégé / en lecture seule) à un paramètre constructeur affectera automatiquement ce paramètre à un champ du même nom.

Typescript getter setter :

TypeScript prend en charge les getters / setters comme moyen d’intercepter les accès à un membre d’un objet.

Cela permet d’avoir un contrôle plus fin sur la façon dont un membre est accédé sur chaque objet.

const longueurMaxDuNom = 10;

class Salarie {
    private _nomComplet: string;

    get nomComplet(): string {
        return this._nomComplet;
    }

    set nomComplet(nouveauNom: string) {
        if (nouveauNom && nouveauNom.length > longueurMaxDuNom) {
            throw new Error("Erreur Longueur maxi du nom atteinte, longueur max autorisee = " + longueurMaxDuNom);
        }
        
        this._nomComplet = nouveauNom;
    }
}

let salarie = new Salarie();
salarie.nomComplet = "Toto Hello";
if (employee.nomComplet) {
    console.log(employee.nomComplet);
}

Références à lire :

Typescript getter setter : liens internes

https://128mots.com/index.php/category/graphes/

https://128mots.com/index.php/category/python/

Typescript getter setter Plus d’informations:

Le stockage des classes peut se faire dans des fichiers séparés, dans ce cas il s’agit d’une déclaration de module.

Les modules permettent de rendre accessible la classe en dehors du fichier. La classes doit dans un premier temps être exportée via « export » pour être visible exemple de personne.ts:

Utilisation des classes

Comme dans les autres langages une classe permet de créer des objets et regroupe des variables et des fonctions qui sont fortement liées « Highly Related »

TypeScript est un langage à typage fort typé, orienté objet et compilé. TypeScript est un sur-ensemble typé de JavaScript compilé en JavaScript. TypeScript est JavaScript et quelques fonctionnalités supplémentaires.

La documentation de typescript est disponible sur ce lien : Website www.typescriptlang.org

Angular est un framework pour construire des applications clientes, il se base sur HTML/CSS et JavaScript/TypeScript.

Angular propose les avantages suivants :

  1. Revealing Module Pattern : permet d’organiser le code en un ou plusieurs modules et donne une meilleure structure.
  2. Architecture propre et structurée.
  3. Code réutilisable.
  4. Application plus facilement testable.

ANGULAR in less than 128 words – Angular Components – Part 6

Block application construction

Components are like building blocks in an Angular application.

Components are defined using the @component decorator. A component has a selector, model, style and other properties, using which it specifies the metadata required to process the component.

Example of Angular component block architecture

AppComponent is the root component of our application. This is the base of the Angular application component tree.

Website angular.io

To generate a component the command is:

ng g component MyComponent

Sample component:

import - Component - from "@angular/core";

@Component
  selector: "articles"
  template: "<h2>Article</h2>"
})
export class ArticlesComponent
}

Note that if you haven't used the component generation control, then you have to manually add the component to the src/app/app.module.ts file in the imports.

import - BrowserModule - from "@angular/platform-browser";
import - NgModule - from "@angular/core";
import - AppComponent - from "./app.component";
import - ArticlesComponent - from "./articles.component";

@NgModule
  declarations: [AppComponent, ArticlesComponent],
  Imports[BrowserModule, ArticlesComponent]:
  Providers[]:
  Bootstrap:[AppComponent]
})
export class AppModule