国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel Construire une bibliothèque avec requirejs

Construire une bibliothèque avec requirejs

Feb 21, 2025 am 09:59 AM

Building a Library with RequireJS

Points clés

  • requirejs est un chargeur de module AMD pour les navigateurs qui chargent de manière asynchrone des scripts et des fichiers CSS, gérer les dépendances et créer des structures de code. Il comprend également un outil d'optimisation pour les environnements de production.
  • Lors de l'utilisation de requirejs, le code doit être enveloppé dans la définition du module. Les modules peuvent être référencés dans d'autres modules et toutes les dépendances seront chargées avant le chargement du module lui-même.
  • Optimiseur requisejs R.JS peut être configuré pour construire tous les modules en un seul fichier. Cette configuration peut également faire du module une bibliothèque globale indépendante, à la fois en tant que module AMD et en tant qu'exportation globale dans le navigateur.
  • requirejs peut être utilisé pour créer des bibliothèques et des applications qui les utilisent. Ce processus consiste à définir et à utiliser des modules AMD, à configurer R.JS Optimizer et à configurer les obligations dans le navigateur pour générer du code bien structuré et organisé.

requirejs est un chargeur de module AMD pour les navigateurs qui peuvent charger des scripts et des fichiers CSS de manière asynchrone. Vous n'avez plus besoin de traiter l'ordre des fichiers de script dans un seul fichier (comme index.html). Au lieu de cela, vous enveloppez simplement votre code dans une définition de module, les DIBRS seront responsables de la gestion des dépendances, ce qui rend votre structure de code plus claire et plus organisée. Il dispose également d'un outil d'optimisation qui compresse et connecte des fichiers pour les environnements de production.

Le site officiel fournit une documentation détaillée sur son API et il existe de nombreux exemples de bases de code pour vous aider. Cependant, il a beaucoup de configurations et l'utilisation de requirejs sera délicate au début.

Dans cet article, nous apprendrons à utiliser les besoins de requis en construisant une bibliothèque avec des modules AMD, en l'optimisant et en l'exportant en tant que module autonome à l'aide de l'optimiseur requisejs. Plus tard, nous créerons l'application à l'aide de requirejs et utiliserons notre bibliothèque.

Ce tutoriel suppose que vous avez une certaine compréhension des exigences. Si vous recherchez un guide Get-Start, consultez: Comprenez les exigences pour le chargement efficace du module JavaScript.

Installation requirejs

requirejs peut être installé via Bower:

bower install requirejs --save

ou vous pouvez obtenir le fichier de github.

Il existe également un générateur yeoman basé sur un grognement pour les projets requirejs.

Définir le module AMD

Nous enroulons le code dans define() qui en fera un module AMD.

Fichier: mylib.js

define(['jquery'], function($) {
    // $現(xiàn)在是jquery。

    return 'mylib';
});

c'est tout. Notez que define() accepte un premier paramètre facultatif, le tableau de dépendance, dans ce cas ['jquery']. Il s'agit de la liste de dépendances pour ce module. Tous les modules du tableau seront chargés avant ce module. Lors de l'exécution de ce module, les paramètres sont le module correspondant dans le tableau de dépendance.

Ainsi, dans ce cas, jQuery sera chargé d'abord, puis l'a transmis dans la fonction comme paramètre $, puis nous pouvons l'utiliser en toute sécurité dans le module. Enfin, notre module renvoie une cha?ne. La valeur de retour est ce qui est passé au paramètre de fonction lorsque ce module est requis.

Citez d'autres modules

Voyons comment cela fonctionne en définissant le deuxième module et en se référant à notre premier module mylib.js.

Fichier: main.js

bower install requirejs --save

Vous pouvez vous référer à n'importe quel nombre de dépendances dans le tableau de dépendance, et tous les modules seront fournis par des paramètres de fonction dans le même ordre. Dans ce deuxième module, nous faisons référence aux modules jQuery et Mylib et renvoyons simplement un objet expose certaines variables. Les utilisateurs de cette bibliothèque utiliseront cet objet comme bibliothèque.

Configurer Optimiseur requisejs: R.JS

Vous vous demandez peut-être, comment les obligations sachent-elles quel fichier charger en regardant simplement les cha?nes dans le tableau de dépendance? Dans notre exemple, nous fournissons JQuery et Mylib en tant que cha?nes, requirejs sait où se trouvent ces modules. Mylib est très simple, c'est Mylib.js, omettant .js.

Où est jQuery? C'est à cela que sert la configuration de requirejs. Vous pouvez fournir un large éventail de configurations via la configuration de requirejs. Il existe deux fa?ons de fournir cette configuration, car nous utilisons l'optimiseur requisejs et je vous montrerai la méthode R.JS. R.JS est l'optimiseur requisejs.

Nous fournirons à R.JS une configuration qui optimise tous les modules en un seul fichier. La configuration que nous fournissons permettra à R.JS de créer des modules dans des bibliothèques mondiales indépendantes, à la fois en tant que modules AMD et en tant qu'exportations globales dans le navigateur.

r.js peut être exécuté via la ligne de commande ou comme module de n?ud. Il existe également une tache grogn pour gérer les grognt-requirejs Optimizer.

avec cela étant dit, voyons à quoi ressemble notre configuration:

Fichier: outils / build.js

define(['jquery'], function($) {
    // $現(xiàn)在是jquery。

    return 'mylib';
});

Les fichiers de configuration sont en fait le c?ur de requirejs. Une fois que vous comprenez comment ces paramètres fonctionnent, vous pouvez utiliser les obligations comme un professionnel.

Vous pouvez effectuer différentes actions et ajuster les builds de projet à l'aide de fichiers de configuration. Pour en savoir plus sur la configuration et les obligations, nous vous recommandons de vous référer à la documentation et au wiki. Il existe également un exemple de fichier de configuration qui montre comment utiliser le système de construction, alors assurez-vous également de vous y référer.

Enfin, nous avons réellement dirigé l'optimiseur. Comme je l'ai déjà dit, vous pouvez l'exécuter via la ligne de commande ou via le n?ud et la tache grogn. Voir le fichier R.JS ReadMe pour exécuter l'optimiseur dans différents environnements.

define(['jquery', 'mylib'], function($, mylib) {
    // $照常是jquery
    // mylib是字符串`mylib`,因為這是第一個模塊的返回值
    //

    return {
        version: '0.0.1, jQuery版本:' + $.fn.jquery,
        mylibString: mylib
    }
});

Cela générera le fichier de build dans dist / mylib.js

build.js

Ensuite, voyons ce que ces paramètres signifient réellement.

BUSTERL - Le chemin racine pour tous les modules à rechercher.

chemins - Carte de chemin par rapport au nom du module de la fondon.

Dans notre exemple, "MyLib" mappe à "../main", qui est relatif à la substanier, donc lorsque nous faisons référence "Mylib", il charge le fichier "../lib/../mylib/main. js ?. Notez que nous ajoutons la substanier, puis les paramètres des chemins, puis le nom du module suivi du suffixe .js. Là, vous pouvez spécifier comment le module est mappé sur des fichiers tels que jQuery et Mylib.

Inclure - le module que nous voulons inclure dans le processus d'optimisation. Les dépendances requises pour le module incluses sont implicitement incluses. Dans notre exemple, le module principal dépend de Mylib et JQuery, qui sera également inclus, il n'est donc pas nécessaire de l'inclure explicitement. Nous incluons également Amond, qui sera mentionné plus tard.

Exclure - Module que nous voulons exclure du processus d'optimisation. Dans notre cas, nous avons exclu JQuery. L'utilisateur qui construit la bibliothèque fournira une bibliothèque jQuery. Nous verrons cela plus tard.

OUT - Le nom du fichier de sortie optimisé.

WRAP - Enveloppe le package de construction dans le texte de début et de fin spécifié par WRAP. Le fichier de sortie optimisé est le suivant: wrap.Starte le module enveloppé.end contenu dedans. wrap.start et wrap.end sont les noms de fichiers dont le contenu est contenu dans la sortie.

amande

La bibliothèque construite ne contient pas le fichier require.js, mais utilise des amandes. Almond est une petite implémentation API AMD qui remplacera require.js.

Emballez notre bibliothèque

Dans la configuration R.JS, nous enroulons notre bibliothèque à l'aide de fichiers wrap.start et wrap.end. Nous incluons également des amandes dans la bibliothèque, qui rendront notre bibliothèque indépendante, afin qu'elles puissent être utilisées via des variables globales du navigateur ou en tant que module AMD via DIBREJS.

Fichier: wrap.start

bower install requirejs --save

Les modules que nous incluons Main, Mylib et Almond sont situés au milieu de Wrap.Start et Wrap.end.

Fichier: wrap.end

define(['jquery'], function($) {
    // $現(xiàn)在是jquery。

    return 'mylib';
});

Si l'utilisateur utilise le chargeur AMD, le fichier construit demande "jQuery" comme dépendance AMD. Si le consommateur utilise uniquement les variables globales du navigateur, la bibliothèque obtiendra la variable globale $ et l'utilisera pour la dépendance jQuery.

en utilisant la bibliothèque avec requirejs

Notre bibliothèque est terminée, utilisons maintenant réellement en créant une application requisejs.

Fichier: app.js

define(['jquery', 'mylib'], function($, mylib) {
    // $照常是jquery
    // mylib是字符串`mylib`,因為這是第一個模塊的返回值
    //

    return {
        version: '0.0.1, jQuery版本:' + $.fn.jquery,
        mylibString: mylib
    }
});

Rien de spécial ici, c'est juste un autre module qui fait référence à JQuery et Mylib. Lorsqu'un module est défini avec define, il n'est pas exécuté immédiatement, c'est-à-dire que sa fonction de rappel (passé après un tableau de dépendances) n'est pas exécutée immédiatement. Cela signifie que notre application ne sera pas lancée simplement en définissant ce module. Voyons maintenant comment configurer les obligations et exécuter réellement ce module, notre application.

Configurer les obligations pour le navigateur

Nous configurerons les obligations dans un fichier et exécuterons notre module d'application. Cependant, il existe différentes fa?ons de le faire.

Fichier: Common.js

{
  "baseUrl": "../lib",
  "paths": {
    "mylib": "../main"
  },
  "include": ["../tools/almond", "main"],
  "exclude": ["jquery"],
  "out": "../dist/mylib.js",
  "wrap": {
    "startFile": "wrap.start",
    "endFile": "wrap.end"
  }
}

Les configurations de baseurl et de chemins sont les mêmes qu'auparavant. La valeur de configuration supplémentaire ici est:

SHIM: Configurez les dépendances et les exportations des scripts traditionnels "Browser Global" qui n'utilisent pas define() pour déclarer les dépendances et définir les valeurs du module. Par exemple, la squelette n'est pas un module AMD, mais c'est une variable globale de navigateur qui exporte la colonne vertébrale vers l'espace de noms global que nous avons spécifié dans les exportations. Dans notre exemple, le module s'appuie également sur jQuery et Soulignement, nous le spécifions donc à l'aide de DEP. Le script dans le tableau DEPS est chargé avant de charger la squelette, et après le chargement, la valeur des exportations sera utilisée comme valeur du module.

Veuillez noter que vous pouvez également utiliser R.JS dans ce projet d'application, qui nécessitera une configuration distincte. Mais ne soyez pas confus à ce sujet. Je n'entrerai pas dans les détails sur la fa?on de le faire, mais cela est similaire à ce que nous avons fait avec la bibliothèque. Voir l'exemple de configuration de construction pour plus d'informations.

Exiger et définir

Nous chargerons le module en utilisant la nécessité et l'exécuterons immédiatement. Parfois, définir et exiger peut confondre celui à utiliser. Définir un module, mais ne l'exécute pas, nécessite de définir un module et l'exécute - c'est-à-dire qu'il charge et exécute un module dépendant avant qu'il ne s'exécute. En règle générale, vous aurez un requis comme module d'entrée principal, qui dépendra d'autres modules définis via Define.

Chargement du script

Habituellement, vous inclurez tous les fichiers de script dans index.html. Maintenant que nous utilisons les obligations, nous devons simplement inclure le requirejs et spécifier notre Data-Main, qui est le point d'entrée de notre application. Il existe de nombreuses fa?ons de définir des options de configuration ou de détacher le module principal utilisé dans index.html. Vous pouvez trouver plus d'informations ici.

bower install requirejs --save

Conclusion

Dans cet article, nous avons construit une bibliothèque et une application qui utilise la bibliothèque à l'aide de requirejs. Nous avons appris à configurer l'optimiseur R.JS et à configurer les besoins de requirejs dans le navigateur. Enfin, nous avons appris à définir et à utiliser des modules AMD à l'aide de requirejs. Cela rend notre code bien structuré et organisé.

Dans la première moitié de ce didacticiel (Optimiseur de configuration), j'ai utilisé cet exemple de référentiel-libglobal, la seconde moitié n'est pas compliquée, vous devriez donc pouvoir le faire vous-même maintenant.

Le site Web officiel de requirejs est la documentation finale, mais assurez-vous de consulter l'exemple de référentiel sur GitHub et les exemples de projets dans ce référentiel qui démontrent l'utilisation de l'application Obligationn.

FAQ (FAQ) sur la construction de bibliothèques avec requirejs

Quel est le but principal des exigences dans le développement JavaScript?

requirejs est un fichier JavaScript et un chargeur de module. Il est optimisé pour l'utilisation du navigateur, mais peut également être utilisé dans d'autres environnements JavaScript. L'objectif principal des exigences est d'encourager l'utilisation de la programmation modulaire en JavaScript. Il aide les développeurs à gérer les dépendances entre les fichiers JavaScript et à modulariser leur code. Cela conduit à une meilleure organisation de code, à la maintenabilité et à la réutilisabilité. Il améliore également la vitesse et la qualité du code.

Comment les obligations gèrent-elles les dépendances de fichiers JavaScript?

requirejs utilise l'API de définition du module asynchrones (AMD) pour gérer les modules JavaScript. Ces modules peuvent être chargés de manière asynchrone, ce qui signifie qu'ils ne empêchent pas d'autres scripts d'exécuter lors du chargement. Lorsque vous définissez un module à l'aide de requirejs, vous spécifiez ses dépendances. Requirejs garantit alors que ces dépendances sont chargées avant le module lui-même.

Comment définir les modules à l'aide de requirejs?

Pour définir un module dans requirejs, vous pouvez utiliser la fonction define(). Cette fonction prend deux paramètres: un tableau de dépendance et une fonction d'usine. Une dépendance est le chemin d'accès au fichier sur lequel le module dépend. Les fonctions d'usine sont l'endroit où vous écrivez du code du module. Cette fonction est appelée une fois toutes les dépendances chargées.

Comment utiliser des modules définis avec les exigences dans votre code?

Pour utiliser un module défini avec DIbleJS, vous pouvez utiliser la fonction require(). Cette fonction accepte deux paramètres: un tableau de dépendance et une fonction de rappel. Les dépendances sont le chemin du module que vous souhaitez utiliser. La fonction de rappel est l'endroit où vous utilisez le module. Cette fonction est appelée une fois que tous les modules sont chargés.

Puis-je utiliser les obligations avec d'autres bibliothèques JavaScript telles que jQuery?

Oui, vous pouvez utiliser les obligations avec d'autres bibliothèques JavaScript telles que jQuery. Requirejs dispose d'une fonction intégrée pour charger des scripts non modulaires traditionnels qui n'utilisent pas define() pour déclarer les dépendances et définir les valeurs du module, appelées "cale". Avec Shim, vous pouvez spécifier les dépendances et les exportations pour les scripts qui n'utilisent pas define() pour déclarer les dépendances et définir les valeurs du module.

Comment optimiser mon code avec requirejs?

requirejs est livré avec un outil d'optimisation appelé R.Js. Cet outil combine et compresse vos fichiers JavaScript et leurs dépendances en un seul fichier. Cela réduit le nombre de demandes HTTP et de taille de fichier, ce qui peut considérablement améliorer le temps de chargement de la page Web.

Quelle est la différence entre Define () et require () dans requirejs?

La fonction

define() est utilisée pour définir un module, tandis que la fonction require() est utilisée pour charger le module. Les deux fonctions acceptent un tableau de dépendances et une fonction en tant que paramètres. Cependant, la fonction transmise à define() est utilisée pour créer des valeurs de module, tandis que la fonction transmise à require() est utilisée pour exécuter le code après le chargement du module.

Puis-je utiliser les obligations JON dans Node.js?

Oui, vous pouvez utiliser les obligations dans Node.js. Cependant, Node.js possède son propre système de modules, vous n'avez donc probablement pas besoin de requirejs. Si vous souhaitez utiliser le même code dans votre navigateur et Node.js, ou si vous préférez l'API AMD, les obligations peuvent être un bon choix.

Comment gérer les erreurs dans requirejs?

requirejs fournit un rappel onError pour gérer les erreurs. Ce rappel est appelé lorsqu'une erreur se produit lors du chargement du module. Vous pouvez utiliser ce rappel pour enregistrer ou récupérer à partir de l'erreur.

Puis-je charger des fichiers CSS à l'aide de requirejs?

Oui, vous pouvez utiliser le plugin requis-CSS pour charger les fichiers CSS à l'aide de requirejs. Ce plugin vous permet de charger et d'attendre les fichiers CSS comme vous le feriez avec les modules JavaScript.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment faire une demande HTTP dans Node.js? Comment faire une demande HTTP dans Node.js? Jul 13, 2025 am 02:18 AM

Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

Types de données JavaScript: référence primitive vs Types de données JavaScript: référence primitive vs Jul 13, 2025 am 02:43 AM

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Jul 08, 2025 pm 02:27 PM

Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Jul 08, 2025 am 02:40 AM

La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Jul 08, 2025 am 02:43 AM

Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

JS Roundup: une plongée profonde dans la boucle d'événement JavaScript JS Roundup: une plongée profonde dans la boucle d'événement JavaScript Jul 08, 2025 am 02:24 AM

La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Jul 08, 2025 am 02:36 AM

Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.

Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Jul 10, 2025 am 11:41 AM

Dans les tableaux JavaScript, en plus de la carte et du filtre, il existe d'autres méthodes puissantes et rarement utilisées. 1. La réduction peut non seulement résumer, mais également compter, se regrouper, aplatir les tableaux et construire de nouvelles structures; 2. Find et FindIndex sont utilisés pour trouver des éléments ou des index individuels; 3.Il et tout sont utilisés pour déterminer si les conditions existent ou que toutes les personnes se rencontrent; 4.Sort peut être trié mais changera le tableau d'origine; 5. Faites attention à la copie du tableau lorsque vous l'utilisez pour éviter les effets secondaires. Ces méthodes rendent le code plus concis et efficace.

See all articles