Imprimer
Catégorie : R3.01 - dev. Web côté client (vuejs)
Affichages : 108

Préambule

 

 

0°/ Installer l'environnement de développement

 

1°/ Créer le projet avec vite + vue-router + pinia

1.1°/ Créer un canevas de base 

Vue.js - The Progressive JavaScript Framework

◇ Nom du projet :
│ drmad

◆ Sélectionnez les fonctionnalités à inclure dans votre projet : (↑/↓ pour naviguer, espace pour sélectionner, a pour tout sélectionner, entrée pour confirmer)
│ ◻ TypeScript
│ ◻ Support de JSX
│ ◼ Router (développement SPA)
│ ◼ Pinia (gestion de l'état)
│ ◻ Vitest (tests unitaires)
│ ◻ Tests de bout en bout
│ ◻ ESLint (prévention des erreurs)
│ ◻ Prettier (formatage du code)Vue CLI v4.5.14

 

Vue.js - The Progressive JavaScript Framework

◇ Nom du projet :
│ drmad

◇ Sélectionnez les fonctionnalités à inclure dans votre projet : (↑/↓ pour naviguer, espace pour sélectionner, a pour tout sélectionner, entrée pour confirmer)
│ Router (développement SPA), Pinia (gestion de l'état)

◇ Sélectionnez les fonctionnalités expérimentales à inclure : (↑/↓ pour naviguer, espace pour sélectionner, a pour tout sélectionner, entrée pour confirmer)
│ none

◆ Ignorer tout le code d'exemple et commencer avec un projet Vue vierge ?
│ ● Yes / ○ No

 

 

1.2°/ Tester le projet

 

1.3°/ Passer le projet sous Idea

 

2°/ Compléter la structure du projet

 

2.1°/ Créer la source de données "locale"

 

 

 

2.2°/ Le protocole d'échange entre front et back

 

 

2.3°/ Les services d'accès aux données.

 

 

 ATTENTION : le fait d'utiliser une source locale en mémoire a des effets de bord qui n'existent pas avec une source distante et qui peuvent conduire à des comportements étranges, tels que la non-réactivité de l'application malgré des modifications de ses données. Cela arrive quand l'application utilise directement les objets de la source locale pour modifier leur valeur (mais pas si on se contente de lire leur valeur).

Pour éviter ces comportements, il faut coder les fonctions de localsource.service.js d'une façon bien précise : elles ne doivent jamais renvoyer directement les objets créés dans data.js MAIS créer de nouveaux objets, soit en clonant ceux qui existent, soit en prenant juste les informations nécessaire.

Par exemple, la fonction shopLogin() ne renvoie pas un objet tel que stocké dans le tableau shopuser de data.js. Elle construit et renvoie un nouvel objet en initialisant juste les champs nécessaires.

En revanche, la fonction getAllViruses() contrevient à ce principe. Cependant, comme l'application ne va jamais modifier le contenu des objets se trouvant dans le tableau items de data.js, cela ne pose pas de problème. Cela reste tout de même risqué si l'application évolue et que l'on doive finalement faire des modifications de ce tableau.

 

 

 2.4°/ Remarque sur la structuration des données pour le front (pour information car non utilisé dans ce TP)

  

3°/ Une première application

 

3.1°/ Objectif

 

 

 

 

 

 

 3.2°/ Mise en place initiale

 

Quelques explications sur ces fichiers :

stores/shop.js  :

 

router/index.js :

 

App.vue :

 

3.3°/ Affichage du solde d'un compte bancaire

NB : cette partie est à réaliser en autonomie et vous devez intervenir sur plusieurs fichiers, certains devant être créés, d'autres seulement modifiés.

localsource.service.js :

 

bankaccount.service.js (à remplir) : il faut écrire un code très similaire à celui de shop.service.js, avec comme différences :

 

stores/bank.js (à créer en s'inspirant de shop.js):

 

views/BankAccountView.vue (à créer) :

 

router/index.js :

 

 

3.4°/ Affichage des transactions liées à un compte bancaire

 

NB : cette partie est à réaliser en autonomie et vous devez modifier plusieurs fichiers.

 

L'objectif est de modifier BankAccountView afin de lister les transactions liées à un numéro de compte. Cela impose :

Remarque : cette fonctionnalité ne nécessite pas de nouvelle route puisque c'est au travers d'interaction avec les boutons de BankAccountView que l'on peut charger les données qu'il affiche.

 

4°/ Conclusion