Les applications Web utilisent généralement une architecture MVC pour séparer la logique métier des vues de présentation. Des projets complexes impliquent un grand nombre de HTML clients qui utilisent des opérations JavaScript, qui peuvent être difficiles à maintenir. Dans ce cas, nous pouvons utiliser un système de modèle pour améliorer la réutilisabilité et simplifier les taches de gestion de la vue. Mustache.js fournit un système de modèles bien documenté qui peut être utilisé pour gérer les modèles. De plus, puisque Mustache prend en charge plusieurs langues, nous n'avons pas besoin d'utiliser un système de modèle séparé c?té serveur. Cet article décrit les bases de l'utilisation de la moustache.
Points clés
- Mustache.js est un système de modèle bien documenté qui peut être utilisé pour gérer les modèles HTML dans des applications Web complexes, améliorer la réutilisabilité et simplifier les taches de gestion de la vue.
- moustache.js est illogique, ce qui signifie que son modèle ne contient aucune condition IF-Else ou pour les boucles. Il utilise des étiquettes indiquées par double accolade pour ajouter des données au modèle.
- Les modèles de moustache peuvent être définis de plusieurs fa?ons, y compris des méthodes en ligne, des scripts en ligne et des extraits de HTML externes. La méthode à choisir dépend des besoins spécifiques du projet.
- Mustache.js est un outil multifonction qui peut être utilisé à la fois sur le client et le c?té serveur et prend en charge plusieurs langues. Il est également livré avec des balises pour gérer des modèles complexes tels que les variables, les sections, les fonctions et les modèles partiels.
Pourquoi avons-nous besoin d'un système de modèle?
La plupart des développeurs qui ne connaissent pas les systèmes de modèles créent de nouveaux blocs HTML de code et les insérent dynamiquement dans le DOM à l'aide de JavaScript. Une méthode courante consiste à spécifier l'élément HTML en tant que cha?ne, puis à définir la propriété InnerHTML ou à appeler la méthode jQuery Html (). Voici un exemple:
var dynamic_html = "<div>HighlightedAuthor</div>"; document.getElementById("container").innerHTML = dynamic_html;</pre>Une autre fa?on de construire un DOM est de créer des éléments et de les ajouter séparément, comme indiqué ci-dessous:
var title = document.createElement('div'); var highlight = document.createElement('span'); var highlight_text = document.createTextNode("Highlight"); var author = document.createElement('span'); var author_text = document.createTextNode("Author"); var container = document.getElementById('container'); highlight.appendChild(highlight_text); title.appendChild(highlight); author.appendChild(author_text); title.appendChild(author); container.appendChild(title);</pre>Les deux méthodes ci-dessus peuvent ajouter efficacement des éléments au document dynamiquement. Considérez une situation où nous avons une liste de balles bien con?ue qui doit être utilisée dans trois types de pages du site Web. En utilisant ces techniques, nous devrons répéter la liste du code HTML dans trois endroits différents. Ceci est souvent considéré comme une mauvaise habitude de codage. Dans ce cas, nous pouvons utiliser des modèles prédéfinis à différents endroits sans duplication du code. Mustache.js est un moteur de modèle JavaScript très populaire. étant donné que Mustache propose des modèles c?té serveur et c?té client dans plusieurs langues, nous n'avons pas à nous soucier de choisir un moteur de modèle séparé.
débutant de moustache.js
Mustache est un système de modèle sans logique open source adapté aux langages tels que JavaScript, Ruby, Python, PHP et Java. Vous pouvez accéder à la page officielle de GitHub pour obtenir une copie de la bibliothèque. Mustache utilise des modèles et des vues comme base pour créer des modèles dynamiques. La vue contient les données JSON à inclure dans le modèle. Un modèle contient une présentation HTML ou des données avec des balises de modèle qui contiennent des données de vue. Nous avons mentionné plus t?t que la moustache est illogique. Cela signifie que le modèle ne contient aucune condition IF-Else ou pour les boucles. Maintenant, commen?ons avec le modèle de moustache avec un exemple simple.
var dynamic_html = "<div>HighlightedAuthor</div>"; document.getElementById("container").innerHTML = dynamic_html;</pre>Tout d'abord, nous devons inclure le fichier moustache.js dans le document. Ensuite, nous pouvons commencer à créer le modèle de moustache. Dans l'exemple ci-dessus, nous avons une vue contenant le nom et l'occupation d'une personne. Nous utilisons ensuite des balises qui présentent le code et le nom et les données de carrière dans la fonction render (). Les étiquettes sont représentées par des accolades doubles ou des barbes qui les entourent. Voyons maintenant comment fonctionne la méthode Render ().
Rendre le modèle de moustache
Le code suivant montre l'implémentation de la fonction render () dans le fichier moustache.js. Trois paramètres peuvent être transmis à Render (). Les deux premiers modèles de paramètres et la vue sont nécessaires. Les partiels peuvent être considérés comme des modèles dynamiques que vous pouvez injecter dans le modèle principal. Dans notre exemple précédent, nous avons passé le modèle en tant que paramètre en ligne, la vue comme un deuxième paramètre et attribué le résultat à la variable de sortie.
var title = document.createElement('div'); var highlight = document.createElement('span'); var highlight_text = document.createTextNode("Highlight"); var author = document.createElement('span'); var author_text = document.createTextNode("Author"); var container = document.getElementById('container'); highlight.appendChild(highlight_text); title.appendChild(highlight); author.appendChild(author_text); title.appendChild(author); container.appendChild(title);</pre>Il s'agit de la forme la plus élémentaire de modèles à l'aide de la moustache. Jetons un coup d'?il à d'autres méthodes qui peuvent être utilisées pour créer plus de code canonique.
Définition Modèle de moustache
Il existe plusieurs fa?ons de définir des modèles de moustache dans votre application. Ces méthodes sont similaires à l'utilisation de styles en ligne, de feuilles de style en ligne et de feuilles de style externe pour inclure le CSS. L'exemple que nous avons discuté précédemment peut être considéré comme une méthode en ligne car nous passons le modèle directement à la fonction. Cette méthode empêche la possibilité de modèles réutilisables. Voyons comment définir un modèle comme un modèle de script en ligne au lieu de le transmettre directement à une fonction.
Modèle comme script en ligne
Nous pouvons aller à
</pre>
Vous pouvez inclure autant de modèles avec différents ID dans le document que vous le souhaitez. Lorsque vous souhaitez utiliser un modèle, utilisez InnerHTML pour obtenir le HTML à l'intérieur de la balise de script et passer comme modèle. Notre premier exemple sera modifié par le code suivant:
<!DOCTYPE html> <html lang="en"> <head> <title>Mustache.js Inline Method</title> <??> </head> <body> <??> <p id="person"></p> </body> <??> </html></pre>Comme vous pouvez le voir, le modèle est stocké séparément et utilisé dynamiquement en cas de besoin. Cette méthode augmente la possibilité de réutiliser des modèles. Cependant, l'utilisation de scripts en ligne limitera la portée du modèle à une page. Si vous avez plusieurs pages, vous devez à nouveau définir le modèle. Donc, inclure des modèles dans des fichiers externes serait la solution idéale - tout comme CSS.
Modèle comme extrait HTML externe
Dans cette technique, nous utiliserons jQuery pour implémenter des modèles. jQuery fournit une fonction appelée chargement () qui peut être utilisée pour faire partie d'un document externe. Nous utiliserons cette méthode pour charger le modèle dynamiquement à partir du fichier de modèle externe. La fonction Load () exécute des scripts au lieu de les retourner, nous ne pouvons donc pas créer de modèles à l'intérieur de balises de script comme nous l'avons fait dans la méthode précédente. L'exemple suivant montre le fichier de modèle externe que nous utiliserons.
var dynamic_html = "<div>HighlightedAuthor</div>"; document.getElementById("container").innerHTML = dynamic_html;</pre>Nous avons utilisé l'élément
<div>
au lieu de scripts pour les modèles pour le rendre compatible avec la fonction de charge () de jQuery. Ici, nous avons trois modèles différents avec trois ID différents. Maintenant, continuons à utiliser ces modèles dans votre page.var title = document.createElement('div'); var highlight = document.createElement('span'); var highlight_text = document.createTextNode("Highlight"); var author = document.createElement('span'); var author_text = document.createTextNode("Author"); var container = document.getElementById('container'); highlight.appendChild(highlight_text); title.appendChild(highlight); author.appendChild(author_text); title.appendChild(author); container.appendChild(title);</pre>jQuery insère le document retourné dans un élément HTML au lieu de l'attribuer à une variable. Par conséquent, nous avons besoin d'un conteneur virtuel pour maintenir le modèle. J'ai utilisé le conteneur de modèle qui est caché par défaut. L'exemple ci-dessus récupère Template1 et le charge. Nous pouvons ensuite obtenir le modèle à partir du conteneur virtuel et le transmettre à la moustache pour le rendu. C'est ainsi que fonctionnent les méthodes externes. Nous pouvons également utiliser la demande AJAX pour obtenir des données du serveur.
Conclusion
Les moteurs et les cadres de modèlesont très importants pour gérer des systèmes complexes avec des vues de présentation à changement dynamique. Mustache.js est l'un des meilleurs choix pour les modèles d'administration du c?té client. Nous expliquons au début de ce tutoriel pourquoi les modèles sont importants. Ensuite, nous continuons à introduire diverses techniques à l'aide de modèles de moustache. Vous pourrez désormais choisir un moyen d'implémenter le modèle de moustache dans votre projet. Nous avons fait de l'exploration de diverses techniques d'utilisation de modèles de moustache, mais la moustache est également livrée avec des balises telles que des variables, des sections, des fonctions et des modèles partiels utilisés pour gérer des modèles complexes. Discuter de la syntaxe pour chaque balise est au-delà de la portée de ce tutoriel. Vous pouvez trouver un guide complet de la balise de moustache sur la page Moustache Github. N'hésitez pas à partager votre expérience antérieure avec Mustache.js!
moustache.js FAQ (FAQ)
- Quelle est la principale différence entre Mustache.js et autres bibliothèques de modèles JavaScript?
Mustache.js est une syntaxe de modèle logique. Cela signifie qu'il peut être utilisé pour HTML, fichiers de configuration, code source - tout. Il fonctionne en étendant les étiquettes dans les modèles en utilisant le hachage ou les valeurs fournies dans l'objet. Contrairement à d'autres bibliothèques de modèles JavaScript, Mustache.js ne contient aucune instruction IF, clauses sinon ou pour boucles. Au lieu de cela, il n'a que des étiquettes. Certaines balises sont remplacées par une valeur, d'autres n'ont rien, d'autres sont une série de valeurs.
- Comment utiliser Mustache.js pour les modèles HTML?
Pour utiliser Moustache.js pour les modèles HTML, vous devez d'abord inclure le script Moustache.js dans le fichier HTML. Ensuite, vous définissez un modèle dans la balise <script></script>
. Ce modèle peut contenir des espaces réservés pour insérer des données. Ces lieux sont représentés par des accolades doubles, telles que {{nom}}. Vous utilisez ensuite la fonction moustache.render () pour rendre le modèle avec les données que vous avez fournies.
- Puis-je utiliser Mustache.js avec node.js?
Oui, vous pouvez utiliser Mustache.js avec node.js. Pour ce faire, vous devez installer le package Moustache à l'aide de NPM. Une fois l'installation terminée, vous pouvez en avoir besoin dans le fichier node.js et l'utiliser pour rendre le modèle.
- Comment utiliser Mustache.js pour traverser les tableaux?
Dans Mustache.js, vous pouvez traverser le tableau à l'aide de la syntaxe {{#Array}}… {{/ array}}. Dans ce bloc, vous pouvez utiliser {{.}} Pour référencer l'élément actuel dans le tableau. Cela vous permet d'afficher chaque élément dans le tableau du modèle.
- Comment utiliser les instructions conditionnelles dans Mustache.js?
Bien que Mustache.js soit une bibliothèque de modèles logiquement ungique qui ne prend pas en charge les instructions IF traditionnelles, vous pouvez toujours utiliser des sections pour obtenir des résultats similaires. Les sections rendent les blocs de texte une fois ou plus en fonction de la valeur de la clé dans l'objet de données.
- Comment inclure certains modèles dans Mustache.js?
Certains modèles de moustache.js vous permettent d'inclure des modèles plus petits dans un modèle plus grand. Ceci est très utile pour réutiliser des éléments communs tels que les en-têtes et les pieds de page. Pour inclure des modèles partiels, vous pouvez utiliser la syntaxe {{& gt; partielle}}.
- Comment échapper à HTML dans Mustache.js?
Par défaut, Mustache.js échappe à HTML dans les données pour empêcher les attaques XSS. Si vous souhaitez rendre HTML à partir de vos données, vous pouvez utiliser une syntaxe Triple Brace, telle que {{{html}}}.
- Puis-je utiliser Mustache.js pour le c?té serveur?
Oui, vous pouvez utiliser Mustache.js pour le c?té serveur. Ceci est utile pour le rendu des modèles avant de les envoyer au client, en réduisant le montant de JavaScript qui doit être exécuté sur le client.
- Comment précompiler un modèle dans moustache.js?
Les modèles précompilés dans Mustache.js peuvent améliorer les performances en réduisant le travail qui doit être effectué au moment de l'exécution. Pour précompiler un modèle, vous pouvez utiliser la fonction Mustache.Parse ().
- Comment déboguer le modèle moustache.js?
Le débogage du modèle moustache.js peut être délicat car la bibliothèque ne fournit pas beaucoup de messages d'erreur. Cependant, vous pouvez utiliser la fonction Mustache.Parse () pour vérifier si votre modèle est valide. Cette fonction renvoie un tableau de balises que vous pouvez vérifier pour voir si votre structure de modèle est correcte.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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.

Quel framework JavaScript est le meilleur choix? La réponse est de choisir la plus appropriée selon vos besoins. 1.RIATT est flexible et gratuit, adapté aux projets moyens et grands qui nécessitent une personnalisation élevée et des capacités d'architecture d'équipe; 2. Angular fournit des solutions complètes, adaptées aux applications au niveau de l'entreprise et à la maintenance à long terme; 3. Vue est facile à utiliser, adaptée à des projets de petite et moyenne taille ou à un développement rapide. De plus, s'il existe une pile technologique existante, la taille de l'équipe, le cycle de vie du projet et si le RSS est nécessaire sont également des facteurs importants dans le choix d'un cadre. En bref, il n'y a pas absolument le meilleur cadre, le meilleur choix est celui qui convient à vos besoins.

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

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.

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)

Des méthodes intégrées de la matrice JavaScript telles que .map (), .filter () et .reduce () peuvent simplifier le traitement des données; 1) .map () est utilisé pour convertir les éléments un en un pour générer de nouveaux tableaux; 2) .filter () est utilisé pour filtrer les éléments par condition; 3) .reduce () est utilisé pour agréger les données en tant que valeur unique; Une mauvaise utilisation doit être évitée lorsqu'elle est utilisée, entra?nant des effets secondaires ou des problèmes de performance.

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.
