art-template 是一个简约、超快的模板引擎。
它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器
模板
art-template 同时支持两种模板语法。标准语法可以让模板更容易读写;原始语法具有强大的逻辑处理能力。
标准语法
{{if user}}
<h2>{{user.name}}</h2>
{{/if}}
原始语法
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
渲染模板
var template = require('art-template');
var html = template(__dirname + '/tpl-user.art', {
user: {
name: 'aui'
}
});
核心方法
// 基于模板名渲染模板
template(filename, data);
// 将模板源代码编译成函数
template.compile(source, options);
// 将模板源代码编译成函数并立刻执行
template.render(source, data, options);
安装
npm install art-template --save
使用
//引入http服务模块
let http=require('http');
//引入文件系统模块
let fs=require('fs');
//引入地址解析模块
let url=require('url');
//引入art-template模板
const artTemplate=require('art-template');
//申明变量
let user={name:'小明',age:18};
//创建服务
http.createServer((req,res)=>{
//设置编码
res.setHeader('Content-Type','text/html;charset=utf-8');
//得到请求地址
let {pathname,query}=url.parse(req.url,true);//使用了ES6的解构
//读取数据
fs.readFile('./test.html','utf-8',(error,data)=>{
if (error) throw error;
//将数据渲染到页面
let datas=artTemplate.render(data.toString(),{user:user});
//返回页面
res.end(datas);
});
}).listen(4000,()=>{//设置端口号并启动服务器
console.log(new Date())
});
页面信息
测试结果
如果想要里面的属性就直接点
使用if
结果
使用循环
//申明数组
let userList=[{name:'小明1',age:18},{name:'小明2',age:28},{name:'小明3',age:38},{name:'小明4',age:48},{name:'小明5',age:58}];
//将数据渲染到页面
let datas=artTemplate.render(data.toString(),{user:user,userList:userList});
页面代码
结果
注:if判断和each循环有开始标签,也要有结束标签