Maison > Article > développement back-end > Comment inclure JavaScript dans Laravel Un guide étape par étape pour tous les scénarios
Dans Laravel 11, ajouter du JavaScript à votre projet peut être un jeu d'enfant, grâce à Vite, le regroupeur d'actifs par défaut. Voici comment configurer votre JavaScript pour toutes sortes de scénarios, de l'inclusion globale au chargement conditionnel dans des vues spécifiques.
Dans de nombreux cas, vous souhaiterez peut-être inclure JavaScript globalement dans votre application Laravel. Voici comment organiser et regrouper JavaScript pour une inclusion universelle.
Laravel 11 utilise Vite pour gérer les actifs. Pour le configurer pour regrouper votre JavaScript :
import './custom.js';
@vite('resources/js/custom.js')
Assurez-vous que vite.config.js est configuré pour gérer correctement les importations @vite. Par défaut, cela devrait ressembler à ceci :
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
Pour compiler vos assets avec Vite :
Pour inclure des fichiers JavaScript dans vos modèles, utilisez la directive @vite :
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
Avec cette configuration, JavaScript sera disponible sur tout le site dans un projet Laravel 11.
Lors de l'inclusion conditionnelle de JavaScript dans des vues spécifiques, il est essentiel de comprendre l'ordre dans lequel les modèles Blade sont rendus.
Dans Laravel, les mises en page sont traitées en premier, suivies des vues individuelles et partielles. Voici le processus de rendu :
En raison de cet ordre, si vous souhaitez ajouter conditionnellement des fichiers JavaScript dans la mise en page en fonction du contenu de la vue enfant, les vérifications de variables standard ne fonctionneront pas. Vous devrez utiliser les directives @stack et @push de Blade pour une gestion plus flexible du JavaScript spécifique à la page.
Pour ajouter du JavaScript à des vues spécifiques, les directives @stack et @push de Laravel offrent une solution efficace, vous permettant d'inclure conditionnellement des scripts dans la mise en page.
Dans votre mise en page, créez une pile pour les scripts spécifiques à une page :
import './custom.js';
Dans le fichier Blade spécifique qui nécessite le JavaScript, poussez vers la pile de scripts :
@vite('resources/js/custom.js')
Avec cette configuration, custom.js ne sera inclus que lorsque cette vue spécifique est chargée. Cette méthode fournit une solution propre qui fonctionne avec l'ordre de rendu de Laravel, garantissant que les fichiers JavaScript sont inclus de manière conditionnelle selon les besoins.
Le placement des instructions @push dans une vue Blade est principalement important pour la lisibilité et l'ordre d'exécution. Voici comment utiliser @push efficacement :
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
Dans ce cas, script1.js se chargera avant script2.js car @push ajoute du contenu à la pile dans l'ordre dans lequel il est déclaré.
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') @stack('scripts') <!-- Define a stack for additional scripts --> </head> <body> @yield('content') </body> </html>
Lorsque ce partiel est inclus dans une vue, partial-special.js sera ajouté à la pile de scripts dans le fichier de mise en page.
import './custom.js';
Ici, critic.js se chargera avant non_critical.js, quel que soit leur emplacement dans le fichier Blade.
Si vous avez besoin d'un contrôle plus précis sur l'inclusion de JavaScript, les instructions conditionnelles de Laravel permettent une logique basée sur un itinéraire ou une variable directement dans la mise en page.
Vous pouvez utiliser les vérifications d'itinéraire directement dans la mise en page pour inclure du JavaScript en fonction de l'itinéraire actuel :
@vite('resources/js/custom.js')
Pour charger conditionnellement des scripts basés sur des variables, vous pouvez définir un indicateur dans la vue contrôleur ou enfant, puis le vérifier dans la mise en page :
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
Cette approche vous permet de contrôler le chargement de JavaScript en fonction de variables ou d'itinéraires spécifiques, offrant ainsi une flexibilité pour les configurations de pages personnalisées.
Voici un bref aperçu des méthodes abordées :
Ces options vous permettent de contrôler précisément le chargement de JavaScript, rendant votre projet Laravel 11 efficace et maintenable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!