Fasty v1.0.2 发布,一个极快的 JavaScript 模板引擎
Fasty 一个极快的 JavaScript 模板引擎
Fasty 是一个简约、超快的 JavaScript 模板引擎, 它使用了非常独特的缓存技术,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。
Fasty 的渲染速度,超过很多市面上的 JavaScript 引擎 100 倍以上。
Fasty 特点
- 1、极高性能:Fasty 会直接把模板内容编译成 JavaScript 源码执行,而不是使用正则替换,因此,Fasty 的渲染性能超过很多其他模板引擎 100 倍或以上。
- 2、极度简单:Fasty 只内置了输出指令
{{ }}
和 逻辑指令{{~ }}
- 3、非常灵活:Fasty 直接与 JavaScript 打通,比如当我们引用 JQuery 之后,可以直接这样使用
{{ $("#id").text() }}
使用方法
示例1
var template = '<div> hello {{ name }} </div>' var data = {name: "fasty"} var fasty = new Fasty(); var result = fasty.render(template,data); // result: <div> hello fasty </div>
示例2
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}} //输出: 100 // #2 字符串 {{"hello world"}} //输出:hello world // #3 安全输出,对 html 进行 escape {{# "<div> hello world </div>"}} //输出:<div> hello world </div> // #4 强制转换 html 输出 {{! "<div> hello world </div>"}} //输出:<div> hello world </div>
变量定义
#1 {{~ var a =100}} #2 {{~ var a =100,b = 200,c=300}} #3 #{{~ let a =100}} #4 #{{~ let a =100,b=200,c=300}} #4 #{{~ const a =100}} #5 #{{~ const a =100,b=200,c=300}}
if-else
{{~ if (x == 100) }} {{~ elseif(x == 200) }} {{~ else if(x == 300) }} {{~ else }} {{~ end }}
同时支持 'elseif' or 'else if'
for 循环
// #1 {{~ for (item of array) }} {{~end}} // #2 {{~ for (item in array) }} {{~end}} // #3 {{~ for (let item of array) }} {{~end}} // #4 {{~ for (const item in array) }} {{~end}} // #5 {{~ for (key of Object.keys(item) )}} {{~end}} // #6 {{~ for (var x = i;x < 100;x++) }} {{~ end }} // #7 {{~ for (item of someMethodInvoke().other()) }} {{~end}} // #8 {{~ for (var x = i;x < someMethodInvoke().other();x++) }} {{~ end }}
安全访问
#1 {{a?.b?.c}} #2 {{a.bbbb?().ccc?.ddd}}
初始化配置
var options = { //共享模板方法和数据 share : { attr:'text...', func1:function (v){ return v + " kiss~~" }, }, // 是否是共享数据优先 // 默认 false,即: render 方法传入的 data 数据优先 shareDataFirst: false, //default is false //是否开启安全访问,这个功能不支持 IE 浏览器 //IE 下需要设置为 false,同时配置 false 后会得到更高的运行性能 safelyAccess: true, //自定义 html 安全输出方法 //当使用 {{# ... }} 的时候使用该方法转换 $escape:function (html){return html}, //自定义 unescape 方法 //当使用 {{! ... }} 的时候使用该方法转换 $unescape:function (value){return value} } var fasty = new Fasty(options); fast.render(template,data)
作者
- Micahel (fuhai999@gmail.com) - 小码科技
- Wechat: wx198819880
License
Fasty is licensed under the MIT License.
开源地址
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【Codelabs挑战赛—定制消息和配置】HarmonyOS定制告白消息
1.效果如下所示: 点击查看 2.项目介绍: 开发环境:DevEco Studio 3.0 Beta2 3.0.0.800 Empty Ability Template Java 通过此项目,主要是学习如何在HarmonyOS上集成远程配置、应用内消息、AppLinking链接、云存储和分析服务等技术。 3.项目结构: 4.在Gradle文件中设置AppGallery Connect的相关依赖和SDK包: a) 设置项目级 build.gradle: apply plugin: 'com.huawei.ohos.app' buildscript { repositories { maven { url 'https://repo.huaweicloud.com/repository/maven/' } maven { url 'https://developer.huawei.com/repo/' } } ... dependencies { classpath 'com.huawei.ohos:hap:3.0.5.2' classpath 'co...
- 下一篇
eKuiper 1.5.0 发布:实现无缝式工业数据采集 + 边缘流处理
eKuiper 项目填补了边缘端实时计算的空白,在工业物联网、车联网等领域得到了越来越广泛的应用。根据 GitHub、微信群、论坛等多个渠道收集到的大量用户反馈,我们对 eKuiper 的易用性和可靠性进行了持续提升,并于近日正式发布了 1.5.0 版本。 本次更新主要亮点有: SQL 改进:用于定义数据流和分析规则的 eKuiper 核心功能 SQL 提供了包括变化监测函数以及 object_construct 函数等在内的更多内置函数,提升了表达能力; 生态连接:提供内置的 Neuron 连接支持,可以轻松处理 Neuron 生态中的数据;同时通用的 SQL 插件可以接入多种传统 SQL 数据库,一定程度上实现批数据的流式处理。 运维和文档改进:规则运行时稳定性提升,支持按需编译。文档的导航结构重构,阅读体验和查询效果提升。 社区站网址:https://ekuiper.org/zh GitHub 仓库:https://github.com/lf-edge/ekuiper Docker 镜像地址:https://hub.docker.com/r/lfedge/ekuiper 生态连接...
相关文章
文章评论
共有0条评论来说两句吧...