Fasty: быстрый и простой шаблонизатор на JavaScript
Fasty — это быстрый и простой шаблонизатор на JavaScript, который использует уникальную технологию кэширования для достижения высокой производительности, близкой к пределу возможностей JavaScript. Он поддерживает работу в NodeJS и браузере.
Производительность Fasty более чем в 100 раз выше, чем у многих других шаблонизаторов.
Особенности Fasty:
{{ }}
для вывода и {{~ }}
для логических операций.Использование:
Пример 1:
var template = '<div> hello {{ name }} </div>'
var data = {name: "fasty"}
var fasty = new Fasty();
var result = fasty.render(template,data);
// результат: <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
Вывод:
{{~ var x = 100}} {{x}}
.{{"hello world"}}
.{{1+2+3}}
, {{100 / 100}}
, {{10 % 3 * 100}}
.{{! "<div> hello world </div>"}}
.{{@ "<div> hello world </div>"}}
.Определение переменных:
{{~ var a =100}}
,{{~ var a =100,b = 200,c=300}}
,{{~ let a =100}}
,{{~ let a =100,b=200,c=300}}
,{{~ const a =100}}
,{{~ const a =100,b=200,c=300}}
.Условные операторы if-else:
if
: {{~ if (x == 100) }}
.if
: {{~ if (x == 200) }} output.... {{~ /if}}
.Цикл for:
for of
: {{~ for (item of array) }} {{~end}}
.for in
: {{~ for (item in array) }} {{~end}}
.for let
и for const
: {{~ for (let item of array) }} {{~end}}
, {{~ for (const item in array) }} {{~end}}
.{{~ for (key of Object.keys(item) )}} {{~end}}
.for
: {{~ for (var x = i;x < 100;x++) }} {{~ end }}
, {{~ for (item of someMethodInvoke().other()) }} {{~end}}
, {{~ for (var x = i;x < someMethodInvoke().other();x++) }} {{~ end }}
.Безопасный доступ:
{{a?.b?.c}}
.{{a.bbbb?().ccc?.ddd}}
.Рекурсивный вызов:
var template1 = '{{~for (item of items)}} {{ myRender(item)}} {{~end}}';
var template2 = '{{~for (item of childItems)}} {{ myRender(item)}} {{~end}}';
var fasty = new Fasty({
share : {
//自定义你的递归渲染方法
myRender:function (data){
return fast.render(data,template2)
},
}
});
var data = {
items: [
{
otherAttr: "value1",
childItems: [
{
otherAttr: "value1",
childItems: [],
},
{
otherAttr: "value1",
childItems: [],
},
],
},
{
otherAttr: "value1",
childItems: [
{
otherAttr: "value1",
childItems: [],
},
{
otherAttr: "value1",
childItems: [],
},
],
},
],
};
fast.render(data,template1);
Инициализация конфигурации:
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,
//是否支持直接使用 window 对象,默认值为:false
windowObjectEnable: false,
//поддерживать использование каких window объектов
//например: ['$','JQeury']
windowObjects: null,
//render() 方法传入的数据的 ссылка
rootParaName:'$DATA',
//пользовательский метод html безопасного вывода
//когда используется {{* ... }}
$escape:function (html){return html},
//пользовательский unescape метод
//когда используется {{! ... }}
$unescape:function (value){return value}
}
var fasty = new
``` Фасти (options);
фаст.рендер(темплейт, дата)
Fasty лицензирован в соответствии с условиями MIT License.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )