Fasty — более быстрый шаблонизатор на JavaScript
Fasty — это простой и очень быстрый шаблонизатор, который использует специальное решение для кэширования при рендеринге шаблонов, достигая производительности во время выполнения, близкой к пределам JavaScript. В то же время он поддерживает как NodeJS, так и браузер.
Скорость рендеринга Fasty в 100+ раз выше, чем у других шаблонизаторов JavaScript.
Использование 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);
// результат: text... hello fasty kiss~~
// #1 Переменная
{{~ var x = 100}}
{{x}}
//вывод: 100
// #2 строка
{{"hello world"}}
//вывод: hello world
// #3
{{1+2+3}}
//вывод:6
{{100 / 100}}
//вывод:1
{{10%3 * 100}}
//вывод:100
// #4 escape
{{! "<div> hello world </div>"}}
//вывод: <div> hello world </div>
// #5 unescape
{{@ "<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}}
// #5
{{~ const a =100}}
// #6
{{~ const a =100,b=200,c=300}}
// #1
{{~ if (x == 100) }}
{{~ elseif(x == 200) }}
{{~ else if(x == 300) }}
{{~ else}}
{{~ end}}
// #2
{{~ if (x == 200) }}
output....
{{~ /if}}
- оба поддерживают 'elseif' или 'else if'
- поддерживают использование {{~ /if}} для завершения
// #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 }}
// #9
{{~ for (var x = i;x < someMethodInvoke().other();x++) }}
{{~ /for }}
- поддерживают использование {{~ /for}} для завершения
// #1
{{a?.b?.c}}
// #2
{{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
shareDataFirst: false,
//по умолчанию true, но не поддерживается IE
safelyAccess: true,
//поддерживает объекты окна, по умолчанию false
windowObjectEnable: false,
//какие объекты окна поддерживаются, по умолчанию null
//тип данных: массив, например: ['$','JQeury']
windowObjects: null,
//имя корневого параметра метода render()
rootParaName:'$DATA',
//пользовательский метод экранирования
$escape:function
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )