Le moteur de modèles nodejs fait référence aux modèles de rendu. Vous pouvez utiliser des fichiers modèles pour générer dynamiquement des fichiers HTML lors de la génération, vous pouvez intégrer les données de l'application dans des fichiers HTML selon certaines règles. Les moteurs de modèles de nœuds courants incluent : Moustache, Dust.js, doT, Jade, EJS, swig, etc.
L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 12.19.0, ordinateur DELL G3.
Dans une application Web, si vous utilisez uniquement du code côté serveur pour écrire du code HTML côté client sans séparer le front-end et le back-end, cela entraînera beaucoup de charge de travail, et le code écrit sera plus difficile à lire et à maintenir. Si vous utilisez uniquement les fichiers HTML statiques du client, il sera plus difficile d'intégrer la logique back-end dans le code HTML du client.
Afin de faciliter la maintenance, de permettre à la logique back-end d'être mieux intégrée dans le code HTML front-end et de faciliter la maintenance, de nombreux développeurs tiers ont développé divers moteurs de modèles Nodejs.
Alors, qu'est-ce qu'un moteur de modèles ? Nous pouvons le comprendre séparément.
Modèle : un moule (structure). Pour que vous puissiez définir des données et implémenter différentes logiques basées sur différentes données
Moteur : un processeur (compiler, exécuter), et enfin restituer le code HTML
Alors, comprenons ensemble le moteur de modèle : utilisez des fichiers modèles pour générer dynamiquement des fichiers HTML , lors de la génération, les données de l'application peuvent être intégrées dans le fichier HTML selon certaines règles. Semblable au langage jsp d’arrière-plan.
En termes simples, un moteur de modèle est un modèle de rendu.
Mustache
Site officiel : http://mustache.github.io/
Mustache est un moteur de modèles très simple et facile à utiliser, connu sous le nom de logique -moteur de modèles gratuit Peut être utilisé dans le HTML, les fichiers de configuration, le code source et d'autres scénarios.
La raison pour laquelle on l'appelle un moteur de modèles sans logique est qu'il n'a pas d'instructions if, de conditions else, de boucles for et d'autres structures. Juste des balises, remplacez les balises par des valeurs, les valeurs peuvent être des hachages ou des objets, c'est aussi simple que cela.
Les modèles Moustache ont deux définitions, Moustache (1) et Moustache (5).
Mustache prend en charge les langages de programmation traditionnels, tels que Ruby, JavaScript, Python, Erlang, node.js, PHP, Perl, Perl6, Objective-C, Java. , Android, C++, Go, Lua, etc.
Mustache s'intègre également bien aux éditeurs TextMate, Vim, Emacs, Coda, Atom, etc.
Manuel de Moustache (1) : < http://mustache.github.io/mustache.5.html>
Manuel de Moustache (5) : < ;
Mustache (1) s'est inspiré de ctemplate et la première version est sortie fin 2009. La première version du moteur de modèles a été implémentée dans Ruby et exécutait le texte du modèle YAML. Les principaux principes adoptés sont les suivants : premièrement, en mettant l'accent sur "pas de logique", il n'y a pas d'instructions de flux de contrôle explicites, tous les contrôles sont pilotés par les données ; deuxièmement, en mettant l'accent sur "la séparation de la logique et de la présentation", il est impossible d'intégrer la logique d'application dans les modèles.
Handlebars
Site officiel : < http://handlebarsjs.com/>
Handlebars.js est une extension du langage de modèle Moustache créé par Chris Wanstrath. Handles.js et Moustache sont tous deux des langages de modèles sans logique qui séparent les vues et le code.
De manière générale, la syntaxe des modèles guidons.js est un sur-ensemble de modèles Moustache.
Vous pouvez vous référer à la page d'aide de Moustache pour sa syntaxe de base : < http://mustache.github.com/mustache.5.html>
Les poignées permettent de précompiler et d'inclure des modèles dans le code JavaScript, ce qui accélère le démarrage. court.
Quelques points pour lesquels guidons ne sont pas compatibles avec Moustache :
* Guidon n'effectue pas de recherche récursive par défaut, sauf si l'indicateur de compatibilité doit être défini pour activer cette fonctionnalité au moment de la compilation. Les utilisateurs doivent être conscients que l’activation de cet indicateur entraîne un coût en termes de performances.
* Les Lambda facultatives de style Moustache ne sont pas prises en charge.
* Ne prend pas en charge les délimiteurs alternatifs
Dust.js
Site officiel : < http://www.dustjs.com/>
Dust est un moteur de modèle Javascript, qui hérite du style de langage ctemplate et Conçu pour fonctionner de manière asynchrone sur le serveur et le navigateur.
Comparé à d'autres moteurs de modèles, Dust n'est pas illogique, il a juste moins de logique.
*Vous ne pouvez pas écrire du Javascript arbitraire dans les modèles Dust. Cependant, vous disposez toujours d'opérateurs logiques de base comme la comparaison, inférieur/supérieur à, présence/absence. Cela établit un équilibre entre la lisibilité du modèle et le contrôle des données.
* Dust encourage le déplacement de la logique vers le modèle de données. Des fonctions peuvent être créées dans le modèle puis appelées à partir du modèle, vous donnant un contrôle total sur la façon dont le modèle est rendu sans encombrer la logique.
* Chargement, rendu et streaming asynchrones de modèles. Il n'est donc pas nécessaire de précharger le modèle.
* Modèles composables, prenant en charge l'inclusion partielle et les blocs de modèles dynamiques, associant les modèles ensemble pour réaliser une construction manuelle de mises en page.
* HTML sécurisé, indépendant du format. Dust empêche les attaques de scripts intersites en échappant les données en toute sécurité.
*Haute performance. Trouvez un équilibre entre performances et fonctionnalités. Bien qu'il ne soit pas aussi rapide que Moustache, sa nature asynchrone signifie que les grands modèles peuvent être rendus plus rapidement.
* Dust fonctionne en JavaScript.
Underscore.js
Site officiel : < http://underscorejs.org/>
Underscore est une bibliothèque JavaScript qui fournit une série d'aides à la programmation fonctionnelles utiles sans étendre aucun objet intégré.
Underscore fournit plus de 100 fonctions, prenant en charge la carte, le filtre, l'invocation et d'autres fonctionnalités, ainsi que la liaison de fonctions, les modèles JavaScript, la création rapide d'index, les tests d'équivalence approfondis, etc.
doT
Site officiel : < http://olado.github.io/doT/>
doT n'est pas le moteur de template le plus simple à utiliser, mais il répond aux besoins suivants :
* Si le le moteur de modèle est dans le client Le client et le serveur doivent l'utiliser
* Si le modèle nécessite une logique énorme et que vous souhaitez que l'application s'exécute rapidement
* Si vous avez besoin d'un modèle précompilé
Jade
Site officiel : < http://jade-lang.com/>
L'utilisation de ce moteur de modèles vous permet d'écrire moins de code et de faciliter le développement. Cependant, son utilisation dans l'environnement Node.js prend plus de temps car le fichier doit d'abord être converti en HTML puis converti en Jade.
EJS
Site Web officiel : < http://ejs.co/>
EJS est le langage de modèle par défaut de CanJS, qui permet l'utilisation de la liaison en temps réel avec Observes. EJS est très simple à utiliser, il suffit d'écrire le code HTML souhaité dans le modèle et quelques balises magiques qui représentent un comportement dynamique. JES ne prend pas en charge la fonction de bloc.
swig
Swig n'a pas de syntaxe HTML abstraite, mais vous pouvez utiliser Swig pour remplir la syntaxe d'Angular.js et prendre en charge la fonction de bloc.
Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel Nodejs ! !
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!