当前所在位置: 首页 > 儿童教育 > 正文

javascript模板引擎是什么

2023-02-01 餐饮美食网 【 字体:

JavaScript模板引擎是一种将html结构与其中包含内容分离的方法,是为了使用户界面与业务数据分离而产生的,可以生成一个标准的html文档;模板引擎就是在让动态页面渲染的时候,可以用于简化字符串拼接操作的东西。

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript模板引擎是什么

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。

模板引擎就是为了让动态页面渲染的时候,可以简化字符串的拼接操作的东西。

JavaScript模板是一种将HTML结构与其中包含的内容分离的方法。 模板系统通常会引入一些新语法,但通常使用起来非常简单,尤其是如果我们以前在其他地方使用过模板系统(例如PHP中的Twig )。 需要注意的有趣一点是,令牌替换通常由双大括号( {{ ... }} )表示,Mustache和Handlebars源自其大括号(提示:将其侧向查看相似性)。

比如我们需要在页面渲染一个列表:

<li>111</li>
<li>222</li>
<li>333</li>

列表中的数据是动态获取的一个数组data=['111','222','333']。那么我们直接用代码写,需要循环data,然后拼接每一个li的数据。写惯了页面的同学,希望把代码逻辑直接写在一个html里面,只要更换数据源,就能输出不同的页面代码了。比如我们可以这样写:

for(var i = 0; i < this.list.length; i++){
  <li>this.list[i]</li>
}

当更换this.list的数据后,就可以获得不同的结果了。但是这样的代码,是没法区分哪里是逻辑代码,哪里是html本身的代码的。所以我们加入了一些标记符,我们这里用<% %>来包裹住逻辑代码。

<%for(var i = 0; i < this.list.length; i++){%>
  <li><%=this.list[i]%></li>
<%}%>

这段代码我们可以加在script标签内,修改type为text/html或者其它格式,在需要使用的时候,通过dom获取到里面的文本内容。如果js可以理解这段代码,就可以通过变更数据源来更新模板内容了。我们可以通过正则匹配,捕获所有的逻辑代码,然后进行分析。这里我取了巧,利用js可以new Function执行代码的途径,将逻辑代码以外的部分,加成了一个字符串,执行后输出最后的字符串结果:var etj = function (str, data) {

var reg = /^<%.*?%>/,
    reg2 = /^(.*?)<%/,
    str2 = 'var str = "";',
    str = str.replace(/[\r\t\n]/g, " ");
while (str.length) {
    if (match = reg.exec(str)) {
        if (/^<%=/.exec(str)) {
            str = str.replace(match[0], '');
            str2 += ('str +' + match[0].replace(/<%|%>/g, ''));
            str2 += ';';
        } else {
            str = str.replace(match[0], '');
            str2 += match[0].replace(/<%|%>/g, '');
            str2 += ';';
        }
    } else {
        match = reg2.exec(str)[1];
        str = str.replace(match[0], '');
        str2 += 'str +="';
        str2 += match[0];
        str2 += '";';
    }
}
str2 += 'return str;'
var f = new Function(str2);
return f.call(data);

}这是自己写的一个玩具引擎,还有bug,先做一个demo展示吧(毕竟逻辑简单)。在这里我们通过简单的正则,把模板变成了一段纯粹的js代码,当导入数据源后,执行结果就是我们所要的html代码了。我们只要执行:

etj(str, {'list': [1, 2, 3]});

就可以了,这样,html的逻辑也不用嵌入js的代码中。

【:javascript教程、web前端】

以上就是javascript模板引擎是什么的详细内容

阅读全文
相关推荐

如何自制蛋挞

如何自制蛋挞
1、倒入低筋面、黄油和水,揉成面团状,藏一小时后取出,抹上黄油卷起,包上保鲜膜冷藏半小时。2、取出,将面团切成一厘米的面团,放入模具内,用力按压,中间稍薄,外缘要比模具高,将蛋挞液倒入蛋挞皮中,放入烤箱里烤30分钟即可。

肉火烧面怎么和面

肉火烧面怎么和面
1、首先用温水把酵母融开,加入面粉,用手把面粉揉成非常软的面团,可以放一点熬好的猪油在面团里面。2、然后放在温暖的地方,盖上保鲜膜发酵至2倍大,发好的面团用手插入不回缩,就说明面团发酵好了。

奶茶几分糖好喝

奶茶几分糖好喝
1、不同的人对奶茶的口感要求是不一样的,一般来说,奶茶有三分糖、五分糖、七分糖三种不同的口味。2、女生一般都喜欢喝甜一点的,而男生则喜欢喝不那么甜的,七分糖的奶茶最好喝。

过桥米线是哪里的?

过桥米线是哪里的?
过桥米线是来自云南省滇南地区的一种有名特色小吃。过桥米线最早是在清朝就已经出现,距离现在至少有一百多年的历史啦!起源于建水县东城外锁龙桥西侧的鸡市街头处,有建水的特产草芽、地椒作配料,风味独特而远近闻名。深受广大美食爱好者的喜欢,不少人为此专门长途跋涉,只为尝

面霜和乳液的区别

面霜和乳液的区别
面霜和乳液的区别,相较而言乳液的水分含量要比面霜高,乳液质地要轻薄一些,乳液主要作用是保湿,滋润可以隔离外界干燥的气候,面霜既可保湿,又可美白,还能抗衰老,乳液的吸收快一些,而面霜吸收比较慢一些,因为液体的吸收速度都比较快。

怎么摘隐形眼镜

怎么摘隐形眼镜
在摘隐形眼镜之前,先用洗手液将手清洗干净,以免将细菌带入眼睛内,对着镜子,用右手中指轻拉眼睛下眼睑,左手中指轻拉眼睛上眼睑,让黑色眼球暴露在空气中,用右手食指和拇指轻触镜片的两边缘部分,向中间推使镜片拱起,再用两手指轻轻捏出镜片即可。

粉饼和散粉的区别

粉饼和散粉的区别
粉饼是呈压缩固体状态,多呈圆形或者方形,散粉则是细腻的粉末状,粉饼遮瑕力会比较强一些,可以湿用做粉底,或者用来补妆,而散粉则是定妆的效果,粉饼通常用在底妆的第一步,而散粉通常用在底妆最后一步。

冷烫和热烫的区别

冷烫和热烫的区别
冷烫和热烫的区别:冷烫对头发的要求是要在保温状态下才能给卷有个好的效果,而热烫是在干和湿的情况下都行,热烫烫出来的头发比较自然明显而有弹力,冷烫的头发风干后基本看不出来,并且发质会有点干。

高品质香水如何鉴别?用三步就可以解决

高品质香水如何鉴别?用三步就可以解决
1、看色泽以天然香料调制而成的高级香水,都有它本来的颜色,且大都是琥珀色或褐色,看起来很像宝石,比如,从茉莉、玫瑰或水仙等天然鲜花中所萃取的精油都呈黄色、褐白或绿褐色;此外,香水中所添加的魅惑香气物性香料也是褐色,苔类中的橡树苔是绿色,从树根或树根脂类中萃取的

如何去除黑眼圈

如何去除黑眼圈
去除黑眼圈首先可以用热毛巾敷眼,然后再用冷毛巾敷,十分钟就能让黑眼圈淡化的不那么严重,其次将去壳后的鸡蛋用无菌纱布包裹住,敷于眼部轻轻转动,可以急救去除黑眼圈,另外抹完眼霜后,用双手顺时针按摩,可以促进血液循环消除黑眼圈。
本文Tag