bonTemplate
- 高效(
100
条数据执行10000
次一共耗时50
多ms,我本机上的测试结果,视电脑配置)
- 轻量(压缩前也才
3K
多)
- 支持循环
- 支持条件判断
- 支持嵌套
- 支持表达式
- 支持自定义格式化函数
- 使用简单,易懂
https://github.com/bonjs/bonTemplate
安装和启动
1 2 3
| git clone https://github.com/bonjs/bonTemplate.git npm install node app
|
或者
1 2
| npm install bonTemplate --save-dev node app
|
或者
1 2
| npm install bon-template --save-dev node app
|
访问http://127.0.0.1:3000
模板
1 2 3 4 5
| <script id=tpl type="html"> <div>{name}</div> <div>{sex}</div> <div>{email}</div> </script>
|
数据
1 2 3 4 5
| var data = { name : 'bonTemplate', sex : 'm', email : 'ske@163.com' }
|
调用方式
1 2 3
| var html = document.getElementById('tpl').innerHTML var str = bon.render(html, data); a.innerHTML = str;
|
可嵌套的循环标签
1 2 3 4 5 6 7 8
| <each userList=u> <div>{u.name}</div> <div>{u.sex}</div> <div>{u.email}</div> <each u.hobbys=h> <label>{h}</label> </each> </each>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| { userList: [ { name : 'bonTemplate', sex : 'm', email : 'ske@163.com', hobbys: [ '吃', '喝', '玩', '乐' ] }, { name : 'bonTemplate', sex : 'm', email : 'ske@163.com', hobbys: [ '吃', '喝', '玩', '乐' ] } ] }
|
条件标签
1 2 3 4 5 6 7 8
| <div> <div>{name}</div> <div>{sex}</div> <div>{email}</div> <if sex == 'm'> 爱好数码 </if> </div>
|
1 2 3 4 5
| { name : 'bonTemplate', sex : 'm', email : 'ske@163.com' }
|
表达式
1 2 3 4 5
| <div> <div>{name}</div> <div>{sex == 'm' ? '男' : '女'}</div> <div>{email}</div> </div>
|
1 2 3 4 5
| { name : 'bonTemplate', sex : 'm', email : 'ske@163.com' }
|
自定义格式化函数
1 2 3 4 5
| bon.addFun({ myFun : function(v) { return v == 'm' ? '男' : '女'; } });
|
1 2 3 4 5
| <div> <div>{name}</div> <div>{sex:myFun}</div> <div>{email}</div> </div>
|
1 2 3 4 5
| { name : 'bonTemplate', sex : 'm', email : 'ske@163.com' }
|
全家桶
1 2 3 4 5
| bon.addFun({ formateEmail: function(email) { return 'Email: ' + email; } })
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <each userList=u> <div>{u.name}</div> <div>{u.sex == 'm' ? '男' : '女'}</div> <div>{u.email:formateEmail}</div> <each u.hobbys=h> <label>{h}</label> </each> <if u.sex == 'm'> 爱好数码 </if> <if u.sex == 'f'> 爱好买衣服 </if> </each>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| { userList: [ { name : 'bonTemplate', sex : 'm', email : 'ske@163.com', hobbys: [ '吃', '喝', '玩', '乐' ] }, { name : 'she', sex : 'f', email : 'fdsafs@163.com', hobbys: [ '吃', '喝', '玩', '乐' ] } ] }
|