# 模板技术
模板技术的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的文件内容。
![](https://img.kancloud.cn/8d/9e/8d9e59984a95ecada76acf791e7c4c9e_725x240.png)
# 模板技术原理
模板技术并不是什么神秘技术,干的是拼接字符串的体力活。模板引擎就是利用正则表达式识别模板标识,并利用数据替换其中的标识符。模板技术包含两个方面:
* 定义模板标识符
* 解析模板标识符
~~~
//字符串替换的思想
function tmpl(str, obj) { // 解析模板标识
if (typeof str === 'string') {
return str.replace(/<%=\s*([^%>]+)\s*%>/g, function() {
let key = arguments[1];
return obj[key];
});
}
}
let str = "Hello, <%= name%>"; // 模板内容
let obj = {name: "树先生"}; // 模板数据
console.log(tmp(str, obj))
~~~
# 常用模板技术
模板技术:Pug、Mustache、[EJS](https://www.ejs.co/)、Handlebars,国内的有 baiduTemplate(百度)、[artTemplate](https://aui.github.io/art-template/)(腾讯)、juicer(淘宝)。
- NodeJs
- 01-万维网
- 02-CS 架构 VS BS 架构
- 03-Web 服务器访问流程
- 04-url
- 05-网络传输协议
- 06-HTTP 协议
- 07-报文
- 08-命令行界面
- 09-什么是 Node.js
- 10-环境安装及配置
- 11-JavaScript 代码运行环境
- 12-全局对象
- 13-Buffer
- 14-模块化
- 15-EventEmitter
- 16-path模块
- 17-流式操作
- 18-包
- 19-模板技术
- 20-ejs入门
- 21-express
- 01-什么是express
- 02-Hellow Express
- 03-静态资源服务
- 04-路由
- 05-模块化路由处理程序
- 06-中间件
- 07-手动实现中间件
- 08-常用内置中间件和第三方中间件
- 09-响应
- 10-获取请求参数
- 11-Express 中使用模板引擎
- 22-web存储与安全
- 01-cookie
- 02-sessionStorage
- 03-localStorage
- 04-base64
- 05-https
- 06-同源策略