[TOC]
# 插件-t 模板渲染
提供模板工具.快速操作html和数据,不再拼接字符串啦
## 特性
* 极其快速
* 自定义定界符 (custom delimiters)
* 运行时求值 (runtime evaluation)
* 运行时插值 (runtime interpolation)
* 编译时求值 (compile-time evaluation)
* 支持局部模板
* 支持条件语句
* 数组迭代器
* 编码
* 控制空白字符 - 全去或保留
* 流式友好 (streaming friendly)
* 轻逻辑或者重逻辑,由你决定
## 使用方法
### 全自动版本
1.准备一下模板
```html
<div id="append-to-here">
希望把内容放在这里
</div>
<script type="text/html" id="test" target="#append-to-here" position="replace">
<strong>user:{{= t.user }}</strong>
<p>tel:{{= t.tel }}</p>
<p>time:{{= t.time }}</p>
</script>
```
2.根据节点生成模板
```javascript
// 读取生成模板
var tmpl = v.t('#test')
// 把数据传递给模板,进行自动渲染吧
tmpl.render({user:'vace',tel:18800000000,time:new Date()})
```
### 纯手动版本
```javascript
// 模板字符串
var tmplStr = '<p><strong>user:{{= t.user }}</strong><strong>user:{{= t.tel }}</strong></p>'
// 读取生成模板
var tmpl = v.t(tmplStr)
var result = tmpl.render({user:'vace',tel:18800000000,time:new Date()})
document.querySelector('#append-to-here').innerHTML = result
```
## API 以及说明
* `{{ }}` 用于求值(evaluation)
* `{{= }}` 用于插值(interpolation)
* `{{! }}` 用于编码求值
* `{{# }}` 用于编译时求值/引入和局部模板
* `{{## #}}` 用于编译时定义
* `{{? }}` 条件语句
* `{{~ }}` 数组迭代
## 例子
### 例子1
**模板**
```html
{{ for(var prop in it) { }}
<div>{{=prop}}</div>
{{ } }}
```
**数据**
```json
{
"name":"Jake",
"age":31,
"mother":"Kate",
"father":"John",
"interests":[
"basketball",
"hockey",
"photography"
],
"contact":{
"email":"jake@xyz.com",
"phone":"999999999"
}
}
```
**结果**
```html
<div>name</div>
<div>age</div>
<div>mother</div>
<div>father</div>
<div>interests</div>
<div>contact</div>
```
### 例子2
**模板**
```html
{{? it.name }}
<div>Oh, I love your name, {{=it.name}}!</div>
{{?? it.age === 0}}
<div>Guess nobody named you yet!</div>
{{??}}
You are {{=it.age}} and still don't have a name?
{{?}}
```
**数据**
```javascript
{"name":"Jake","age":31}
```
**结果**
```html
<div>Oh, I love your name, Jake!</div>
```
### 例子3
**模板**
```html
{{~it.array :value:index}}
<div>{{=value}}!</div>
{{~}}
```
**数据**
```json
{"array":["banana","apple","orange"]}
```
**结果**
```html
<div>banana!</div><div>apple!</div><div>orange!</div>
```
- 前端篇
- 常用知识点
- 表单处理
- 前后端分离
- 提供模板渲染工具
- 页面优化
- css3动画部分
- 前端工程与模块化框架
- 服务器XML标签用法
- 微信JSSDK
- 小技巧
- 纯CSS实现自适应正方形
- 通用媒体查询
- css 黑科技
- H5性能优化方案
- 10个最常见的 HTML5
- 常见坑
- 资源收集
- 前端组件化开发实践
- 应用秒开计划
- AJAX API部分
- 静态资源处理优化
- 后端篇
- 微信对接与管理
- 微信消息处理
- API插件开发
- Plugin开发
- 后端插件开发
- 组件开发
- XML标签开发
- RESTFUL设计
- Admin GUI
- 设计篇
- 设计规范
- 微信开发库v.js
- 使用方法
- 微信JSSDK集成
- 调试面板使用
- 插件-http功能
- 插件-layer弹出层
- 插件-music 音乐播放器
- 插件-store 本地存储
- 插件 emitter 事件管理器
- 插件-shake 摇动功能
- 插件-lazyload 延迟加载
- 插件-t 模板渲染
- 插件-ani 动画功能
- 插件-is 类型侦测器
- 插件-ease 缓动函数库
- 插件-os 设备检测
- 插件 $ 类Jquery插件
- 插件-md5 散列计算
- 插件-svg动画loading
- 后台页面成功GUI
- 列表渲染List
- 表单生成Config
- 树状列表Tree
- 排序操作Sort
- Js 风格指南
- Vuep
- 内置动画库
- 组件库
- 内置插件库
- PSD自动切图