recherche
Maisoninterface Webjs tutorielCommencer par souligner.js

Getting Started with Underscore.js

Commencer par souligner.js

Les plats clés

  • souligner.js est une bibliothèque JavaScript qui fournit des utilitaires fonctionnels pour une variété de cas d'utilisation, ce qui rend le code plus facile à lire et à écrire, et offrir des fonctionnalités non toujours disponibles dans JavaScript natif.
  • La bibliothèque comprend des méthodes communes telles que _.each () pour écrire des boucles lisibles, _.Template () pour les modèles intuitifs et simples, et _.filter () pour le filtrage des tableaux à l'aide d'une fonction booléenne.
  • souligner.js est léger et utilisé par de nombreux projets de grands noms, notamment USA Today, LinkedIn et Khan Academy.
  • Une application de démonstration à l'aide de sous-ore.js, jQuery et l'API Web Spotify montre comment la bibliothèque peut être utilisée pour récupérer et afficher les données d'une API, et permet aux utilisateurs de filtrer les résultats.

Cet article a été révisé par des pairs par Agbonghama Collins et Ryan Chenkie. Merci à tous les pairs examinateurs de SitePoint pour avoir fait du contenu SitePoint le meilleur possible!

souligner.js est une bibliothèque JavaScript, écrite par Jeremy Ashkenas, qui fournit des services publics fonctionnels pour une variété de cas d'utilisation que nous, en tant que développeurs, pouvons rencontrer lorsqu'ils sont confrontés à un projet Web.

cela rend le code qui est plus facile à lire:

_.isEmpty({});
// true

cela rend le code qui est plus facile à écrire:

_.flatten([[0, 1], [2, 3], [4, 5]]);
// [0, 1, 2, 3, 4, 5]

Il offre des fonctionnalités pour lesquelles il n'y a pas de méthode native 1: 1:

_.range(5);
// [0, 1, 2, 3, 4]

Il peut même être utilisé comme moteur de modèle à part entière:

_.template('<p></p>', {text: 'SitePoint Rocks!'});
// <p>SitePoint Rocks!</p>

souligner est une bibliothèque légère (seulement 5,7 Ko, minifiée et gzipied) et est utilisée par une variété de projets de grands noms, tels que:

  • USA TODAY
  • LinkedIn
  • Khan Academy

Maintenant, soyons plus spécifiques et commençons à plonger dans ses principales capacités.

les bonnes parties

Dans ce tutoriel, je vais mettre en évidence trois des méthodes les plus courantes de l'outil de sous-trait:

  • _. Chaque ()
  • _. Template ()
  • _. Filter ()

Je vais expliquer comment ils sont utilisés individuellement, puis les attacher ensemble pour créer une application de démonstration que vous pouvez trouver à la fin du tutoriel. Comme toujours, le code de cette démo est disponible sur github.

Si vous souhaitez suivre les exemples, vous devrez prendre une copie de la bibliothèque, par exemple à partir de votre CDN préféré:

<span><span><span><script> src<span >="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"</script></span>></span><span><span></span>></span>
</span>

Et si vous avez besoin d'aide en cours de route, ou si vous êtes juste curieux d'en savoir plus, n'oubliez pas que la documentation de l'outil de soulignement est vaste. Il a également une communauté importante et active, ce qui signifie que l'aide est facile à trouver.

_. Chacun: écrivez des boucles lisibles

Il n'y a pas un seul projet qui n'a pas quelque chose de similaire à cet extrait à un moment donné du code:

var artists = ['Pharrel Williams', 'Led Zeppelin', 'Rolling Stones'];

for(var i = 0; i 
<p> Contrôle vous permet d'écrire du code équivalent, en utilisant une syntaxe plus lisible: </p><pre class="brush:php;toolbar:false">_.isEmpty({});
// true

soigné, hein? _.each () prend deux paramètres:

  • le tableau (ou objet) pour itérer.
  • une fonction de rappel.

pour chaque élément de notre tableau _.each () invoquera la fonction de rappel (mentionnée dans la documentation itérere ). À l'intérieur du rappel, nous avons accès à trois autres paramètres:

  • La valeur du tableau pour l'indice d'itération actuel (artiste). Par exemple, pour l'extrait ci-dessus, nous obtiendrions "Pharrel Williams" pour la première itération.
  • Le nombre de l'itération actuelle (index), qui dans notre cas variera de 0 à 2.
  • le tableau que nous itérons (artistes).

Comme vous pouvez le voir, le code est plus lisible et nous pouvons accéder aux éléments individuels du tableau sans avoir besoin d'artistes [i], comme nous l'avons vu dans l'exemple qui a utilisé A pour Loop.

Voir le stylo _.Each par SitePoint (@SitePoint) sur Codepen.

Ensuite, nous verrons comment le moteur de modèles se comporte.

_. Template (): intuitif et simple

Depuis la montée en puissance de l'application à une seule page, avoir un moteur de modèles de frontend fiable est devenu un besoin fondamental de notre pile de travail.

souligner fournit un moteur de modèles qui, pour ceux qui connaissent des langues tels que PHP ou Ruby on Rails, semblera assez familière.

Continue à partir de notre extrait précédent, nous montrerons comment fonctionne _.Template (). Nous le ferons en ajoutant quelques lignes à notre code comme indiqué ci-dessous:

_.flatten([[0, 1], [2, 3], [4, 5]]);
// [0, 1, 2, 3, 4, 5]

Ici, nous invoquons la fonction _.template () avec un argument de chaîne, qui comprend certaines données à l'intérieur de délimiteurs (). Lorsqu'il est invoqué de cette manière, _.Template () renvoie une fonction que nous pouvons utiliser encore et encore.

Nous pouvons invoquer notre nouvelle fonction à l'aide d'artisteTemplate (), en le faisant passer un objet littéral comme argument. Cela renverra la chaîne que nous avons initialement transmise à _.Template (), en remplaçant les propriétés d'objet qui correspondent aux variables libres du modèle. Dans notre cas, sera remplacé par la valeur de l'attribut d'artiste de l'objet.

Le moteur de modèles de soulignement ne permet pas seulement de remplacer les valeurs uniques, mais aussi l'exécution des scripts à l'intérieur du modèle lui-même. Avec une seule modification, nous pouvons rendre notre extrait encore plus puissant.

_.range(5);
// [0, 1, 2, 3, 4]

Nous avons incorporé notre appel à _.each () dans la chaîne qui représente notre modèle, ce qui nous amène à modifier la façon dont le modèle est invoqué. Puisque nous itérons maintenant à l'intérieur de la fonction _.template (), nous pouvons passer le tableau complet des artistes à artisteTemplate () (auparavant nous passions les artistes individuels). La sortie de ce code sera la même que dans l'exemple précédent.

Lorsque nous voulons que _.Template () évalue le code JavaScript, nous devons simplement entourer notre code entre au lieu de .

Depuis que l'appel d'un modèle généré par _.emplate fonctionne tout aussi invoquant une fonction, nous pouvons aller plus loin notre extrait et avoir un modèle appelé à l'intérieur d'un autre, en utilisant les balises . De cette façon, nous pouvons fabriquer des modèles réutilisables, car nous pouvons avoir un modèle de wrapper différent pour notre liste d'artistes et simplement invoquer le modèle pour chacun des éléments qu'il contient.

Voir le Pen _.Template () par SitePoint (@SitePoint) sur Codepen.

Enfin, jetons un coup d'œil à la fonction _.filter ().

_. Filter (): Tout ce dont vous avez besoin est une fonction booléenne

_. Filter () reçoit un tableau et une fonction de rappel comme arguments. Il invoque ensuite la fonction pour chacun des éléments du tableau et renvoie un nouveau tableau contenant les éléments pour lesquels la fonction évaluée à quelque chose de vraie.

Notre fonction de rappel recevra également trois arguments, comme dans le cas _.each (): l'élément du tableau correspondant à l'indice d'itération actuel, l'indice de l'itération et le tableau lui-même.

Pour clarifier cela, apportons quelques modifications à notre extrait.

_.isEmpty({});
// true

Comme vous l'avez peut-être deviné, dans notre modèle, nous recevrons ['ACDC'] comme argument du tableau. Voici une démo de ce que nous avons jusqu'à présent.

Voir le stylo _.filter () par SitePoint (@SitePoint) sur Codepen.

Assez dit. Faisons des choses en fonction des choses pour quelque chose qui a un peu plus de sens.

notre application de démonstration

N'oubliez pas, le code de cette démo est disponible sur github.

Nous allons créer une petite application qui consomme une API, affiche les informations obtenues et permet à l'utilisateur de filtrer ce qui est affiché. À cette fin, nous utiliserons:

  • souligner.js
  • jQuery
  • L'API Web Spotify

Plus précisément, l'application rapportera certaines informations d'artistes à partir de Spotify et en utilisant le sous-effort _.emplate, _.each et _.filter, nous l'afficherons sur la page et permettre à l'utilisateur de rétrécir les résultats par genre.

Pour ce faire, nous diviserons notre code en trois modules différents:

  • _isawesome.config: détient les informations que nous utiliserons sur l'application.
  • _isawesome.emplate: prend soin de la compilation de modèle.
  • _isawesome: il s'agit du module principal qui est responsable de la réponse aux actions des utilisateurs et de la mise à jour de l'interface utilisateur.

tous suivent le motif du module.

module de configuration

Le module de configuration contient les ID des modèles à utiliser, ainsi que l'URL de l'API que nous interrogerons, ainsi que les ID des artistes que nous voulons obtenir de Spotify. De cette façon, nous pouvons ajouter plus d'artistes en ajoutant simplement d'autres éléments au tableau.

Module de modèle

Ce module est celui en charge de la compilation des modèles, en appelant getTemplates () dans le module de configuration.

Module principal

Ce module est responsable de l'envoi de la demande AJAX à l'URL que nous obtenons du module de configuration et de la création du contenu à l'aide des modèles du module de modèle.

En plus de cela, ce module s'occupe également de filtrer les éléments en fonction du filtre cliqué par l'utilisateur.

Les filtres et nos modèles sont inclus dans le cadre du HTML.

Pour implémenter le filtrage, nous nous appuyerons sur les attributs de données HTML 5 et l'interface de données de JQuery. C'est plus une question de commodité, mais si vous souhaitez le faire nativement, le support du navigateur est très bon.

Il s'agit du balisage des boutons que nous utiliserons pour effectuer le filtrage:

_.isEmpty({});
// true

Ceci est un exemple d'objet que nous passerons à notre fonction de filtre:

_.flatten([[0, 1], [2, 3], [4, 5]]);
// [0, 1, 2, 3, 4, 5]

Nous aurons le HTML pour nos modèles dans le cadre de notre index.html, à l'intérieur d'une balise , que nous empêchons d'être exécutés en définissant son type sur quelque chose de différent de la texte / javascript habituel. Juste dans le souci de cohérence, nous le définirons sur souligner / modèle.

Nous aurons deux modèles. Le premier contiendra la liste des artistes, tandis que la seconde contiendra les artistes individuels à afficher. Comme nous l'avons vu ci-dessus, nous utiliserons ce que nous appelons modèles intégrés . Nous invoquerons un modèle ('item-tpl') à partir d'un autre ('item-list').

Ensuite, au bas du fichier, nous inclurons nos bibliothèques et nos trois scripts. De plus, juste pour le rendre plus visuellement attrayant, nous aurons quelques styles de base dans l'en-tête.

et c'est tout.

Voir le stylo soulignement génial par SitePoint (@SitePoint) sur Codepen.

Conclusion

souligner est une joie de travailler avec et, comme je l'ai démontré, il vous permet d'écrire du code propre, lisible et facile à maintenir.

Il y a quelques autres choses que nous aurions pu ajouter à notre application (par exemple, avoir nos filtres générés dynamiquement en utilisant _.Pluck ()), mais je pense que nous en avons assez pour commencer.

Et vous? Avez-vous travaillé avec un soulignement? Seriez-vous prêt à essayer? Avez-vous essayé une alternative (c'est-à-dire Lodash) qui offre des capacités similaires? Faites-moi savoir dans les commentaires ci-dessous.

Les questions fréquemment posées (FAQ) sur l'abandon.js

Quel est le principal objectif de sous-traitant.js?

soulignement.js est une bibliothèque JavaScript qui fournit un ensemble de fonctions d'utilité utiles pour les tâches de programmation courantes. Il est conçu pour être un complément des fonctions intégrées en JavaScript, offrant des fonctionnalités supplémentaires et améliorant la productivité. Il offre plus de 100 fonctions, y compris celles qui traitent des tableaux, des objets, des fonctions, etc. Ces fonctions aident à manipuler des données et des objets d'une manière plus efficace et simple, ce qui en fait un outil précieux pour les développeurs.

Comment puis-je commencer avec sous-ore.js?

Pour commencer avec Sous-sachet.js, vous devez d'abord l'inclure dans votre projet. Vous pouvez le faire en téléchargeant la bibliothèque à partir du site officiel et en le liant dans votre fichier HTML, ou en utilisant un CDN. Une fois qu'il est inclus dans votre projet, vous pouvez commencer à utiliser ses fonctions en les appelant avec le caractère de sous-ore (_) suivi du nom de la fonction.

Quelles sont les fonctions les plus utiles de sous-sol.js?

sous-traitant.js offre une large gamme de fonctions, mais certaines des plus utiles incluent:

    1. _.Each: Cette fonction vous permet d'itérer sur les éléments d'un tableau ou d'un objet.

    1. _.map: cette fonction crée un nouveau tableau en transformant chaque élément d'un tableau ou d'un objet en utilisant une fonction.

    1. _. _.find: Cette fonction renvoie le premier élément qui passe un test de vérité.

    1. _. Oui, sous-cite.js est conçu pour être compatible avec d'autres bibliothèques JavaScript. Il n'étend pas d'objets JavaScript intégrés, il ne sera donc pas en conflit avec d'autres bibliothèques ou scripts en cours d'exécution sur votre page.

est-ce que souligne.js est toujours maintenu et mis à jour?
Oui , Souligner.js est activement maintenu et régulièrement mis à jour. La bibliothèque est open-source, ce qui signifie que les développeurs du monde entier contribuent à son développement et à son amélioration.

Comment souligner. Et Lodash offre des fonctionnalités similaires, mais il existe des différences. Lodash est un superset de souligner.js, ce qui signifie qu'il comprend toutes les fonctionnalités de sous-traitants.js et plus encore. Cependant, souligner.js est plus petit et plus léger, ce qui en fait un bon choix pour les projets où la performance est une préoccupation.

Puis-je utiliser sous-sol.js dans un environnement Node.js?

Oui, oui, Sous-sachet.js peut être utilisé dans un environnement Node.js. Vous pouvez l'installer à l'aide de NPM, le gestionnaire de package Node.js, en exécutant la commande ‘NPM install soubore’.

Qu'est-ce que le «soulignement» dans sous-traitant.js?

Le «soulignement» dans sous-traitant.js fait référence au caractère (_) qui est utilisé pour appeler les fonctions de la bibliothèque. Il s'agit d'une convention en JavaScript d'utiliser le caractère de soulignement pour les bibliothèques de services publics.

Puis-je contribuer au développement de sous-ore.js?

Oui, puisque souligner.js est un projet open-source, Tout le monde peut contribuer à son développement. Vous pouvez soumettre des rapports de bogues, suggérer de nouvelles fonctionnalités ou même contribuer de code.

Où puis-je en savoir plus sur souligner.js?

Il existe de nombreuses ressources disponibles pour en savoir plus sur souligner.js. Le site officiel fournit une documentation complète et il existe de nombreux tutoriels et articles disponibles en ligne. De plus, il y a plusieurs livres et cours en ligne qui couvrent souligner.js en profondeur.

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
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
Remplacer les caractères de chaîne en javascriptRemplacer les caractères de chaîne en javascriptMar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Créez vos propres applications Web AjaxCréez vos propres applications Web AjaxMar 09, 2025 am 12:11 AM

Vous voici donc, prêt à tout savoir sur cette chose appelée Ajax. Mais qu'est-ce que c'est exactement? Le terme Ajax fait référence à un regroupement lâche de technologies utilisées pour créer un contenu Web interactif dynamique. Le terme Ajax, inventé à l'origine par Jesse J

Comment créer et publier mes propres bibliothèques JavaScript?Comment créer et publier mes propres bibliothèques JavaScript?Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur?Comment optimiser le code JavaScript pour les performances dans le navigateur?Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur?Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur?Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Effets de la matrice jQueryEffets de la matrice jQueryMar 10, 2025 am 12:52 AM

Apportez des effets de film de matrice à votre page! Ceci est un plugin jQuery cool basé sur le célèbre film "The Matrix". Le plugin simule les effets de caractère vert classique dans le film, et sélectionnez simplement une image et le plugin le convertira en une image de style matrice remplie de caractères numériques. Venez et essayez, c'est très intéressant! Comment ça marche Le plugin charge l'image sur la toile et lit le pixel et les valeurs de couleur: data = ctx.getImagedata (x, y, settings.grainsize, settings.grainsize) .data Le plugin lit intelligemment la zone rectangulaire de l'image et utilise jQuery pour calculer la couleur moyenne de chaque zone. Ensuite, utilisez

Comment construire un simple curseur jQueryComment construire un simple curseur jQueryMar 11, 2025 am 12:19 AM

Cet article vous guidera pour créer un carrousel d'image simple à l'aide de la bibliothèque JQuery. Nous utiliserons la bibliothèque BXSLider, qui est construite sur jQuery et offre de nombreuses options de configuration pour configurer le carrousel. De nos jours, Picture Carrousel est devenue une fonctionnalité incontournable sur le site Web - une image vaut mieux que mille mots! Après avoir décidé d'utiliser le carrousel d'image, la question suivante est de savoir comment la créer. Tout d'abord, vous devez collecter des images de haute qualité et haute résolution. Ensuite, vous devez créer un carrousel d'image en utilisant HTML et un code JavaScript. Il existe de nombreuses bibliothèques sur le Web qui peuvent vous aider à créer des carrousels de différentes manières. Nous utiliserons la bibliothèque BXSLider open source. La bibliothèque Bxslider prend en charge la conception réactive, de sorte que le carrousel construit avec cette bibliothèque peut être adapté à n'importe quel

Comment télécharger et télécharger des fichiers CSV avec AngularComment télécharger et télécharger des fichiers CSV avec AngularMar 10, 2025 am 01:01 AM

Les ensembles de données sont extrêmement essentiels pour créer des modèles d'API et divers processus métier. C'est pourquoi l'importation et l'exportation de CSV sont une fonctionnalité souvent nécessaire. Dans ce tutoriel, vous apprendrez à télécharger et à importer un fichier CSV dans un

See all articles

Outils d'IA chauds

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.