与BackboneJS一起使用时,我应该使用与Underscore兼容的Lo-Dash版本吗?

Mat*_*ond 21 javascript backbone.js underscore.js lodash

我注意到Lo-Dash有一个特殊的Underscore兼容构建,表面上是为了解决函数参数/操作的差异(因为Lo-Dash是Underscore的超集,我假设Lo-Dash没有缺少Underscore函数).

我还注意到BackboneJS可以与Underscore或Lo-Dash一起使用.

我的问题:使用BackboneJS的"普通"Lo-Dash构建是不明智的吗?我无法找到人们是否在野外这样做的任何迹象,但这似乎是一个坏主意,特别是如果BackboneJS依赖于这些构建中可能不同的功能.同时,在Lo-Dash中使用一些较新的函数会很好,所以如果没有必要,我不想错过这些函数.

kum*_*rsh 10

[编辑]从使用lodash一段时间后的个人经验,我发现差异不是太大的交易.我建议你使用正常构建,但如果你不想冒任何风险,请使用compat构建.


要了解答案,请参阅此Wiki页面,该页面总结了下划线Lo-Dash构建和普通Lo-Dash之间的差异:

https://github.com/lodash/lodash/wiki/build-differences

Underscore构建(包括Backbone构建,它是Underscore构建的子集)

  • Lo-Dash的直观链接被Underscore明确的链接风格所取代_.chain如果你想使用它,该方法仍然存在.
  • _.each如果回调返回false,则该方法不会提前退出
  • _.defaults_.extend在源对象的继承属性方法迭代
  • 额外的功能是从类似的方法去除_.contains,_.omit,_.pick,和_.template

  • 那么答案是什么?backbone.js是否与普通的Lo-Dash构建一起使用?我不知道我应该从你在这里给出的信息中推断出它. (5认同)

Joh*_*ton 9

我通常建议首先尝试Lo-Dash.如果您遇到问题,可以退回到Underscore compat构建版.这适用于新项目或已经使用Underscore并希望更改的项目.

您还可以利用构建实用程序,并创建一个使用Underscore链接样式的Lo-Dash版本lodash -d plus=chain.


add*_*isu 3

我个人使用 require.js 来加载 underscore/lodash。因此,在我的应用程序主干中,只要我使用 AMD 传递“_”,就不知道它是下划线还是 lodash。

我开始使用 lodash 只是因为我读到 lodash 具有更好的性能。我相信,如果你用 google 搜索 underscore 与 lodash 的性能,你会发现这一点。到目前为止,我还没有看到 lodash 中缺少任何功能。

无论如何,我有幸将其改回使用下划线,并在“Require”配置文件中更改一行代码......