laytpl 精致巧妙的JavaScript模板引擎


Posted in Javascript onAugust 29, 2014

laytpl是一款颠覆性的JavaScript模板引擎,它用巧妙的实现方式,将自身的体积变得小巧玲珑,不仅性能接近极致,并且还具备传统前端引擎的几乎所有功能。所有的变身魔法都由不到1KB的代码创造,这仿佛是一场革命,又或者不是,但毋庸置疑的是,laytpl的确在用最轻量的方式呈现给世人。如果你从未接触这方面的应用,没关系,下面的讲述将会让你迫不及待地选择laytpl,从此更好地把握页面的数据渲染,走上人生巅峰!

laytpl 精致巧妙的JavaScript模板引擎

laytpl优势

•性能卓绝,执行速度比号称性能王的artTemplate、doT还要快将近1倍,比baiduTemplate、kissyTemplate等快20-40倍,数据规模和渲染频率越大越明显
•体积简直小到极致,不足1kb,未来它还会变得更小。
•具备转义等安全机制,比较科学的报错功能
•模版中可任意书写Native JavaScript,充分确保模版的灵活度
•支持应用在Node.js平台
•支持所有古代或现代的主流浏览器

laytpl 精致巧妙的JavaScript模板引擎

使用方式

//第一步:编写模版。你可以使用一个script标签存放模板,如:

<script id="demo" type="text/html">

<h1>{{ d.title }}</h1>

<ul>

{{# for(var i = 0, len = d.list.length; i < len; i++){ }}

    <li>

        <span>姓名:{{ d.list[i].name }}</span>

        <span>城市:{{ d.list[i].city }}</span>

    </li>

{{# } }}

</ul>

</script>

//第二步:建立视图。用于呈现渲染结果。

<div id="view"></div>

//第三步:渲染模版

var data = {

    title: '前端攻城师',

    list: [{name: '贤心', city: '杭州'}, {name: '谢亮', city: '北京'}, {name: '浅浅', city: '杭州'}, {name: 'Dem', city: '北京'}]

};

var gettpl = document.getElementById('demo').innerHTML;

laytpl(gettpl).render(data, function(html){

    document.getElementById('view').innerHTML = html;

});

文档说明

一、模版语法

输出一个普通字段,不转义html:   {{ d.field }}
输出一个普通字段,并转义html:   {{= d.field }}
JavaScript脚本: {{# JavaScript statement }}

二、内置方法

1):laytpl(template);   //核心函数,返回一个对象
   
    var tpl = laytpl(template);
    tpl.render(data, callback);   //渲染方法,返回渲染结果,支持异步和同步两种模式
        a):异步
        tpl.render(data, function(result){
            console.log(result);
        });
       
        b):同步
        var result = tpl.render(data);
        console.log(result);

   
2):laytpl.config(options); //初始化配置
    options是一个对象
    {open: '开始标签', close: '闭合标签'}
   
3):laytpl.v    //获取版本号

注意事项

1.直接引入laytpl.js即可,另外还可直接使用Seajs等模块化加载。
2.无论商业或个人平台都可以任意使用laytpl
3.任何场合下都务必保留来源,请勿剔除laytpl.js头部注释。

官方网站:http://sentsin.com/layui/laytpl/

下载:https://3water.com/codes/207072.html

Javascript 相关文章推荐
Javascript基础教程之数据类型 (数值 Number)
Jan 18 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
Angular-Touch库用法示例
Dec 22 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 Javascript
jQuery动画特效实例教程
Aug 29 #Javascript
jQuery实用函数用法总结
Aug 29 #Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 #Javascript
原生javascript实现的分页插件pagenav
Aug 28 #Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 #Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 #Javascript
jQuery标签替换函数replaceWith()的使用例子
Aug 28 #Javascript
You might like
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python通过索引遍历列表的方法
2015/05/04 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
社区七一党员活动方案
2014/01/25 职场文书
校庆筹备方案
2014/03/30 职场文书
《学棋》教后反思
2014/04/14 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
关于颐和园的导游词
2015/01/30 职场文书
清明扫墓感想
2015/08/11 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis