Должен ли я использовать Underscore-совместимую сборку Lo-Dash при ее использовании с BackboneJS?
Я заметил, что Lo-Dash имеет специальную сборку Underscore, якобы предназначенную для устранения различий в аргументах/операциях функций (поскольку Lo-Dash является надмножеством Underscore, я полагаю, что в Lo-Dash отсутствуют функции Underscore).
Я также заметил, что BackboneJS можно использовать с Underscore или Lo-Dash.
Мой вопрос: было бы неразумно использовать "нормальную" сборку Lo-Dash с BackboneJS? Я не могу найти никаких признаков того, делают ли люди это в дикой природе, но это кажется плохой идеей, особенно если BackboneJS полагается на функции, которые могут быть разными в этих сборках. В то же время было бы неплохо использовать некоторые из более новых функций в Lo-Dash, поэтому я не хотел бы пропускать их, если это не обязательно.
Ответы
Ответ 1
[edit] Из личного опыта после использования lodash в течение довольно долгого времени, я нахожу, что различия не слишком большие сделки. Я бы предложил вам использовать обычную сборку, но если вы не хотите рисковать, перейдите в сборку compat.
Чтобы узнать ответ, см. эту страницу wiki, в которой суммируются различия между строкой Lo-Dash подчёркивания и простой Lo-Dash:
https://github.com/lodash/lodash/wiki/build-differences
Создание подстроки (включает в себя сборку Backbone, которая является подмножеством сборки Underscore)
-
Интуитивно понятная цепочка Lo-Dashs заменяется стилем явного цепочки Underscores Метод _.chain
все еще существует, если вы хотите его использовать.
- Метод
_.each
не выходит раньше, если обратный вызов возвращает false
- Метод
_.defaults
и _.extend
перебирает унаследованные свойства исходных объектов
- Дополнительные функции удаляются из таких методов, как
_.contains
, _.omit
, _.pick
и _.template
Ответ 2
Обычно я рекомендую попробовать Lo-Dash как первый. Если у вас есть проблемы, вы можете вернуться к сборке Underscore. Это касается новых проектов или тех, которые уже используют Underscore и хотят изменить.
Вы также можете использовать утилиту сборки и сказать, что создайте версию Lo-Dash, которая использует стиль цепочки Underscore с чем-то вроде lodash -d plus=chain
.
Ответ 3
Я лично использую require.js для загрузки underscore/lodash. Таким образом, в моем приложении базовая система не знает, является ли это подчеркиванием или lodash, пока я передаю "_" с помощью AMD.
Я начал использовать lodash только потому, что, я читал lodash, имеет лучшую производительность. Я уверен, вы обнаружите, что если вы используете Google underscore против производительности lodash. До сих пор я не видел никаких недостающих функций в lodash.
В любом случае у меня есть возможность изменить его обратно, чтобы использовать Underscore с одной строкой изменения кода в файле конфигурации "Требовать"...