Каковы плюсы / минусы использования усов с Backbone.js? - PullRequest
25 голосов
/ 10 января 2012

Я учу backbone.js для Rails 3 приложения, над которым я работаю.В Backbone используется underscore, который, как мне кажется, имеет собственный встроенный шаблонизатор.

Я читал хорошие вещи об усах, но подумал, стоит ли мне использовать его вместо встроенного шаблонизатора подчеркивания?

Что ты думаешь?

Спасибо

Ответы [ 3 ]

32 голосов
/ 10 января 2012

Я на полпути через свое первое магистральное приложение уровня предприятия. В настоящее время я использую подчеркивание, встроенное в шаблоны, потому что когда я начинал, то, как я учился, было с подчеркиванием ... У меня не обязательно было с ними никаких проблем. Все шаблонные решения довольно просты.

С тех пор я рассмотрел некоторые другие решения и обдумываю переключение, но только потому, что думаю, что некоторые другие решения выглядят чище. Кроме того, некоторые из этих решений обладают чуть большей функциональностью.

Мне нравятся усы из-за более короткого синтаксиса. Выглядит чище. Но я, если я переключусь, думаю, я пойду с Handlebars.js.

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

Я бы не стал так беспокоиться о добавлении другой зависимости, как уже упоминали другие. Правильно выполненные магистральные приложения будут работать молниеносно. : D

Если у вас есть другие вопросы, дайте мне знать. Я действительно наслаждаюсь позвоночником, поэтому я пытаюсь посмотреть отмеченные сообщения. Но серьезно. Руль выглядит законно.

EDIT:

Я также хотел добавить, что документация для руля выглядит более законной, чем подчеркивание ...

18 голосов
/ 10 января 2012

Самым большим минусом, о котором я могу подумать, является то, что вы добавляете еще одну библиотеку, чтобы делать то, что уже делают ваши зависимости.Если вас больше всего беспокоит синтаксис, то следующий фрагмент подскажет использовать аналогичный синтаксис.

_.templateSettings = {
  evaluate : /\{\[([\s\S]+?)\]\}/g,
  interpolate : /\{\{([\s\S]+?)\}\}/g
};
3 голосов
/ 26 июля 2012

Вопрос задает Rails, но не помечен так; таким образом, конфликт конфликтует с языками, использующими подобный усам синтаксис, такой как шаблоны django.

Если шаблон django сначала анализирует блок, он попытается заполнить блоки {{ }} перед тем, как написать JS.

Я использую шаблонный тег verbatim django, который игнорирует блоки {{}} для решения проблемы, но теперь я бы хотел использовать синтаксис по умолчанию <%=%>, чтобы мне не пришлось явно экранировать эти блоки, записанные в движок шаблонов django.

...