Underscore.js和jQuery相互补充吗?

hel*_*hod 92 javascript jquery underscore.js

我刚开始学习JavaScript,偶然发现了Underscore.jsjQuery.Underscore看起来很酷,但我想知道jQuery是否还没有提供类似于Underscore的功能.那么,同时使用它们是否值得?

Gaz*_*ler 78

取自下划线网站:

这与jQuery的tux以及Backbone.js的吊带相关.

Underscore更适合数据操作,并为JavaScript带来了许多Ruby方法.有一些交叉,但不足以使它们互相排斥.

  • 这是一个非常习惯的*诉讼框架:P (53认同)

rkw*_*rkw 68

  • jQuery将处理你的大多数dom操作
  • backbone.js将帮助您组织所有代码并为您的js应用程序提供一些结构(mvc模式)
  • underscore.js将为您提供真正有用的低级实用程序.在我真正进入js应用程序之前,我永远不会需要这个库(这也是backbone.js的要求)


Ume*_*til 39

Underscore提供了总共60个用于处理数据/代码的函数.同意许多功能存在于其他库中,如jQuery,Prototype或script.aculo.us.例如,jQuery中存在像each,map,find,filter或toArray这样的函数.这些也在Underscore中.这是为了使库独立于jQuery.

什么时候使用下划线?:

目前,它与Backbone.js广泛使用,以使用MVC架构来创建单页Javascript Web应用程序.underscore.js最重要的能力是模板化的能力(jQuery无法做到).该库还有许多其他有用的函数,它们独立于其他Javascript库.

在下面找到Underscore提供的功能列表:

集合: each,map,reduce,reduceRight,find,filter,reject,all,any,include,invoke,pluck,max,min,sortBy,groupBy,sortedIndex,shuffle,toArray,size

数组: first,initial,last,rest,compact,flatten,without,union,intersection,difference,uniq,zip,indexOf,lastIndexOf,range

功能: bind,bindAll,memoize,delay,defer,throttle,debounce,once,after,wrap,compose

对象: 键,值,函数,扩展,默认值,克隆,tap,isEqual,isEmpty,isElement,isArray,isArguments,isFunction,isString,isNumber,isBoolean,isDate,isRegExp,isNaN,isNull,isUndefined

Utitity: noConflict,identity,times,mixin,uniqueId,escape,template

  • 在Umesh中,由于_.template只是60个Underscore功能中的一个,这真的足以让它变得有价值吗? (3认同)
  • 但绑定,每个,地图都在jQuery中,所以看起来多余,对吧? (3认同)
  • Reduce([jQuery不会添加](http://bugs.jquery.com/ticket/1886))可能让它自己变得有价值! (2认同)

Dig*_*nDj 9

如果您担心重叠,并且不需要像JQuery AJAX这样的东西,那么您可以考虑仅使用名为Sizzle的JQuery选择器引擎.

http://sizzlejs.com/

请注意,这不适用于所有项目,通过使用Sizzle和Underscore,您将失去一些JQuery功能(如AJAX),您需要考虑您的特定应用程序真正需要的内容.

  • http://projects.jga.me/jquery-builder/此工具可以帮助您删除不需要的jQuery代码.此外,NPM还提供lodash模块 (2认同)