<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        webpack之loader實踐

        來源:懂視網 責編:小采 時間:2020-11-27 20:19:12
        文檔

        webpack之loader實踐

        webpack之loader實踐:初識前端模板概念的開發者,通常都使用過underscore的template方法,非常簡單好用,支持賦值,條件判斷,循環等,基本可以滿足我們的需求。在使用Webpack搭建開發環境的時候,如果要使用underscore的template方法進行前端模板的渲染,我們可以把模板代碼獨立
        推薦度:
        導讀webpack之loader實踐:初識前端模板概念的開發者,通常都使用過underscore的template方法,非常簡單好用,支持賦值,條件判斷,循環等,基本可以滿足我們的需求。在使用Webpack搭建開發環境的時候,如果要使用underscore的template方法進行前端模板的渲染,我們可以把模板代碼獨立
        初識前端模板概念的開發者,通常都使用過underscore的template方法,非常簡單好用,支持賦值,條件判斷,循環等,基本可以滿足我們的需求。

        在使用Webpack搭建開發環境的時候,如果要使用underscore的template方法進行前端模板的渲染,我們可以把模板代碼獨立到模版文件中保存。如何將模板文件加載到我們的JavaScript中進行模板渲染,就成了我們首先需要解決的問題。

        說道這里,就必須提到Webpack中的loader(加載器)的概念,webpack支持通過loader的方式轉換應用程序的資源文件,而我們的模板文件也需要對應的loader去進行加載,才能支持我們開發。

        segmentfault中leftstick講到目前可以支持template加載的有raw-loader,html-loader,template-html-loader,ejs-loader。。。【更多的列表參考templating】

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

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

        我們使用一下配置簡單構建一個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"
         }
        }

        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方法將其封裝成一個方法 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

        運行npm install 之后,運行webpack,打開index.html,就可以看到如下結果。

        姓名:mike,年齡:18,性別:男
        
        姓名:nina,年齡:20,性別:女
        
        姓名:elle,年齡:26,性別:女

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

        在代碼中使用也變得非常簡單,require對應的tpl文件之后,直接就可以渲染對應的html模板。

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

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

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        webpack之loader實踐

        webpack之loader實踐:初識前端模板概念的開發者,通常都使用過underscore的template方法,非常簡單好用,支持賦值,條件判斷,循環等,基本可以滿足我們的需求。在使用Webpack搭建開發環境的時候,如果要使用underscore的template方法進行前端模板的渲染,我們可以把模板代碼獨立
        推薦度:
        標簽: lo load 實踐
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV人人澡人人爽人人夜夜| 67194成是人免费无码| 亚洲日韩国产一区二区三区| 亚洲av无码专区在线电影| 国产va免费精品观看精品| 亚洲国产成人久久综合一区| 99久9在线|免费| 亚洲精品成人久久| 6080午夜一级毛片免费看 | 亚洲色欲啪啪久久WWW综合网| 67194熟妇在线永久免费观看| 亚洲影视一区二区| 91香蕉视频免费| 亚洲av无码专区在线观看亚| 国产成人涩涩涩视频在线观看免费 | 日本人护士免费xxxx视频| 久久亚洲AV成人无码国产最大| 国产精品jizz在线观看免费| 污污视频免费观看网站| 亚洲伊人久久综合影院| 最近免费mv在线观看动漫 | 亚洲AV日韩AV永久无码久久 | 亚洲av日韩av综合| 精品久久久久久久免费人妻 | 亚洲精品无码久久久久去q| 久草免费手机视频| 2019亚洲午夜无码天堂| jjzz亚洲亚洲女人| 久久亚洲免费视频| 亚洲精品动漫免费二区| 亚洲中文字幕在线观看| 人与禽交免费网站视频| 立即播放免费毛片一级| 无码乱人伦一区二区亚洲| 我要看WWW免费看插插视频| 五月天婷婷免费视频| 亚洲高清在线mv| 亚洲精品视频在线观看你懂的| 99热在线观看免费| 欧亚一级毛片免费看| 亚洲福利电影一区二区?|