国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

webpack之loader實(shí)踐

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:19:12
文檔

webpack之loader實(shí)踐

webpack之loader實(shí)踐:初識(shí)前端模板概念的開(kāi)發(fā)者,通常都使用過(guò)underscore的template方法,非常簡(jiǎn)單好用,支持賦值,條件判斷,循環(huán)等,基本可以滿(mǎn)足我們的需求。在使用Webpack搭建開(kāi)發(fā)環(huán)境的時(shí)候,如果要使用underscore的template方法進(jìn)行前端模板的渲染,我們可以把模板代碼獨(dú)立
推薦度:
導(dǎo)讀webpack之loader實(shí)踐:初識(shí)前端模板概念的開(kāi)發(fā)者,通常都使用過(guò)underscore的template方法,非常簡(jiǎn)單好用,支持賦值,條件判斷,循環(huán)等,基本可以滿(mǎn)足我們的需求。在使用Webpack搭建開(kāi)發(fā)環(huán)境的時(shí)候,如果要使用underscore的template方法進(jìn)行前端模板的渲染,我們可以把模板代碼獨(dú)立
初識(shí)前端模板概念的開(kāi)發(fā)者,通常都使用過(guò)underscore的template方法,非常簡(jiǎn)單好用,支持賦值,條件判斷,循環(huán)等,基本可以滿(mǎn)足我們的需求。

在使用Webpack搭建開(kāi)發(fā)環(huán)境的時(shí)候,如果要使用underscore的template方法進(jìn)行前端模板的渲染,我們可以把模板代碼獨(dú)立到模版文件中保存。如何將模板文件加載到我們的JavaScript中進(jìn)行模板渲染,就成了我們首先需要解決的問(wèn)題。

說(shuō)道這里,就必須提到Webpack中的loader(加載器)的概念,webpack支持通過(guò)loader的方式轉(zhuǎn)換應(yīng)用程序的資源文件,而我們的模板文件也需要對(duì)應(yīng)的loader去進(jìn)行加載,才能支持我們開(kāi)發(fā)。

segmentfault中l(wèi)eftstick講到目前可以支持template加載的有raw-loader,html-loader,template-html-loader,ejs-loader。。。【更多的列表參考templating】

不同的加載器略有不同,表現(xiàn)在加載完之后,在JS代碼中的表現(xiàn),有的是返回字符串,有的則是JS對(duì)象或方法。

我們嘗試使用raw-loader來(lái)處理,raw-loader的官方解釋是【將文件加載為字符串】,因此我們可以將模板文件加載成字符串,然后使用underscore去渲染成最終的HTML。

我們使用一下配置簡(jiǎn)單構(gòu)建一個(gè)webpack的環(huán)境。

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"
 }
}

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()]
};

模板代碼 index.tpl

<% _.each(data, function(n){ %><p>姓名:<%= n.name %>,年齡:<%= n.age %>,性別:<%= n.sex %></p><% }); %>

index.js

 1 var _ = require('underscore'); 2 3 // 這里可以看到indexTplFile只是字符串 4 var indexTplStr = require('./index.tpl'); 
 5 // template方法將其封裝成一個(gè)方法 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});
index.js

運(yùn)行npm install 之后,運(yùn)行webpack,打開(kāi)index.html,就可以看到如下結(jié)果。

姓名:mike,年齡:18,性別:男

姓名:nina,年齡:20,性別:女

姓名:elle,年齡:26,性別:女

但是可以看得出來(lái),在渲染模板的過(guò)程中,執(zhí)行了三行代碼,如果我們想只用一行代碼就生成最終的HTML字符串,繼續(xù)嘗試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 };

在代碼中使用也變得非常簡(jiǎn)單,require對(duì)應(yīng)的tpl文件之后,直接就可以渲染對(duì)應(yīng)的html模板。

var indexTpl = require('./index.tpl');
document.body.innerHTML = indexTpl(data);

通過(guò)raw-loader和ejs-loader的對(duì)比,我們可以對(duì)webpack的loader使用有了一些認(rèn)識(shí),那就是loader是將不同類(lèi)型的文件通過(guò)某種解析方式模塊化到我們的代碼中,然后提供給Javascript進(jìn)一步的處理。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

webpack之loader實(shí)踐

webpack之loader實(shí)踐:初識(shí)前端模板概念的開(kāi)發(fā)者,通常都使用過(guò)underscore的template方法,非常簡(jiǎn)單好用,支持賦值,條件判斷,循環(huán)等,基本可以滿(mǎn)足我們的需求。在使用Webpack搭建開(kāi)發(fā)環(huán)境的時(shí)候,如果要使用underscore的template方法進(jìn)行前端模板的渲染,我們可以把模板代碼獨(dú)立
推薦度:
標(biāo)簽: lo load 實(shí)踐
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top
主站蜘蛛池模板: 日韩精品在线第一页 | 国产高清视频免费 | 欧美激情国产日韩精品一区18 | 就爱啪啪网 | 国产精品成人一区二区不卡 | 欧美 日韩 国产在线 | 国产一区二区三区日韩欧美 | 国产精品久久久久久久久免费 | 国产在线欧美日韩精品一区二区 | 波多野结衣乳巨码无在线观看 | 亚洲三级在线 | 日韩欧美伊人久久大香线蕉 | 黄色毛片在线观看 | 黄色在线免费观看网址 | 欧美高清一区二区三 | 亚洲欧美国产精品 | 国产精品va一区二区三区 | 国产精品毛片在线直播完整版 | 精品免费久久久久国产一区 | 亚洲情a成黄在线观看动 | 精品国产综合区久久久久99 | 精品日本一区二区三区在线观看 | 国产精品免费精品自在线观看 | 国产在线视欧美亚综合 | 99热91| 精品国产亚一区二区三区 | 劲爆欧美第一页 | 欧美日韩成人在线视频 | 精品久久久久中文字幕日本 | 国产 欧美 日韩 在线 | 欧美啊v在线观看 | 国产成人青青热久免费精品 | 成年人黄国产 | 欧美一区精品二区三区 | 人与动性xxxxx免费 | 国产综合精品一区二区 | 欧美 亚洲 中文字幕 | 99国产精品久久久久久久成人热 | 国产1区2区| 日韩欧美网站 | 亚洲人成一区二区三区 |