Etude des composants Ionic: cas du composant "ion-input"

About my tech ecosystem: Oriented Front-End - JavaScript | TypeScript - Angular - Ionic - Mobile & Web - UX Design
Je suis Ezéchiel Amen AGBLA, Angular Developer Expert & Ionic Developer Expert, passionné par le développement web et mobile. Je mets la lumière sur des notions liées à Angular et à Ionic pour la communauté francophone.
Ionic est un framework de développement d'applications mobiles offrant une multitude de composants pour simplifier la création d'interfaces utilisateurs modernes et attractives. Parmi ces composants, l'un des plus fondamentaux et presque omniprésents est le composant ion-input en tant qu'élément clé pour interagir avec l'utilisateur, que nous explorerons en détail et illustrerons comment l'intégrer dans vos projets Ionic pour des expériences utilisateur fluides et interactives.
Qu'est ce que ion-input ?
Le composant ion-input est conçu pour créer différents types de champs de saisie flexibles et personnalisables, ce qui permet aux développeurs de gérer facilement les entrées des utilisateurs dans les applications Ionic. Il s'intègre parfaitement à la stylisation et à la thématique d'Ionic, offrant une apparence cohérente sur différentes plateformes.
Comment l'utiliser et le personnaliser ?
Pour une bonne implémentation du composant ion-input sur une interface utilisateur, il faut l'inclure dans un composant ion-item afin de créer une structure de formulaire conviviale. Voici un exemple de base :
<ion-item>
<ion-input label="Default input"></ion-input>
</ion-item>
Dans l'exemple précédent, nous avons créé un simple composant ion-input basique, sans aucune personnalisation de styles et avec qu'une propriété label qui définit le libellé du champs de saisie.
Allons maintenant plus loin et utilisons les propriétés et les types pour ajouter d'autres fonctionnalités au composant.
Quelques propriétés personnalisées du composant
ion-inputtype
Cette propriété permet de spécifier le type de contrôle à afficher. Le type par défaut est text. On a entre autre les types : date, email, password, search, tel, time, url, month, week et datetime-local
<ion-item> <ion-input label="Adresse Email" type="email" ></ion-input> </ion-item>placeholder
Cette propriété permet de spécifier le texte d'instruction qui s'affiche avant que l'input n'ait une valeur. Cette propriété ne s'applique que lorsque la propriété de type est définie sur "email", "number", "password", "search", "tel", "text" ou "url", sinon elle est ignorée.
<ion-item> <ion-input label="Adresse Email" type="email" placeholder="Entrez votre adresse email ici"> </ion-input> </ion-item>value
Cette propriété permet de spécifier la valeur par défaut du champs de saisie
<ion-item> <ion-input label="Adresse Email" type="email" value="example@gmail.com"> </ion-input> </ion-item>required
Cette propriété permet de spécifier si le champs de saisie doit etre requis ou pas. Il est de type booléen.
<ion-item> <ion-input label="Adresse Email" type="email" required="true" value="example@gmail.com"> </ion-input> </ion-item>inputmode
Cette propriété permet de spécifier au navigateur le type de clavier à afficher. Il peut etre de type : "none", "text", "tel", "url", "email", "numeric", "decimal" ou "search".
<ion-item> <ion-input label="Adresse Email" type="email" inputmode="email" required="true" value="example@gmail.com"> </ion-input> </ion-item>disabled
Cette propriété permet de spécifier si le champs de saisie doit etre désactivé ou pas. Il est de type booléen. Si
true, l'utilisateur ne pourra pas saisir aucune information dans le champs de saisie.<ion-item> <ion-input label="Information" type="text" disabled="true" value="Vous ne pouvez rien saisir ici"> </ion-input> </ion-item>Nous venons d'énumérer ci-dessus quelques propriétés les plus utilisées. On peut aussi ajouter à ces derniers les propriétés ci-après :
autocapitalize,autocomplete,autocorrect,autofocus,clearInput,clearOnEdit color,size,shape,readonly,pattern,name,multiple,mode,minlength,min,enterkeyhint,labelPlacement,maxlength,max,legacy,fill,errorText,helperText,debounceque vous pouvez étudier ici.
Quelques évènements personnalisés du composant
ion-inputAfin de réagir aux différentes interactions de l'utilisateur avec le composant
ion-input, Ionic met à disposition plusieurs évènements dontionChange,ionFocus,ionInputetionBlur.ionChange
L'événement
ionChangeest déclenché lorsque l'utilisateur modifie la valeur de l'entrée. Contrairement à l'événementionInput, l'événementionChangen'est déclenché que lorsque les modifications sont validées, et non lorsque l'utilisateur saisit.<ion-item> <ion-input (ionChange)="setValue()" label="Adresse Email" type="email" inputmode="email" required="true" value="example@gmail.com"> </ion-input> </ion-item>ionInput
L'événement
ionInputest déclenché chaque fois que l'utilisateur modifie la valeur de l'entrée. Contrairement à l'événementionChange, l'événementionInputest déclenché pour chaque modification de la valeur de l'entrée. Cela se produit généralement à chaque frappe de touche lorsque l'utilisateur tape. Pour les éléments qui acceptent la saisie de texte (type=text, type=tel, etc.), l'interface estInputEvent; pour les autres, l'interface estEvent. Si l'entrée est effacée lors de la modification, le type estnull.<ion-item> <ion-input (ionInput)="setValue()" label="Adresse Email" type="email" inputmode="email" required="true" value="example@gmail.com"> </ion-input> </ion-item>ionFocus et ionBlur
Ces événements sont déclenchés lorsque le champs de saisie perd (
ionBlur) ou gagne (ionFocus) le focus.<ion-item> <ion-input (ionInput)="setValue()" (ionFocus)="winFocus()" (ionBlur)="loseFocus()" label="Adresse Email" type="email" inputmode="email" required="true" value="example@gmail.com"> </ion-input> </ion-item>
Quelques styles personnalisés du composant
ion-inputLe composant
ion-inputest livré avec une variété de propriétésCSSque vous pouvez personnaliser pour adapter l'apparence de l'input à vos préférences en matière de design. Vous trouverez ci-dessous, quelques-unes des propriétés CSS personnalisées les plus couramment utilisées :--background: qui permet de spécifier la couleur de l'arrière-plan de l'input--border-color: qui permet de spécifier la couleur de la bordure en dessous de l'input lorsqu'on utilise les propriétés helperText, errorText ou counter--border-style: qui permet de spécifier le style de la bordure en dessous de l'input lorsqu'on utilise les propriétés helperText, errorText ou counter--color: qui permet de spécifier la couleur du texte de l'input--highlight-color-focused: qui permet de spécifier la couleur de la bordure inférieure de l'input lorsqu'il a le focus de l'utilisateur--highlight-color-invalid: qui permet de spécifier la couleur de la bordure inférieure de l'input lorsque la donnée entrée par l'utilisateur est invalide--highlight-color-valid: qui permet de spécifier la couleur de la bordure inférieure de l'input lorsque la donnée entrée par l'utilisateur est valide--placeholder-color: qui permet de spécifier la couleur du placeholder de l'input--padding-bottom: qui permet de spécifier la marge intérieur basse de l'input--padding-end: qui permet de spécifier la marge intérieur au bout de l'input--padding-start: qui permet de spécifier la marge intérieur au début de l'input--padding-top: qui permet de spécifier la marge intérieur haute de l'inpution-input { --background: #93e9be; --highlight-color-valid: #9ce0be; --highlight-color-invalid: #88f4be; --highlight-color-focused: #88f4be; --color: black; --placeholder-text: #93e9be --border-radius: 0; --border-color: #000; --border-style: solid; --border-width: 1px; --padding-top: 10px; --padding-bottom: 10px; }Ionic propose également d'autres propriétés CSS telles que
--placeholder-opacity,--placeholder-font-weight,--placeholder-font-style,--border-radiusque vous pouvez étudier ici
Lecture et écriture avec le composant
ion-inputSelon le framework JavaScript utilisé, les méthodes de lecture et d'écriture sur un champ de saisie s'applique parfaitement au composant
ion-input.En prenant l'exemple avec le framework Angular, voici comment utiliser la directive
ngModel:// app.module.ts import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { IonicModule } from '@ionic/angular'; import { MyApp } from './app.component'; @NgModule({ declarations: [MyApp], imports: [IonicModule.forRoot(), FormsModule], bootstrap: [MyApp], }) export class MyAppModule {}<ion-item> <ion-label position="floating">Username</ion-label> <ion-input type="text" [(ngModel)]="username"></ion-input> </ion-item>import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: 'app.component.html', styleUrls: ['app.component.scss'], }) export class AppComponent { username: string = ''; // Initialize the variable }
En résumé, le composant ion-input répond parfaitement au besoin lié à la saisie utilisateur dans les applications mobiles. Grâce à des fonctionnalités telles que les différents types d'entrée, la validation, la thématisation et l'intégration facile avec la lecture et l'écriture, les développeurs peuvent créer des formulaires transparents et conviviaux.
Pour plus d'informations :





