# JS手写模版引擎教学
**Repository Path**: leeyamaster/js-handwriting-template-engine
## Basic Information
- **Project Name**: JS手写模版引擎教学
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-18
- **Last Updated**: 2022-04-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# easy-template
这是我学习编译原理时,自己写的JS模版引擎,为什么写模版引擎呢?因为我看别人的源码,也才三四百行代码,啃起来,也比较容易,所以选择这个,用来练手。在开发的过程中,研究了别人优秀的源码,如:
颜海镜大神的模版引擎(百度知道,58金融在使用)
腾讯的Art(应该用了Webpack,我看变量名都是简写,啃起来难)
借鉴了别人的博客,如:
20行代码实现JavaScript模板引擎:https://blog.csdn.net/weixin_33935777/article/details/91431900,
最简单的JavaScript模板引擎:https://www.cnblogs.com/dolphinX/p/3489269.html
使用方法:
见index.html
学习收获:通过啃源码,让我学会了UMD规范,整个模版引擎的使用过程(啃源码的过程中,我起码写了上百个console.log),模版引擎的原理为:把模版编译成一个方法,再把数据放进方法里,即可生成HTML,就这么简单。也学会了JS的冷门方法,try,catch,这种我都是写后台才用到,with方法,eval方法(以前,看JS大犀牛的时候,认为性能差,并且安全差,所以实际项目开发中,从来不用。没想到在这里竟然能用上),在模版编译成方法的过程中,也涉及到编译原理的基础吧,建议程序员,一定要看编译原理这本书。
使用技巧:
```html
```
```js
```
注意:
data变量必须是对象。
在循环中,forEach不能使用。
在if判断中,里面不能写代码,会被直接编译成字符串。