Underscore.js와 jQuery는 서로를 보완합니까? [닫은]


92

저는 JavaScript를 배우기 시작했고 Underscore.jsjQuery를 우연히 발견했습니다 . Underscore는 정말 멋져 보이지만 jQuery가 Underscore와 유사한 기능을 제공하지 않는지 궁금합니다. 그렇다면 둘 다 사용하는 것이 가치가 있습니까?


6
홈 페이지의 첫 번째 단락은 "jQuery의 턱시도 및 Backbone.js의 멜빵과 함께 어울리는 넥타이입니다."라고 말합니다.
Anurag

12
그렇습니다.하지만 op가 "보완"이라는 단어로 나타내는 것은 많은 기능이 겹치기 때문에 두 프레임 워크가 실제로 합리적이라는 것입니다. 예를 들어, $ .each와 _.each의 차이는 미묘하기 때문에 둘을 섞어 맞추려고 할 때 혼란스러워 할 수 있습니다.
BishopZ

1
당신이 underscorejs를 좋아하는 경우에, 당신은 정말 사용해야 lodash.com

답변:


78

밑줄 사이트 에서 발췌 :

jQuery의 턱시도, Backbone.js의 멜빵과 어울리는 넥타이입니다.

Underscore는 데이터 조작에 더 적합하며 많은 Ruby 메소드를 JavaScript로 가져옵니다. 일부 교차가 있지만 상호 배타적으로 만들기에는 충분하지 않습니다.


53
그것은 매우 사용자 정의의 소송 프레임 워크 : P
아 누락


68
  • jQuery는 대부분의 DOM 조작을 처리합니다.
  • backbone.js는 모든 코드를 구성하고 js 애플리케이션에 구조 (mvc 패턴)를 제공하는 데 도움이됩니다.
  • underscore.js는 정말 유용한 저수준 유틸리티를 제공합니다. 실제로 js 앱에 들어갈 때까지이 라이브러리가 필요하지 않았을 것입니다 (backbone.js의 요구 사항이기도합니다).

39

Underscore는 데이터 / 코드 처리를 위해 총 60 개의 함수를 제공합니다. 많은 기능이 jQuery, Prototype 또는 script.aculo.us와 같은 다른 라이브러리에 존재한다는 데 동의합니다. 예를 들어 each, map, find, filter 또는 toArray와 같은 함수는 jQuery에 있습니다. 이것들은 또한 밑줄에 있습니다. 이것은 라이브러리를 jQuery와 독립적으로 만들기위한 것입니다.

언제 밑줄을 사용합니까? :

현재는 한 페이지 Javascript 웹 앱을 만들기 위해 MVC 아키텍처를 사용하기 위해 Backbone.js와 함께 널리 사용됩니다. 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

배열 : 첫 번째, 초기, 마지막, 나머지, 압축, 편 평화, 없음, 연합, 교차점, 차이, uniq, zip, indexOf, lastIndexOf, 범위

기능 : bind, bindAll, memoize, delay, defer, throttle, debounce, once, after, wrap, compose

개체 : keys, values, functions, extend, defaults, clone, tap, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

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


3
안녕하세요 Umesh, _.template은 60 개의 Underscore 함수 중 하나 일 뿐이므로 그만한 가치가 있습니까?
팀 피터슨

@timpeterson, 나는 이것을 이해합니다. 하지만 우리는 _.template을 사용하고있을뿐만 아니라 bind, bindAll, each, map 등과 같은 더 많은 기능이 있습니다. 가능한 많은 기능을 사용할 수 있습니다.
Umesh Patil

3
그러나 bind, each, map은 jQuery에 있으므로 중복되는 것처럼 보입니다.
팀 피터슨

2
Reduce ( jQuery가 추가하지 않음 )를 사용하면 아마도 그 자체로 가치가 있습니다!
Rob Grant

9

겹침이 염려되고 JQuery AJAX와 같은 것이 필요하지 않은 경우 Sizzle이라는 JQuery 선택기 엔진 만 사용하는 것이 좋습니다.

http://sizzlejs.com/

Sizzle 및 Underscore를 사용하면 일부 JQuery 기능 (예 : AJAX)이 손실되며 특정 애플리케이션에 실제로 필요한 것이 무엇인지 고려해야합니다.


2
projects.jga.me/jquery-builder 이 도구는 불필요한 jQuery 코드를 제거하는 데 도움이 될 수 있습니다. 또한 lodash 모듈은 NPM
DigitalDesignDj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.