html模块化嵌套页面,webpack4 将html 模块化

本文详细介绍了如何使用Webpack处理组件中的HTML模板文件(通过html-loader)和EJS模板文件(通过ejs-loader),包括安装、模板编写、主入口文件调用及webpack配置。对比了两者在模板处理上的异同和参数传递方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

webpack处理组件中的模板文件有两种方式:

1.将模板文件当做一个字符串。比如html-loader:将HMTL模板文件当做一个string输出。

2.将模板文件当做一个已经编译好的模板函数。比如ejs-loader:将EJS模板文件当做一个函数输出。

html-loader 示例

1.安装依赖:

npm i -D html-loader

2.建立模板文件,目录为:

bVbwEvF?w=231&h=335

● layer.xml,后缀也可以是.html,.xml 等合法的后缀名,.xml 后缀是为了和根目录的index.html 区别开来,以便于以后对两种文件进行不同操作。就像vue 框架里的模板文件的后缀就是.vue 。

hello world

● layer.js,引入模板文件,将其加工成对象后输出

import tpl from './layer.xml'

function layer(){

return{

name:'layer',

tpl:tpl

}

}

export default layer;

3.index.js 主入口文件调用模板,并将其添加到页面中

import Layer from './components/layer/Layer'

const App=function(){

var dom=document.getElementById('app');

let layer=new Layer();

dom.innerHTML=layer.tpl;

}

new App();

4.index.html 主页面

html页面模块化

5.webpack.config.js

module: {

rules: [

{

test: /\.xml/,

loader: 'html-loader'

}

]

},

ejs-loader 示例

1.安装依赖:

npm i -D ejs-loader

2.建立模板文件,目录为:

bVbwEwm?w=168&h=193

● ejs.tpl,模板文件的后缀也可以是.html,.xml,.ejs等合法的后缀名。ejs模板的语法还有许多,比如for 循环等,详情参考 https://ejs.bootcss.com/

●ejs.js,引入模板文件,将其加工成对象后输出

import tpl from './Ejs.tpl'

function Ejs(){

return{

name:'ejs',

tpl:tpl

}

}

export default Ejs;

3.index.js 主入口文件调用模板,并将其添加到页面中

import Layer from './components/layer/Layer'

import Ejs from './components/ejs/Ejs'

const App=function(){

var dom=document.getElementById('app');

let layer=new Layer();

dom.innerHTML=layer.tpl;

var dom2=document.getElementById('app2');

let ejs=new Ejs();

dom2.innerHTML=ejs.tpl({

msg:'Hello China'

});

}

new App();

因为ejs 的模板文件是个函数,所有ejs.tpl({key:value}) 可以向模板传参

4.index.html 主页面

html页面模块化

5.webpack.config.js

module: {

rules: [

{

test: /\.xml/,

loader: 'html-loader'

},

{

test: /\.tpl/,

loader: 'ejs-loader'

}

]

},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值