Inertia est un système qui permet de construire des applications web modernes en utilisant des frameworks front-end comme Vue.js ou React, tout en conservant une architecture back-end traditionnelle avec Laravel ou d'autres frameworks similaires.
L'avantage principal d'Inertia est qu'il permet aux développeurs de créer des applications web réactives sans avoir à gérer une API séparée. Au lieu de cela, Inertia agit comme un pont entre le front-end et le back-end, permettant aux développeurs de rendre des vues côté serveur tout en utilisant des composants front-end modernes.
Il supprime totalement la nécessité de construire une API REST ou GraphQL, ce qui simplifie le développement et réduit la complexité de l'application. Inertia gère la navigation côté client, les transitions de pages et le partage d'état entre les composants, offrant ainsi une expérience utilisateur fluide et réactive.
Pour la partie formulaires, Inertia facilite la gestion des soumissions de formulaires et des validations côté serveur, tout en permettant aux développeurs de conserver une logique de validation cohérente entre le front-end et le back-end. Un autre avantage, pour les formulaires, est la validation CSRF automatique. Les routes ne peuvent pas être appelées depuis une autre origine. Côté sécurité, c'est un plus.
Côté front, vous ne changez pas vos habitudes avec Vue.js ou React. Vous continuez à utiliser vos composants, votre état local et vos bibliothèques préférées. Inertia s'intègre parfaitement avec ces frameworks, vous permettant de tirer parti de leurs fonctionnalités tout en bénéficiant de la simplicité d'une architecture back-end traditionnelle.
Avantages d'Inertia JS :
- On profite de tout l'écosystème Laravel.
- Un seul projet back et front.
- Mixe possible : un front classique HTML et une partie Inertia (connectée,…).
- Les requêtes passent par le back, donc on peut utiliser les middlewares, l'authentification, etc.
Liens utiles :
- Site officiel : https://inertiajs.com/
- Documentation : https://inertiajs.com/docs
- Inertia sur Adonis : https://docs.adonisjs.com/guides/views-and-templates/inertia
- Starter kit Adonis + Inertia : https://github.com/adonisjs/inertia-starter-kit
- Starter kit Laravel + Inertia : https://laravel.com/starter-kits
Bonne écoute !
