Maison > interface Web > Questions et réponses frontales > Qu'est-ce que le moteur de modèles javascript

Qu'est-ce que le moteur de modèles javascript

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2022-04-26 15:12:09
original
2669 Les gens l'ont consulté

Le moteur de modèles JavaScript est une méthode permettant de séparer la structure HTML du contenu qu'elle contient. Il est produit pour séparer l'interface utilisateur des données commerciales. Il peut générer un document HTML standard ; le moteur de modèles est utilisé pour restituer des pages dynamiques. , quelque chose qui peut être utilisé pour simplifier les opérations de concaténation de chaînes.

Qu'est-ce que le moteur de modèles javascript

L'environnement d'exploitation de ce tutoriel : système Windows 10, JavaScript version 1.8.5, ordinateur Dell G3.

Qu'est-ce qu'un moteur de modèles javascript ?

Un moteur de modèles (fait ici spécifiquement référence à un moteur de modèles utilisé pour le développement Web) est créé pour séparer l'interface utilisateur des données métier (contenu). utilisation sur les sites Web Le moteur de modèles générera un document HTML standard.

Le moteur de modèles est conçu pour simplifier les opérations d'épissage de chaînes lors du rendu de pages dynamiques.

Les modèles JavaScript sont un moyen de séparer la structure HTML du contenu qu'il contient. Les systèmes de modèles introduisent souvent une nouvelle syntaxe, mais sont généralement très simples à utiliser, surtout si nous avons déjà utilisé un système de modèles ailleurs (comme Twig en PHP). Une chose intéressante à noter est que la substitution de jetons est généralement représentée par des doubles accolades ( {{ ... }} ), dont sont dérivés Moustache et Guidon (astuce : tournez-le sur le côté pour voir la similitude).

Par exemple, nous devons afficher une liste sur la page :

<li>111</li>
<li>222</li>
<li>333</li>
Copier après la connexion

Les données de la liste sont un tableau obtenu dynamiquement data=['111','222','333']. Ensuite, nous l'écrivons directement dans le code, nous devons boucler les données, puis fusionner les données de chaque li. Les étudiants habitués à écrire des pages souhaitent écrire la logique du code directement dans un code HTML. Tant que la source de données est modifiée, différents codes de page peuvent être générés. Par exemple, on peut écrire comme ceci :

for(var i = 0; i < this.list.length; i++){
  <li>this.list[i]</li>
}
Copier après la connexion

Lorsque les données de this.list sont modifiées, différents résultats peuvent être obtenus. Mais avec un tel code, il est impossible de distinguer où se trouve le code logique et où se trouve le code html lui-même. Nous avons donc ajouté quelques balises, ici nous utilisons <% %> pour envelopper le code logique.

<%for(var i = 0; i < this.list.length; i++){%>
  <li><%=this.list[i]%></li>
<%}%>
Copier après la connexion

Nous pouvons ajouter ce code à la balise de script, changer le type en texte/html ou d'autres formats, et obtenir le contenu du texte via le dom si nécessaire. Si js peut comprendre ce code, il peut mettre à jour le contenu du modèle en modifiant la source de données. Nous pouvons capturer tous les codes logiques grâce à une correspondance régulière, puis les analyser. Ici, j'ai pris une astuce et utilisé js pour utiliser new Function pour exécuter le code. J'ai ajouté les parties autres que le code logique dans une chaîne. Après l'exécution, le résultat final de la chaîne a été affiché : var etj = function (str, data) {.

var reg = /^<%.*?%>/,
    reg2 = /^(.*?)<%/,
    str2 = &#39;var str = "";&#39;,
    str = str.replace(/[\r\t\n]/g, " ");
while (str.length) {
    if (match = reg.exec(str)) {
        if (/^<%=/.exec(str)) {
            str = str.replace(match[0], &#39;&#39;);
            str2 += (&#39;str +&#39; + match[0].replace(/<%|%>/g, &#39;&#39;));
            str2 += &#39;;&#39;;
        } else {
            str = str.replace(match[0], &#39;&#39;);
            str2 += match[0].replace(/<%|%>/g, &#39;&#39;);
            str2 += &#39;;&#39;;
        }
    } else {
        match = reg2.exec(str)[1];
        str = str.replace(match[0], &#39;&#39;);
        str2 += &#39;str +="&#39;;
        str2 += match[0];
        str2 += &#39;";&#39;;
    }
}
str2 += &#39;return str;&#39;
var f = new Function(str2);
return f.call(data);
Copier après la connexion

} C'est un moteur jouet écrit par moi-même, et il contient encore des bugs. Faisons d'abord une démo (la logique est simple après tout). Ici, nous utilisons des règles régulières simples pour transformer le modèle en un morceau de code js pur. Après avoir importé la source de données, le résultat de l'exécution est le code html souhaité. Il suffit d'exécuter :

etj(str, {&#39;list&#39;: [1, 2, 3]});
Copier après la connexion

De cette façon, la logique HTML n'a pas besoin d'être intégrée dans le code js.

【Recommandations associées : tutoriel vidéo javascript, front-end web

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!

Étiquettes associées:
source:php.cn
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
Derniers numéros
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal