# fasty
**Repository Path**: fulunyong/fasty
## Basic Information
- **Project Name**: fasty
- **Description**: 一个极快的 JavaScript 模板引擎,支持浏览器和 Node。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 26
- **Created**: 2022-05-26
- **Last Updated**: 2022-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Fasty 一个极快的 JavaScript 模板引擎
Fasty 是一个简约、超快的 JavaScript 模板引擎, 它使用了非常独特(独创的)的缓存技术,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。
> Fasty 的渲染速度,超过了已知市面上的所有 JavaScript 引擎 100 倍以上。
## 使用方法
**示例1**
```javascript
var template = '
hello {{ name }}
'
var data = {name: "fasty"}
var fasty = new Fasty();
var result = fasty.render(template,data);
// result : hello fasty
```
**示例2**
```javascript
var template = ' {{attr}} hello {{ func1(name) }} ---'
var data = {name: "fasty"}
var fasty = new Fasty({
//共享的模板数据 或者 方法
share : {
attr:'text...',
func1:function (v){
return v + " kiss~~"
},
}
});
var result = fasty.render(template,data);
// result : text... hello fasty kiss~~
```
## Fasty 语法
### 输出
```
// #1
{{~ var x = 100}}
{{x}}
// #2
{{"hello world"}}
```
### if-else
```
{{~if (x == 100)}}
{{~else if(x == 200)}}
{{~else}}
{{~end}}
```
### for 循环
```
// #1
{{~for (item of array)}}
{{~end}}
// #2
{{~for (item in array)}}
{{~end}}
// #3
{{~for (key of Object.keys(item))}}
{{~end}}
// #4
{{~for (var x = i;x < 100;x++)}}
{{~end}}
```
### 安全访问
```
#1
{{a?.b?.c}}
#2
{{a.bbbb?().ccc?.ddd}}
```
### 初始化配置
```javascript
var options = {
//共享模板方法和数据
share : {
attr:'text...',
func1:function (v){
return v + " kiss~~"
},
},
// 是否是共享数据优先
// 默认 false,即: render 方法传入的 data 数据优先
shareDataFirst: false, //default is false
//是否开启安全访问,这个功能是使用 Proxy 实现的,不支持 IE 浏览器
//IE 下需要设置为 false
safelyAccess: true,
}
```
## 作者
- Micahel (fuhai999@gmail.com) - 小码科技
- Wechat: wx198819880
## License
Fasty is licensed under the MIT License.