Maison > interface Web > Questions et réponses frontales > fonction de remplacement de macro jquery

fonction de remplacement de macro jquery

WBOY
Libérer: 2023-05-28 09:34:37
original
466 Les gens l'ont consulté

Fonction de remplacement de macro jQuery : Comment simplifier votre code et améliorer l'efficacité ?

Dans le développement front-end, nous devons souvent utiliser du DOM, des styles, des événements, etc., et différentes pages peuvent avoir plusieurs éléments similaires qui doivent être traités. Dans ce cas, un code similaire doit être écrit, ce qui n'est pas le cas. seulement une perte de temps, mais aussi difficile à entretenir. Pour résoudre ce problème, jQuery fournit une fonction de remplacement de macro, qui nous permet de simplifier le code et d'améliorer l'efficacité.

1. Qu'est-ce que la fonction de remplacement de macro ?

Macro Replacement est un excellent assistant fonctionnel dans jQuery. Il nous permet de sauvegarder facilement certains blocs de code, puis de les remplacer à l'emplacement spécifié en cas de besoin. Cela préserve non seulement la réutilisabilité du code, mais rend également notre code plus lisible et compréhensible.

2. Comment utiliser des macros pour remplacer des fonctions ?

La fonction de remplacement de macro de jQuery comprend principalement deux méthodes : $.macro et $.processTemplate. Parmi eux, $.macro est utilisé pour définir le modèle et $.processTemplate est utilisé pour traiter le modèle. La syntaxe de base de

$.macro :

$.macro(name, string)

où name représente le nom du modèle et string représente le contenu du modèle (peut être n'importe quelle chaîne, y compris les balises HTML, JavaScript code, etc.).

Par exemple, nous définissons un modèle nommé "myTemplate", le contenu est un morceau de code HTML :

$.macro("myTemplate", "<div class='item'><h2>{title}</h2><p>{description}</p></div>");
Copier après la connexion

Parmi eux, {title} et {description} sont des espaces réservés, indiquant le contenu à remplacer.

Ensuite, nous pouvons utiliser la méthode $.processTemplate pour traiter le modèle et remplacer l'espace réservé :

var data = {title: "这是一个标题", description: "这是一些描述信息"};

var html = $.processTemplate("{myTemplate}", data);

$("#content").append(html);
Copier après la connexion

Remarque : Le nom du modèle ici doit être entouré d'une paire d'accolades, telles que "{myTemplate}".

Après avoir exécuté le code ci-dessus, un morceau de code HTML sera ajouté à l'élément #content avec le contenu suivant :

<div class="item">
    <h2>这是一个标题</h2>
    <p>这是一些描述信息</p>
</div>
Copier après la connexion

3. Application avancée de la fonction de remplacement de macro

  1. Prend en charge les modèles imbriqués

La fonction de remplacement de macro prend également en charge les modèles imbriqués, vous pouvez imbriquer un modèle dans un autre, similaire au mode combiné. L'implémentation est similaire aux modèles ordinaires, utilisez simplement des accolades imbriquées dans le modèle.

Par exemple, nous définissons un grand modèle composé de deux modèles, un modèle est utilisé pour afficher le titre et le contenu d'une actualité, et l'autre modèle est utilisé pour afficher les commentaires :

$.macro("item", "<div class='item'><h2>{title}</h2><p>{content}</p>{comments}</div>");

$.macro("comment", "<div class='comment'>{content}</div>");
Copier après la connexion

Notez que {comments} voici un compte. Caractère, utilisé pour les modèles de commentaires imbriqués.

Ensuite, nous utilisons des données simulées pour générer un ensemble d'actualités :

var news = [
    {title: "标题1", content: "内容1", comments: [
        {content: "评论1.1"},
        {content: "评论1.2"}
    ]},
    {title: "标题2", content: "内容2", comments: [
        {content: "评论2.1"},
        {content: "评论2.2"}
    ]}
];
Copier après la connexion

Enfin, nous parcourons les actualités et utilisons la méthode $.processTemplate pour générer du code HTML selon le modèle défini et l'insérons dans la page :

for (var i = 0; i < news.length; i++) {
    var newsItem = news[i];
    var html = $.processTemplate("{item}", newsItem, function (key, value) {
        if (key == "comments") {
            var commentHtml = "";
            for (var j = 0; j < value.length; j++) {
                var comment = value[j];
                commentHtml += $.processTemplate("{comment}", comment);
            }
            return commentHtml;
        }
        return value;
    });
    $("#news").append(html);
}
Copier après la connexion

Remarque : le troisième paramètre ici est une fonction de rappel qui gère l'espace réservé {comments} dans le modèle imbriqué et le remplace par le code HTML généré par le modèle de commentaire.

Après avoir exécuté le code ci-dessus, le code HTML suivant sera généré dans l'élément #news :

<div class="item">
    <h2>标题1</h2>
    <p>内容1</p>
    <div class="comment">评论1.1</div>
    <div class="comment">评论1.2</div>
</div>
<div class="item">
    <h2>标题2</h2>
    <p>内容2</p>
    <div class="comment">评论2.1</div>
    <div class="comment">评论2.2</div>
</div>
Copier après la connexion
  1. Prend en charge les boucles

La fonction de remplacement de macro prend également en charge la génération de code HTML complexe, tel qu'une liste contenant des boucles. Ceci peut être réalisé en utilisant l'espace réservé {loop} dans le modèle.

Par exemple, on définit un modèle nommé "list" pour générer une liste contenant une boucle :

$.macro("list", "<ul>{loop}</ul>");
Copier après la connexion

Ensuite, on peut définir un modèle nommé "item" pour générer un élément dans la liste :

$.macro("item", "<li>{text}</li>");
Copier après la connexion

Ensuite, on définit un tableau contenant les données de l'élément de liste à générer :

var data = [
    { text: "列表项1" },
    { text: "列表项2" },
    { text: "列表项3" }
];
Copier après la connexion

Enfin, nous pouvons écrire une boucle comme suit pour générer la liste :

var html = $.processTemplate("{list}", data, function (key, value) {
        if (key == "loop") {
            var loopHtml = "";
            for (var i = 0; i < value.length; i++) {
                loopHtml += $.processTemplate("{item}", value[i]);
            }
            return loopHtml;
        }
        return value;
    });

$("#content").append(html);
Copier après la connexion

La fonction de rappel ici est similaire à l'exemple précédent pour le traitement de l'espace réservé {loop}, parcourt le tableau et génère du code HTML pour plusieurs éléments de liste.

Après avoir exécuté le code ci-dessus, un morceau de code HTML sera ajouté à l'élément #content avec le contenu suivant :

<ul>
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
</ul>
Copier après la connexion

4. Résumé

La fonction de remplacement de macro est une fonction très pratique dans jQuery, qui nous permet de Gérez facilement le DOM et les styles, les événements, etc., évitez la duplication de code et améliorez l'efficacité du développement. Grâce à l'introduction et à l'exemple de démonstration de cet article, je pense que les lecteurs ont une compréhension relativement approfondie de la fonction de remplacement de macro et peuvent l'utiliser de manière flexible dans le développement réel. Bien entendu, il existe des applications plus avancées des fonctions de remplacement de macros, et les lecteurs sont invités à continuer à étudier et à rechercher 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal