Underscore.jsとjQueryは互いに補完し合うのですか?[閉まっている]


92

私はJavaScriptを学び始めたばかりで、Underscore.jsjQueryに出会いました。Underscoreは本当にクールに見えますが、jQueryがUnderscoreに似た関数をまだ提供していないのではないかと思います。では、両方を使用する価値はありますか?


6
彼らのホームページの最初のパラグラフは、「jQueryのtuxとBackbone.jsのサスペンダーを使用するのは同点です」と述べています。
Anurag

12
はい、しかし、操作が「補数」という言葉で示しているのは、多くの機能が重複しているため、2つのフレームワークが本当に意味をなしているかということです。たとえば、$。eachと_.eachの違いは微妙であり、それらを混合して一致させようとすると、混乱する原因になります。
BishopZ

1
underscorejsが好きなら、lodash.com
Neil

回答:


78

アンダースコアサイトから取得

これは、jQueryのtux、およびBackbone.jsのサスペンダーと連動するタイです。

アンダースコアはデータ操作により適しており、多くのRubyメソッドをJavaScriptにもたらします。いくつかの交差がありますが、それらを相互に排他的にするには十分ではありません。


53
これは非常にカスタムされたフレームワークのスーツです:P
Anurag


68
  • jQueryはdom操作のほとんどを処理します
  • backbone.jsは、すべてのコードを整理し、jsアプリケーションに構造(mvcパターン)を与えるのに役立ちます
  • underscore.jsは、本当に便利な低レベルのユーティリティを提供します。私が本当にjsアプリに入るまで、このライブラリは必要なかったでしょう(それはbackbone.jsの要件でもあります)

39

アンダースコアは、データ/コードを処理するための合計60の関数を提供します。多くの機能がjQuery、Prototype、script.aculo.usなどの他のライブラリに存在することに同意しています。たとえば、jQueryにはeach、map、find、filter、toArrayなどの関数が存在します。これらはアンダースコアにもあります。これは、ライブラリをjQueryから独立させるためです。

いつアンダースコアを使用するのですか?

現在、Backbone.jsで広く使用されており、1ページのJavaScript Webアプリを作成するためにMVCアーキテクチャを使用しています。underscore.jsの最も重要な機能は、テンプレート機能です(jQueryではできません)。このライブラリには他の多くの便利な関数があり、他のJavaScriptライブラリから独立しています。

Underscoreが提供する関数のリストを以下に示します。

コレクション: それぞれ、マップ、リデュース、リデュースライト、検索、フィルター、拒否、すべて、任意、含める、呼び出す、pluck、最大、最小、sortBy、groupBy、sortedIndex、shuffle、toArray、size

配列: 最初、最初、最後、残り、コンパクト、平坦化、なし、ユニオン、交差、差、uniq、zip、indexOf、lastIndexOf、範囲

関数: bind、bindAll、memoize、delay、defer、throttle、debounce、once、after、wrap、compose

オブジェクト: キー、値、関数、拡張、デフォルト、クローン、タップ、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のアンダースコア関数の1つにすぎないので、これで十分価値がありますか?
ティム・ピーターソン2012

@timpeterson、私はこれを理解しています。_.templateを使用しているだけでなく、bind、bindAll、each、mapなどの関数も多数あります。可能な限り多くの関数を使用できます。
Umesh Patil 2012

3
しかし、バインド、マップ、それぞれがjQueryにあるため、冗長に見えますよね?
ティム・ピーターソン2012

2
jQueryが追加しない)Reduceを使用すると、おそらくそれだけで価値があります。
ロブ・グラント

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.