Maison > interface Web > js tutoriel > le corps du texte

Pratique du chargeur Webpack

PHP中文网
Libérer: 2017-06-22 11:00:00
original
1536 Les gens l'ont consulté

Les développeurs qui sont nouveaux dans le concept de modèles front-end ont généralement utilisé la méthode de modèle de soulignement. Elle est très simple et facile à utiliser. Elle prend en charge l'affectation, le jugement conditionnel, le bouclage, etc., et peut essentiellement répondre à nos besoins.

Lorsque vous utilisez Webpack pour créer un environnement de développement, si vous souhaitez utiliser la méthode de modèle de soulignement pour afficher le modèle frontal, nous pouvons enregistrer le code du modèle indépendamment dans le fichier modèle. Comment charger le fichier modèle dans notre JavaScript pour le rendu du modèle est devenu le premier problème que nous devons résoudre.

En parlant de cela, nous devons mentionner le concept de loader (loader) dans Webpack prend en charge la conversion des fichiers de ressources d'application via le chargeur, et nos fichiers modèles en ont également besoin. chargeurs correspondants à charger afin de soutenir notre développement.

Le joystick gauche dans segmentfault a mentionné que raw-loader, html-loader, template-html-loader et ejs-loader peuvent actuellement prendre en charge le chargement de modèles. . . . . . [Reportez-vous aux modèles pour plus de listes]

Les différents chargeurs sont légèrement différents, ce qui se reflète dans les performances du code JS après le chargement. Certains renvoient des chaînes et d'autres renvoient des objets ou des méthodes JS.

Nous essayons d'utiliser raw-loader pour le gérer. L'explication officielle de raw-loader est [Charger le fichier sous forme de chaîne], donc. nous pouvons Le fichier modèle est chargé dans une chaîne, puis le trait de soulignement est utilisé pour restituer le HTML final.

Nous utilisons la configuration suivante pour créer simplement un environnement webpack.

package.json

{  "name": "tpl-webpack",  "version": "1.0.0",  "description": "",  "main": "index.js?1.1.10",  "scripts": {"test": "echo \"Error: no test specified\" && exit 1"
  },  "author": "",  "license": "ISC",  "devDependencies": {"html-webpack-plugin": "^2.28.0","raw-loader": "^0.5.1","underscore": "^1.8.3","webpack": "^3.0.0"
  }
}
Copier après la connexion

webpack.config.js

var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './index.js',
    output: {
        filename: 'bundle.js'},
    module: {
        loaders:[
            {
               test: /\.tpl$/,
               use: 'raw-loader'}
        ]
    },
    plugins: [new HtmlWebpackPlugin()]
};
Copier après la connexion

Code du modèle index.tpl

<% _.each(data, function(n){ %><p>姓名:<%= n.name %>,年龄:<%= n.age %>,性别:<%= n.sex %></p><% }); %>
Copier après la connexion

index.js

 1 var _ = require('underscore'); 2  3 // 这里可以看到indexTplFile只是字符串 4 var indexTplStr = require('./index.tpl'); 
 5 // template方法将其封装成一个方法 6 var indexTpl = _.template(indexTplStr); 7   8 var data = [ 9     {10         name: 'mike',11         age: 18,12         sex: '男'13     },14     {15         name: 'nina',16         age: 20,17         sex: '女'18     },19     {20         name: 'elle',21         age: 26,22         sex: '女'23     }24 ];    
25 26 document.body.innerHTML = indexTpl({data:data});
Copier après la connexion
index.js

Après avoir exécuté npm install, exécutez webpack, ouvrez index.html, vous pouvez voir les résultats suivants.

姓名:mike,年龄:18,性别:男

姓名:nina,年龄:20,性别:女

姓名:elle,年龄:26,性别:女
Copier après la connexion

Mais on peut voir que lors du processus de rendu du modèle, trois lignes de code sont exécutées. Si nous voulons générer la chaîne HTML finale avec une seule ligne de code, continuez à essayer <.>ejs-loader.

webpack.config.js

 1 var webpack = require('webpack'); 2 var HtmlWebpackPlugin = require('html-webpack-plugin'); 3 module.exports = { 4     entry: './index.js', 5     output: { 6         filename: 'bundle.js' 7     }, 8     module: { 9         loaders:[ 
10             { 
11                 test: /\.tpl$/, 
12                 loader: 'ejs-loader?variable=data'13             },14         ]15     }, 
16     plugins: [ 
17         new HtmlWebpackPlugin(),18         // 提供全局变量_19         new webpack.ProvidePlugin({20             _: "underscore"21         })22     ]23 };
Copier après la connexion
est également très simple à utiliser dans le code. Après avoir demandé le fichier tpl correspondant, vous pouvez directement restituer le modèle html correspondant. .

var indexTpl = require('./index.tpl');
document.body.innerHTML = indexTpl(data);
Copier après la connexion
Grâce à la comparaison entre raw-loader et ejs-loader, nous pouvons avoir une certaine compréhension de l'utilisation du chargeur dans webpack, c'est-à-dire que le chargeur doit transmettre différents types de fichiers via une sorte de méthode d'analyse est modularisée dans notre code puis fournie à Javascript pour un traitement ultérieur.

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