Тема: Snakeskin
Показать сообщение отдельно
  #117 (permalink)  
Старый 30.06.2014, 23:39
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

DjDiablo, мне кажется ты не понял концепцию моей шаблонки

Шаблон Snakeskin - это функция JavaScript, т.е. когда ты напишешь

{template foo(name)}
    Hello {name}!
{end}


То после трансляции будет

var foo = function foo(name) {
    var __SNAKESKIN_RESULT__ = '',
        $_;

    var TPL_NAME = 'foo';
    var PARENT_TPL_NAME;

    __SNAKESKIN_RESULT__ += ' Hello ';
    __SNAKESKIN_RESULT__ += Snakeskin.Filters.html(Snakeskin.Filters.undef(name));
    __SNAKESKIN_RESULT__ += '! ';

    return __SNAKESKIN_RESULT__;
};


Т.е. это простая функция, которая принимает параметры и плюётся текстом. Никакого data-binding нет и не спроста, т.к. это задача отдельного инструмента. Snakeskin поддерживает сахарный синтаксис для "пометок" для либы, которая будет делать data-binding.

{template foo(name)}
    <input value="{{value}}" />
{end}


А уже с полученным можно юзать любую либу биндинга, например Ractive. Так что Snakeskin - это именно шаблоны, которые сделаны очень качественно (чего не скажешь о блендерах вроде Angular) с охренительной поддержкой для code-reuse.

Пример использования на клиенте:

{template Select.prototype.render(name) extends Input.prototype.render}
    {block dropdown}
        ...
    {end}
{end}


В проекте над которым я сейчас работаю больше 300 клиентских шаблонов, которые работают именно по такому принципу и рендеринг всего добра занимает примерно 1 сек, т.е. Snakeskin проектировался быть быстрым.

Коротко суть.

***

Если решите таки юзать, то я бы рекомендовал подождать релиза новой версии, которую я хочу сделать в конце этой недели, т.к. там будет внедрено очень много фишек
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 30.06.2014 в 23:45.
Ответить с цитированием