模板引擎?看这一篇就懂了

概念

模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。

光看生硬的概念没有用,接下来我来给大家详细解释,这模板引擎究竟是何物?

假设现在你打开电脑浏览器,进入某宝的网站,然后输入“笔记本”,唰的一下页面上就出现了琳琅满目的商品,让你是应接不暇,然后你又输入了“辣条”,一下子页面上又是不一样的商品了,这个时候,疑问就产生了:页面上的这些商品究竟是直接写在页面上的还是实时渲染的呢?

毫无疑问,这些展示的商品肯定是实时渲染出来的,如果直接写死在页面上,那么我们每次输入不同的关键词查找,都需要一个新页面,这样会导致占用的内存太大了,完全不划算,而模板引擎的作用就在这体现出来了,它可以根据从数据库中实时取出来的数据对html页面实时的渲染,这,就是模板引擎。

实例

下面举个例子
请添加图片描述
上图是从后端数据库中取出来的数据,可以看到,取出来的原始数据是有些不符合格式的,因此我们渲染数据之前,还需要把原始数据格式化一下,得到可以直接渲染的数据
请添加图片描述
格式化数据的同时,我们还要对需要返回的数据部分的默认值进行设置

这里采用正则表达式来去掉原始数据中productTitle的开头部分的"PTD!6-"

productTitle = productTitle.replace(/PTD16-/gi, '');

这里用到空值合并运算符"??"来设置默认值

productTitle = productTitle ?? '暂无信息';

空值合并运算符 ?? 提供了一种简短的语法,用来获取列表中第一个“已定义”的变量(译注:即值不是 null 或 undefined 的变量)。

下面我们先自己写一个编译模板来生成渲染数据
请添加图片描述
这里用到了es6的模板字符串,也就是反引号``,它既可以当做普通的字符串进行拼接,同时也可以嵌入变量,像上图中的

${item?.productImgUrl ?? '暂无信息'}
${item?.productTitle ?? '暂无信息'}
${item?.productDesc ?? '暂无信息'}
${item?.productPrice ?? '暂无信息'}

这四个就是嵌入字符串中的变量,然后通过循环填入相应的数据,最后通过li标签的这个模板,可以通过数据来生成这部分的html页面

因为这里我们是采用的面向对象的写法,所以无论是格式化函数,编译模板函数,都是类的成员函数
请添加图片描述
renderHtml函数中只需要渲染页面就行了

renderHtml() {//渲染页面
        this.parentEle.innerHTML += this.templateHtml;
      }

还有不要忘了在这些之前需要实例化类

new TempRender(productData, '#product-list');

html标签部分,只需要一个ul标签,id为’product-list’即可

<body>
	<ul id="product-list">
	</ul>
<body>

最后渲染出来的页面如图
请添加图片描述
虽然最后渲染成功了,但是对不同的标签或者不同的工程,我们又需要重新写模板,这样会显得十分繁琐,所以接下来我们就使用模板工具,现在市面上的模板工具特别多,我们今天用到的是art-template

模板引擎工具:art-template

模板工具使用十分简便,我们访问art-template官网查看文档就可以知道使用方式
请添加图片描述
在文件中引入相应的js文件后,我们要了解这个工具的语法,在文档中查看

在了解语法之前,我们先来了解一下在实际运用中我们怎么使用模板引擎

	let oUl = document.querySelector('#product-list');
	let templateHtml = template('testTemp', formatData(productData));
	oUl.innerHTML = templateHtml;
    function formatData(data) {//格式化原始数据,并返回需要渲染的数据部分
      let list = data.list;
      data.list = list.map(({ productImgUrl, productTitle, productDesc, productPrice, productCount }) => {
        productPrice = productPrice / 100;
        productTitle = productTitle.replace(/PTD16-/gi, '');
        productImgUrl = productImgUrl || 'img/1.webp';
        productTitle = productTitle ?? '暂无信息';
        productDesc = productDesc || '暂无信息';
        productPrice = productPrice || '暂无信息';
        return {
          productImgUrl,
          productTitle,
          productDesc,
          productPrice,
          productCount
        }
      })
      return data;
    }

这里的原始数据还是和之前一样,但是在这里我们不用书写编译模板,而是直接调用template这个函数,我们传入’testTemp’和经过处理后的数据两个参数,强大的模板工具就会给我们返回已经编译好的html部分,然后我们只需要将其渲染上页面就可以看见效果了

这里有个点,那就是’testTemp’这个参数是干嘛的,我们找到id为’testTemp’的标签
请添加图片描述
这里要注意,script标签的type的值一定是’text/template’,这是模板引擎规定的格式
可以看到,这个标签中写的就是模板的语法,关于语法,我们再次查看文档
请添加图片描述
因为原始语法太过于复杂,所以我们使用标准语法
标准语法十分容易上手,在需要渲染的数据的部分使用{{}}来嵌入相应的变量就可以了,我们还可以在模板中使用,循环,if语句等特殊的语句,但是我们一般只采用这些语句来更方便的渲染数据,像

{{set price = $value.productPrice}}

这类的编程类语句,不适合在模板内出现

上面我们说到使用template函数传入两个参数,第一个是引擎指定的类型,第二个则是处理后的数据,传入的数据在上面这个模板中是一个顶级变量,因为数据是一个JSON对象的格式,其中有一个’title’和一个’list’,这两个变量在{{}}中都是可以直接使用的

<h1>{{title}}</h1>
{{each list}}

如直接使用title变量和对list变量进行循环,在循环中每一项的值可以用’$value’来表示,因此我们可以看到在循环中
注意:’$index’是每一项的下标

{{each list}}
    <li>
      {{set price = $value.productPrice}}
      <img src="{{$value.productImgUrl}}" alt="">
      <h3 class="title">{{$value.productTitle}} {{$index}}</h3>
      <p class="desc">{{$value.productDesc}}</p>
      <p class="price"><span>{{price}}</span>元起</p>
      {{if $value.productCount == 0}}
      <i style="color:red">无货</i>
      {{/if}}
      {{if $value.productCount != 0}}
      <i style="color:green">有货</i>
      {{/if}}
    </li>
{{/each}}

最后我们采用模板引擎渲染出来的页面为
请添加图片描述

  • 70
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 51
    评论
学校网站系统全站源代码学校网站模板下载,学校网站源码学校网页模板正式版,学校网站管理系统源码,学校模板正式版,学校网站管理系统全站源码正式版,后台管理从前台网站输入http://***.***.***/login.asp 进入后台管理管理员:admin 登陆密码:admin 信息时代,各个学校迫切的需要一个学校网站,作为自己学校的网上门户网站,无论是作为学校上级主管部门要求学校上网的任务,更是由于形势所迫,没有自己的网站,就是少了一个跟别的学校的竞争力.作为一些私立的,民办的小学,中学,高中,培训学校,职业教育学校,更是需要一个专业,权威性的展示学校办学实力的学校网站,以宣传,推广自己学校,推广招生,实现办学投资收益.怎么办,请网络公司,软件公司定做一个学校网站吧,但是时间很长,成本大高,收费很高,做出来的版面很差,一点不合适学校,功能更是少,不成熟,漏洞百出,用着一点不安全,反而不利于学校网站的建设,达不到学校网站建立的真正目标.现在好了,有一套国内首创的学校网站系统正式版提供,学校网站系统全站源代码学校网站模板下载,它是国内最为知名的专著于学校网站建设的网软公司开发的产品,我们有着十年的学校网站建设经验,几万学校用户,为他们提供了几十万页的学校网站网页设计,更是有着几十套推陈出新,紧跟学校建站市场的开发的学校网站管理程序,设计的非常漂亮美观的学校网站模板,同时提供有ASP学校网站系统免费下载,二十多套PHP学校网站程序全功能下载,再也不用愁应该用什么学校网站程序,怎么去使用学校网站系统源码,怎么去突出自己学校网站的特色,有别于其它学校网站,突出自己学校的形象,增强软实力.学校网站管理系统源码,强大的免费学校网站后台管理系统,漂亮的学校网页模板,模版,完全为学校风格,功能设计的一套,学校网站建设的程序,网站系统.学校模板正式版,针对各类学校,教学,教研单位实现电子教学教育和电子学校,学校上网,学校信息化的需求进行定向开发的学校网站模板,模版,学校网站系统全站源代码学校网站模板下载,适用于幼儿园网站,小学学校网站,初中学校网站,中学学校网站,高中学校网站,职业技术学院,职业技术学校,职业高中网站的学校网站模板现提供下载了,最为成熟通用的asp学校网站源码和自带的学校网页模板,也适合于建立学院网站,职业学校网站,培训学校网站,大学学校网站,大专学校网站,高职高专学校网站,电脑学校网站的学校网站建设中的智能网站程序,提供全部网站程序代码,其中的学校网站源代码也规范化,可理解,以更好的修改,扩展学校网站的功能和版面.职业学校,培训学校,技术学校,中职学校网站,技术学校网站管理系统正式版,教育局网站,政府教育部门网站,教育教学事业单位,私立学校网站,民办学校网站进行网站建设的网站系统.是一套功能完善的优秀的学校网站源代码。提供学校网站系统模板设计,源代码下载,正式版本,功能完全开放。 学校网站系统全站源代码学校网站模板下载,信息时代,各级教学教育,公立私立民办学校部门,需要一个动态网站,实现学校介绍,学校概况,德育之窗,学科教研,教师园地,学生地盘,家长专栏,招生考试,交流互动,学校网上报名功能,学生成绩查询,专题报道,图片新闻,学校互动论坛,学校办公OA系统,学校信息,教务公开,学校动态,学校规章制度,政策法规,和家长学生互动,学校信息,校园风光网上介绍,名师风采,办学成就介绍,校园刊物网上电子版,学校的教学科研信息,教研组,课题课件等都可在学校网站系统里面实现,学校的德育教育,如行为考评,政策法规,德育服务,家长学校,心理辅导,在学校网站管理系统也有相关的栏目,学生园地展示学生作品,学校留言本,聊天室,学校论坛,可给教师,学生,家长一个沟通的平台等学校教学教育科研,教研事业单位性质的网站,做适合新时代的电子教学,网络学校,网络教学,信息化学校网站管理系统. 完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp+ACCESS的完美结合,高效的页面执行效率,特别优化系统安全性能,学校网站系统全站源代码学校网站模板下载,可令你在学校茫茫网海中一支独秀。学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上 办公,提高效率,了解民众呼声提供全站程序. 系统自身具有强大、完备的网站后台管理功能,功能全面,操作简易。系统前台的栏目、菜单、功能入口等全部实现后台控制,用户只需在后台进行简单的设置即可制作出适合于自身学校的网站系统。 我们将推出更多的学校机构网站,学校网站管理系统,做中国最好,易用,安全的学校上网,学校信息化网站系统, 学校网站管理系统源码正式版 一款非常适合学校建站的好程序,为学校单位量身订制,您不要网站开发语言,只要设置网站信息就可以做出自己的学校网站。 学校网站系统全站源代码学校网站模板下载前台功能介绍: 功能介绍: ①系统配置:1、 网站属性 2、功能设置 3、模板编辑 4、系统初始 5、专业设置 6、报名管理(详细请看演示) ②文章管理:1、 栏目管理(可任意设置栏目名称、类别、选择栏目模版、设置管理员等等相关属性) 2、添加文章(可添加附件、上传图片、视频、音频、动画、选择相应模版等等,详细请看演示) 3、管理我的文章。 ③互动交流管理:1、留言管理 2、评论管理 3、 校长信箱 4、投诉举报 ④附加管理:1、文章审核 2、文章检索 3、 专题管理 4、投票管理 5、公告管理6、友情链接 7、广告管理 8、附件管理9、备份压缩10、服务器探测。 ⑤用户管理:1、修改资料 2、部门管理 3、 普通用户 4、添加用户 5、超管管理 6、添加超管。(用户分类:注册用户[普通][高级][特级]、小类管理员、大类管理员、总栏管理员、文章审核员、系统管理员,超级管理员,分别拥有不同的权限。) ⑥个人资料:1、修改资料 ⑦系统信息:1、网软志成 2、关于系统 3、 新手上路 4、重新登录 5、退出管理。 ⑧我的博客:(将用户发表的文章归于博客) 学校网站系统全站源代码学校网站模板下载升级内容 1: 全新版面和后台风格 。 2:为整合各种论坛提供良好接口。(可按用户需要选择是否整合论坛) 3:专题页功能加强。 4:大类文章分页显示。 5:加入新闻日历搜索引擎。 6:会员排行可按用户名,注册时间,发文数升降序排列。 7:全新留言板头像,留言可选定是否写给管理员看,并且加入留言审核功能。 8:新闻页快速评论功能,加入新闻阅读签收功能,新闻图片鼠标滚轮缩放功能,新闻标题后评论显示。 9:全新的单位部门设定。 10:增加图片新闻页面。 11:目录结构,文件命名,书写规则规范化。 12:统一了字符过滤代码。 13:栏目菜单分类功能加强。 14:整加页面过度效果设置。 15:附带全新忠网广告管理系统。 16:全新安全补丁。 17:前台用户和后台管理员实现分离,管理员需要再次登陆才能进入管理。 18:后台增加数据库备份压缩,数据恢复,系统空间占用功能,加入阿江ASP探针,附件管理,留言和评论实现独立管理,用户管理增加查找功能。增加其它一些实用小工具。 19:后台网站属性设置增加自定义Bottom菜单,是否开启注册用户签收功能。 20:初始化时可选择部份初始化,统计数据可以初始化。 21:全新的个人用户 博客 功能 22:全面支持RSS聚合新闻 XML 功能 23:全面修改总栏、大类、小类叶面,总栏、大类可分别设置不同模版 24:附件上传按后缀,时间分别建立目录 25:全面支持无大类、无小类文章,各级页面均支持模板 26:最新添加单位稿件统计(旧版本升级请后台运行Tools_UpdateDB-11-6.asp升级数据库) 27:其他错误修正 29:首页田字格小图片数量选择 29:后台1~3级菜单选择 30:系统设置不启用分级时打开新闻页空白补丁 31:新闻全部显示最新补丁 32:后台管理修正小BUG 33:忠网弹出广告修正 34:后台2处管理权限修正 35:上传漏洞补丁包, 远程非法提交,权限提升,SQL注入漏洞,完全补丁,以及其他小功能增强 36:远程非法提交,权限提升,SQL注入漏洞修正补修正,以及新闻上下篇功能及top透明广告条支持 37:添加无大小类文章BUG修正,其他小问题。top.asp自动换行(可选) 38:留言簿恶意广告攻击漏洞修正(IP过滤,留言验证码),后台文章检索,有情连接申请漏洞 . 39:增加了导航菜单的外部链接功能。 40: 整合了OA办公登录口,在首页可以直接登录。 41:整合邮局登录入口。 42:增加了视频点播功能,可以在后台设置是否显示视频点播。 43: 增加了后台专业设置,可增加,修改,删除招生专业。 44: 增加了前台的网上报名表单,后台可查看,处理学生报名信息。 45: 学校网站全站DIV+CSS控制,修改网站整体风格很方便。 46:增加了留言,举报,建议的审核才在前台显示功能。
软件介绍: 大型学校网站源码学校网页模板正式版,学校网站管理系统源码,学校模板正式版,学校网站管理系统全站源码正式版,后台管理从前台网站输入http://***.***.***/login.asp 进入后台管理管理员:admin 登陆密码:admin 学校网站管理系统源码,强大的免费学校网站后台管理系统,漂亮的学校网页模板,模版,完全为学校风格,功能设计的一套,学校网站建设的程序,网站系统.学校模板正式版,针对各类学校,教学,教研单位实现电子教学教育和电子学校,学校上网,学校信息化的需求进行定向开发的学校网站模板,模版,适用于幼儿园网站,小学学校网站,初中学校网站,中学学校网站,职业技术学院网站的学校网站模板现提供下载了,最为成熟通用的asp学校网站源码和自带的学校网页模板,也适合于建立学院网站,职业学校网站,培训学校网站,大学学校网站,大专学校网站,高职高专学校网站,电脑学校网站的学校网站建设中的智能网站程序,提供全部网站程序代码,其中的学校网站源代码也规范化,可理解,以更好的修改,扩展学校网站的功能和版面.职业学校,培训学校,技术学校,中职学校网站,技术学校网站管理系统正式版,教育局网站,政府教育部门网站,教育教学事业单位,私立学校网站,民办学校网站进行网站建设的网站系统.是一套功能完善的优秀的学校网站源代码。提供学校网站系统模板设计,源代码下载,正式版本,功能完全开放。 信息时代,各级教学教育,公立私立民办学校部门,需要一个动态网站,实现学校介绍,学校概况,学校信息,教务公开,学校动态,学校规章制度,政策法规,和家长学生互动,学校信息,校园风光网上介绍,名师风采,办学成就介绍,校园刊物网上电子版,学校的教学科研信息,教研组,课题课件等都可在学校网站系统里面实现,学校的德育教育,如行为考评,政策法规,德育服务,家长学校,心理辅导,在学校网站管理系统也有相关的栏目,学生园地展示学生作品,学校留言本,聊天室,学校论坛,可给教师,学生,家长一个沟通的平台等学校教学教育科研,教研事业单位性质的网站,做适合新时代的电子教学,网络学校,网络教学,信息化学校网站管理系统. 完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp+ACCESS的完美结合,高效的页面执行效率,特别优化系统安全性能,可令你在学校茫茫网海中一支独秀。学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上 办公,提高效率,了解民众呼声提供全站程序. 系统自身具有强大、完备的网站后台管理功能,功能全面,操作简易。系统前台的栏目、菜单、功能入口等全部实现后台控制,用户只需在后台进行简单的设置即可制作出适合于自身学校的网站系统。 我们将推出更多的学校机构网站,学校网站管理系统,做中国最好,易用,安全的学校上网,学校信息化网站系统, 学校网站管理系统源码正式版 一款非常适合学校建站的好程序,为学校单位量身订制,您不要网站开发语言,只要设置网站信息就可以做出自己的学校网站。 学校网站管理系统正式版前台功能介绍: 功能介绍: 1、系统管理: 网站属性、功能设置、模版编辑、部门管理、用户管理、超管管理、系统初始、管理工具、退出管理。 2、附加管理: 专题管理、评论管理、留言管理、文章审核、文章检索、投票管理、公告管理、友情链接、广告管理、备份压缩、阿江探针、附件管理。 3、图文管理: 文章管理、添加文章、我的文章。 4、个人事务: 个人资料、 超级年历。 5、系统信息: 官方、新手上路、重新登录、退出管理、关于系统。 学校网站管理系统源码正式版升级内容 1: 全新版面和后台风格 。 2:为整合各种论坛提供良好接口。(可按用户需要选择是否整合论坛) 3:专题页功能加强。 4:大类文章分页显示。 5:加入新闻日历搜索引擎。 6:会员排行可按用户名,注册时间,发文数升降序排列。 7:全新留言板头像,留言可选定是否写给管理员看,并且加入留言审核功能。 8:新闻页快速评论功能,加入新闻阅读签收功能,新闻图片鼠标滚轮缩放功能,新闻标题后评论显示。 9:全新的单位部门设定。 10:增加图片新闻页面。 11:目录结构,文件命名,书写规则规范化。 12:统一了字符过滤代码。 13:栏目菜单分类功能加强。 14:整加页面过度效果设置。 15:附带全新忠网广告管理系统。 16:全新安全补丁。 17:前台用户和后台管理员实现分离,管理员需要再次登陆才能进入管理。 18:后台增加数据库备份压缩,数据恢复,系统空间占用功能,加入阿江ASP探针,附件管理,留言和评论实现独立管理,用户管理增加查找功能。增加其它一些实用小工具。 19:后台网站属性设置增加自定义Bottom菜单,是否开启注册用户签收功能。 20:初始化时可选择部份初始化,统计数据可以初始化。 21:全新的个人用户 博客 功能 22:全面支持RSS聚合新闻 XML 功能 23:全面修改总栏、大类、小类叶面,总栏、大类可分别设置不同模版 24:附件上传按后缀,时间分别建立目录 25:全面支持无大类、无小类文章,各级页面均支持模板 26:最新添加单位稿件统计(旧版本升级请后台运行Tools_UpdateDB-11-6.asp升级数据库) 27:其他错误修正 29:首页田字格小图片数量选择 29:后台1~3级菜单选择 30:系统设置不启用分级时打开新闻页空白补丁 31:新闻全部显示最新补丁 32:后台管理修正小BUG 33:忠网弹出广告修正 34:后台2处管理权限修正 35:上传漏洞补丁包, 远程非法提交,权限提升,SQL注入漏洞,完全补丁,以及其他小功能增强 36:远程非法提交,权限提升,SQL注入漏洞修正补修正,以及新闻上下篇功能及top透明广告条支持 37:添加无大小类文章BUG修正,其他小问题。top.asp自动换行(可选) 38:留言簿恶意广告攻击漏洞修正(IP过滤,留言验证码),后台文章检索,有情连接申请漏洞 . 39:增加了导航菜单的外部链接功能。 40: 整合了OA办公登录口,在首页可以直接登录。 41:整合邮局登录入口。 42:增加了视频点播功能,可以在后台设置是否显示视频点播。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 51
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员云锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值