Créez facilement des applications simples basées sur l'état à l'aide de cette bibliothèque JavaScript.

Points clés à retenir

  • Pinia est une bibliothèque de gestion d'état pour Vue qui apporte simplicité et efficacité au développement d'applications, en mettant l'accent sur le minimalisme et une approche intuitive.
  • Les concepts de base de Pinia incluent les getters, les actions, le stockage et l'état, qui permettent aux développeurs de gérer et de partager efficacement les données dans leurs composants Vue.
  • Par rapport à Vuex, Pinia offre une approche plus moderne et minimaliste, utilisant le système de réactivité de Vue et fournissant un typage strict et un support TypeScript pour des applications plus robustes avec moins de bugs. C'est une option viable pour les nouveaux projets ou la migration depuis Vuex.

Êtes-vous un développeur Vue cherchant à rationaliser la gestion de votre état et à porter le développement de votre application vers de nouveaux sommets? Dites bonjour à Pinia, la bibliothèque de gestion d'état révolutionnaire pour les passionnés de Vue.

instagram viewer

Jetez un coup d'œil étape par étape aux concepts de base de Pinia et voyez comment vous pouvez libérer son potentiel. Découvrez comment cette bibliothèque se compare à Vuex et apprenez à créer une application Pinia simple.

Qu'est-ce que Pinia?

Pinia est une bibliothèque de gestion d'état spécialement conçu pour Vue, conçu pour apporter une simplicité et une efficacité inégalées à vos projets Vue. Développé pour offrir une expérience transparente aux développeurs Vue, Pinia s'inspire des meilleures pratiques de une gestion d'état moderne tout en étant extrêmement légère et simple à intégrer dans vos applications.

La philosophie derrière Pinia est de garder les choses minimales et élégantes, ce qui permet aux développeurs de gérer sans effort l'état de l'application. Adoptant une approche simple et intuitive, Pinia vous permet de vous concentrer sur ce qui compte le plus et d'offrir une expérience utilisateur exceptionnelle lors de la création de votre application Vue.

Concepts de base de Pinia

Pour tirer le meilleur parti de Pinia, il est essentiel de comprendre ses concepts de base.

Getters

Les getters dans Pinia sont responsables de l'extraction et du retour de valeurs spécifiques à partir de l'état du magasin. En définissant des getters, vous pouvez accéder et traiter efficacement les données sans manipuler directement l'état sous-jacent. Considérez-les comme des propriétés calculées adaptées à l'état de votre magasin.

Actions

Les actions jouent un rôle crucial dans Pinia, vous permettant de modifier l'état du magasin en effectuant des opérations asynchrones ou synchrones. Ils servent de pont entre les composants de votre application et le magasin, garantissant que les mutations d'état suivent des modèles prévisibles et respectent les meilleures pratiques.

Magasin

Le magasin représente le cœur de Pinia, encapsulant l'état de l'application, les getters, les actions et les mutations (le cas échéant). Il agit comme une source unique de vérité, gardant l'état de votre application centralisé et facilement accessible à travers vos composants.

État

L'état fait référence aux données que votre boutique gère. Ce sont les données réactives sur lesquelles vos composants s'appuient pour afficher les informations les plus récentes à l'utilisateur. En utilisant l'objet d'état dans le magasin, vous pouvez gérer et partager de manière transparente les données entre les composants.

Qu'en est-il de Vuex?

Vous vous demandez peut-être comment Pinia se compare à Vuex, qui est une bibliothèque de gestion d'état incontournable pour les développeurs Vue depuis un certain temps. Si Vuex est incontestablement une solution robuste et performante, Pinia se démarque par une approche plus moderne et minimaliste.

Pinia utilise le système de réactivité de Vue pour gérer l'état, évitant ainsi le besoin de toute dépendance externe. Cela signifie que l'écosystème Pinia est plus ciblé et évite les ballonnements potentiels. De plus, le typage strict et la prise en charge de TypeScript qu'il fournit vous permettent de détecter les erreurs tôt dans le processus de développement, ce qui conduit à des applications plus robustes avec moins de bogues.

Si vous démarrez un nouveau projet Vue ou envisagez de migrer depuis Vuex, Pinia offre une alternative intéressante qui rationalise la gestion des états sans compromettre la flexibilité ou les performances.

Application Vue simple utilisant Pinia

Pour tout savoir sur Pinia, essayez de créer un exemple d'application; un gestionnaire de liste de tâches de base est un bon candidat. Une application de liste de tâches a une structure simple dans laquelle les utilisateurs peuvent ajouter des tâches, marquer et indiquer leur achèvement, et supprimer et modifier des tâches selon les besoins. Pinia fournit les outils dont vous avez besoin pour gérer l'état de ces applications.

Conditions préalables

Tout d'abord, vous devez préparer l'environnement nécessaire pour ce projet, en commençant par Vue CLI.

# To install Vue CLI:
npm install -g @vue/cli

# To create the project folder with Vue CLI:
vue create pinia-todo-app

À ce stade, vous pouvez voir dans le terminal que vous devez sélectionner un préréglage. Vous pouvez continuer en sélectionnant Vue 3 à partir des paramètres par défaut; cet exemple va continuer à utiliser Vue 3.

Vous pouvez maintenant installer Pinia dans votre dossier de projet :

cd pinia-todo-app
npm install pinia

Configurez vos fichiers

Il vous suffit de modifier quelques fichiers pour terminer cet exemple de projet.

Tout d'abord, créez un fichier nommé store.js sous le src dossier. Ce fichier contiendra, ajoutera et supprimera les éléments que vous ajouterez à la liste de tâches. Il fera tout cela en utilisant les concepts de base de Pinia.

// src/store.js
import { defineStore } from"pinia";

exportconst useTodoStore = defineStore("todo", {
state: () => ({
todos: [],
}),
actions: {
addTodo(todoText) {
this.todos.push({ id: Date.now(), text: todoText });
},
removeTodo(todoId) {
this.todos = this.todos.filter((todo) => todo.id !== todoId);
},
},
});

Mais, bien sûr, ce fichier seul ne suffit pas. Vous devez lier le store.js dossier avec App.vue. Pour ce faire, changez le src/App.vue dossier comme suit :

// src/App.vue