@endpush @push(\\'scripts\\') @endpush

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é.

  1. Utilisation de @push dans les partiels et les composants : @push peut également être utilisé dans les partiels Blade (par exemple, @include) ou les composants Blade. Ceci est utile pour inclure des scripts ou des styles spécifiques à une vue directement dans des composants réutilisables, ce qui facilite la gestion des dépendances.
      
@push(\\'scripts\\') @vite(\\'resources/js/partial-specific.js\\') @endpush

Lorsque ce partiel est inclus dans une vue, partial-special.js sera ajouté à la pile de scripts dans le fichier de mise en page.

  1. Contrôlez l'ordre avec @prepend : si des scripts spécifiques doivent être chargés avant d'autres dans la même pile, vous pouvez utiliser @prepend au lieu de @push. @prepend place le contenu au début de la pile, permettant un meilleur contrôle sur l'ordre de chargement.
   @prepend(\\'scripts\\')          @endprepend   @push(\\'scripts\\')          @endpush

Ici, critic.js se chargera avant non_critical.js, quel que soit leur emplacement dans le fichier Blade.

Points clés à retenir


4. Alternative : utiliser des instructions conditionnelles en ligne dans la mise en page

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.

Inclure conditionnellement en fonction de l'itinéraire

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 :

@if (request()->routeIs(\\'some.route.name\\'))    @vite(\\'resources/js/custom.js\\')@endif

Inclure conditionnellement en fonction d'une variable

Pour charger conditionnellement des scripts basés sur des variables, vous pouvez définir un indicateur dans le contrôleur ou la vue enfant, puis le vérifier dans la mise en page :

  1. Dans votre contrôleur :
   return view(\\'your.view\\', [\\'loadCustomJS\\' => true]);
  1. Dans la mise en page :
   @if (!empty($loadCustomJS))       @vite(\\'resources/js/custom.js\\')   @endif

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.


Résumé

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.

","image":"http://www.luping.net/uploads/20241111/17313105816731b3f508523.jpg","datePublished":"2024-11-11T16:46:05+08:00","dateModified":"2024-11-11T16:46:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment inclure JavaScript dans Laravel Un guide étape par étape pour tous les scénarios

Comment inclure JavaScript dans Laravel Un guide étape par étape pour tous les scénarios

Publié le 2024-11-11
Parcourir:505

How to Include JavaScript in Laravel  A Step-by-Step Guide for All Scenarios

Comment inclure JavaScript dans Laravel 11 : 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.


1. Inclure JavaScript dans tous les fichiers

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.

Étape 1 : placez votre fichier JavaScript

  1. Emplacement : stockez les fichiers JavaScript dans le répertoire resources/js. Par exemple, si votre fichier s'appelle custom.js, enregistrez-le sous resources/js/custom.js.
  2. Organiser : pour les projets complexes comportant plusieurs fichiers JavaScript, vous pouvez les organiser dans des sous-répertoires de resources/js, tels que resources/js/modules/custom.js.

Étape 2 : Compiler JavaScript avec Vite

Laravel 11 utilise Vite pour gérer les actifs. Pour le configurer pour regrouper votre JavaScript :

  1. Inclure dans app.js : ouvrez resources/js/app.js et importez votre fichier personnalisé :
   import './custom.js';
  1. Importation directe dans les vues : Alternativement, si vous souhaitez uniquement le JavaScript dans certaines vues, vous pouvez utiliser la directive @vite dans le modèle Blade :
   @vite('resources/js/custom.js')

Étape 3 : Configurer vite.config.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,
        }),
    ],
});

Étape 4 : Exécutez Vite

Pour compiler vos ressources avec Vite :

  • Pour le développement : exécutez npm, exécutez dev
  • Pour la production : exécutez npm run build

Étape 5 : Charger JavaScript dans les modèles de lame

Pour inclure des fichiers JavaScript dans vos modèles, utilisez la directive @vite :



    My Laravel App
    @vite('resources/js/app.js')


    


Résumé

  • Stockez les fichiers JavaScript dans resources/js.
  • Importez dans app.js pour une inclusion globale ou incluez-le directement dans les modèles Blade si nécessaire.
  • Compilez les actifs à l'aide de Vite.
  • Utilisez @vite dans les modèles Blade pour charger JavaScript.

Avec cette configuration, JavaScript sera disponible sur tout le site dans un projet Laravel 11.


2. Comprendre l'ordre de rendu des lames

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 par les vues individuelles et partielles. Voici le processus de rendu :

  1. La mise en page est rendue en premier, avec des espaces réservés (@yield et @section) créés pour l'injection de contenu.
  2. Les vues enfants ou partielles sont ensuite traitées, avec leur contenu inséré dans les espaces réservés de mise en page.

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 à une page.


3. Inclure conditionnellement JavaScript dans des vues spécifiques à l'aide de Stack et Push

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.

Étape 1 : définissez une pile dans votre mise en page

Dans votre mise en page, créez une pile pour les scripts spécifiques à une page :



    My Laravel App
    @vite('resources/js/app.js')
    @stack('scripts') 


    @yield('content')


Étape 2 : envoyer des scripts à partir des vues enfants

Dans le fichier Blade spécifique qui nécessite le JavaScript, poussez vers la pile de scripts :

@extends('layout')

@section('content')
    
@endsection

@push('scripts')
    @vite('resources/js/custom.js')
@endpush

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.


Où déclarer @push ?

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 :

  1. Placement dans la vue : bien que vous puissiez placer @push n'importe où dans une vue Blade, il est recommandé de le placer à la fin du fichier, généralement après le contenu de la @section. Cela permet de séparer le code lié au script du contenu principal, améliorant ainsi la lisibilité et la maintenabilité.
   @extends('layout')

   @section('content')
       
   @endsection

   @push('scripts')
       @vite('resources/js/custom.js')
   @endpush
  1. Ordre de plusieurs déclarations @push : si vous avez plusieurs déclarations @push pour la même pile (par exemple, @push('scripts')), elles seront ajoutées dans l'ordre dans lequel elles apparaissent dans la vue. Par exemple:
   @push('scripts')
       
   @endpush

   @push('scripts')
       
   @endpush

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é.

  1. Utilisation de @push dans les partiels et les composants : @push peut également être utilisé dans les partiels Blade (par exemple, @include) ou les composants Blade. Ceci est utile pour inclure des scripts ou des styles spécifiques à une vue directement dans des composants réutilisables, ce qui facilite la gestion des dépendances.
   
   
@push('scripts') @vite('resources/js/partial-specific.js') @endpush

Lorsque ce partiel est inclus dans une vue, partial-special.js sera ajouté à la pile de scripts dans le fichier de mise en page.

  1. Contrôlez l'ordre avec @prepend : si des scripts spécifiques doivent être chargés avant d'autres dans la même pile, vous pouvez utiliser @prepend au lieu de @push. @prepend place le contenu au début de la pile, permettant un meilleur contrôle sur l'ordre de chargement.
   @prepend('scripts')
       
   @endprepend

   @push('scripts')
       
   @endpush

Ici, critic.js se chargera avant non_critical.js, quel que soit leur emplacement dans le fichier Blade.

Points clés à retenir

  • Placez @push à la fin des vues pour plus de clarté et de maintenabilité.
  • L'ordre est déterminé par le placement dans la vue, les instructions @push précédentes étant chargées en premier.
  • @push fonctionne dans les partiels et les composants, ce qui facilite l'inclusion de dépendances spécifiques à une vue.
  • Utilisez @prepend pour les scripts qui doivent être chargés en premier dans la même pile.

4. Alternative : utiliser des instructions conditionnelles en ligne dans la mise en page

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.

Inclure conditionnellement en fonction de l'itinéraire

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 :

@if (request()->routeIs('some.route.name'))
    @vite('resources/js/custom.js')
@endif

Inclure conditionnellement en fonction d'une variable

Pour charger conditionnellement des scripts basés sur des variables, vous pouvez définir un indicateur dans le contrôleur ou la vue enfant, puis le vérifier dans la mise en page :

  1. Dans votre contrôleur :
   return view('your.view', ['loadCustomJS' => true]);
  1. Dans la mise en page :
   @if (!empty($loadCustomJS))
       @vite('resources/js/custom.js')
   @endif

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.


Résumé

Voici un bref aperçu des méthodes abordées :

  • Inclusion globale : placez JavaScript dans app.js et incluez-le globalement à l'aide de @vite.
  • Inclusion conditionnelle avec Stack et Push : utilisez les directives @stack et @push pour une gestion flexible et modulaire des scripts, qui garantit que les scripts ne sont chargés que dans les vues où ils sont nécessaires.
  • Instructions conditionnelles dans la mise en page : utilisez des vérifications basées sur les itinéraires ou des variables de contrôleur pour charger conditionnellement JavaScript directement dans la mise en page.

Ces options vous permettent de contrôler précisément le chargement de JavaScript, rendant votre projet Laravel 11 efficace et maintenable.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/websilvercraft/how-to-include-js-files-in-laravel-templates-49e6?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3