Сообщение от monolithed
|
А в чем преимущества по сравнению с тем же RactiveJS, в котором есть все теже возможности шаблонизации (итерирование, условные операции, в.ч. для атрибутов {{ ? : }}, включение блоков, прекомпиляция)?
|
В наследовании, я бы и не начал писать Snakeskin, если бы например в Closure Templates был нужный функционал для наследования. Все остальные директивы просто являются уже обязательным джентельменским набором. В большинстве шаблонизаторов оно либо отсутствует в принципе (привет композиция из кучи подшаблонов), либо выполнено на детсадовском уровне (Dust, Handlebars и т.д.). Нужную мне гибкость давали только XSLT-основанные шаблоны, но меня тошнит от XSLT
Поэтому я сделал по сути свою версию Google Closure Templates, который мне очень нравился, только в отличии от него Snakeskin работает примерно в 1000 раз быстрее (Google Closure Templates реально очень медленно работает), написан на JS, а не Java и реализует крайне мощный механизм наследования. Более того, Snakeskin писался и пишется под один конкретный проект. Ни одна из добавленных фич не была выдумана "сферически", а добавлена исходя из нужд проекта.
Сообщение от monolithed
|
А в чем преимущества по сравнению с тем же RactiveJS, в котором есть все теже возможности шаблонизации (итерирование, условные операции, в.ч. для атрибутов {{ ? : }}, включение блоков, прекомпиляция)?
|
Snakeskin создан, чтобы использоваться не только в окошке браузера, а в любом окружении (это тоже были позаимстовано из Closure Templates). Я использую на сервере, также для генерации доки по jsDoc, для node-webkit приложений. Также Snakeskin дружит с Java.
К тому же, на клиенте Snakeskin не существует, т.к. он отваливается на этапе сборки проекта и мы работаем уже с простыми JS функциями, а для data-binding шаблонизатор нужен элементарный, но никак не 4.5к строк кода, которые в Snakeskin