# 一个轻量的模板引擎
一个轻量的模板引擎,语法简洁,性能高效
# 开始
npm install mini-render --save
// 或者
<script src='miniRender.js'></script>
# 定义一些数据
<div id="box">...</div>
var data = {
gt: 7,
lt: 6,
first: 'first',
array: [1,2,3],
object: {
key1: 'value1',
key2: 'value2'
},
word: 'aaaaa',
empty: undefined
}
// 渲染元素模板
miniRender.renderElement('#box', data)
// 也可以返回渲染结果
var str = miniRender.renderString('<div>{{word}}</div>', data)
console.log(str)
# 渲染
<p>{{ first }}</p>
<!--结果:
<p>first</p>
-->
- 支持三元运算
<p>{{ gt > 8 ? gt : 8 }}</p>
<!--结果:
<p>8</p>
-->
# 过滤
<p>{{ word | toUpperCase }}</p>
<!--结果:
<p>AAAAA</p>
-->
<script>
// 注册过滤器
miniRender.filter('toUpperCase', function(val){
return val.toUpperCase()
})
// 移除过滤器
miniRender.removeFilter('toUpperCase')
</script>
过滤器仅可用在上边这种普通的取值中
# 判断
{{IF gt > lt}}
<p>gt比较大:{{gt}}</p>
{{ELSEIF lt < gt}}
<p>lt比较小:{{lt}}</p>
{{ELSE}}
<p>都不成立</p>
{{/IF}}
<!--结果:
<p>gt比较大:7</p>
-->
# 循环
<!--数组-->
{{EACH item, index IN array}}
<p>索引:{{index}} 值:{{item}}</p>
{{/EACH}}
<!--结果:
<p>索引:0 值:1</p>
<p>索引:1 值:2</p>
<p>索引:2 值:3</p>
-->
<!--对象-->
{{EACH val,key IN object}}
<p>属性名:{{key}} 属性值:{{val}}</p>
{{/EACH}}
<!--结果:
<p>属性名:key1 属性值:value1</p>
<p>属性名:key2 属性值:value2</p>
-->
(完)