AngularJS が jQuery よりも強(qiáng)力である場合、なぜそれほど強(qiáng)力なのでしょうか?
認(rèn)證高級PHP講師
上記の答えは明らかに不合理です。私が ng を使用したことがないからかもしれません。ng が jq よりも強(qiáng)力である主な理由は次のとおりです。
Jquery は dom を手動で操作して要素を変更します。ng がデータを変更すると、自動的に dom に同期されます。 たとえば、表示するリストがあります:
リーリー
ng コード: $scope.list = [1,2,3],
リスト $scope.list[2] = 4
を変更します
$scope.list = [1,2,3],
修改list $scope.list[2] = 4
dom的ul第3個(gè)li就自動變成4了
而jq,代碼大概需要:
<ul ng-repeat="i in list"><li>{{i}}</li></ul>
說白了就是ng執(zhí)行要把數(shù)據(jù)修改了html就自動變了,jq的話修改數(shù)據(jù)了還需要自己修改html
而且,ng中,html(比如表單的input的value)變了后,數(shù)據(jù)自動變了,而jq還需要var data = $('input').val();
jq の場合、コードは次のようにする必要があります:
端的に言うと、ng実行中にデータを修正すると自動的にhtmlが変更されてしまいますが、jqでデータを修正しても自分でhtmlを修正する必要があります
。 さらに、ng では html (フォームの入力の値など) が変更された後、データが自動的に変更されますが、jq ではvar data = $('input').val();
も必要です。コード>これはデータの雙方向バインディングと呼ばれます。 ?? ??もちろん、NG は単一ページのアプリケーションにのみ適しており、SEO には役に立ちません。これは別の問題です??。
まず第一に、この 2 つはあまり比較できません。jquery の焦點(diǎn)は、開発者がページを迅速に開発できるように、さまざまな要素の選択と要素を選択するさまざまな方法を提供することです。しかし本質(zhì)的には、それはプログラムのフレームワークではありません。さらに、多くのセレクター アングルはネイティブ ツールを使用して直接実裝できますが、Angular はデータとページの自動バインディングによってもたらされる開発の利便性を重視しており、ページのインタラクションが比較的少なく、データのプレゼンテーションに重點(diǎn)を置くシナリオに適しています。 . 以下を使用します。
したがって、lz が比較したい場合、実際に比較する必要があるのは、backbone と angular です。
私が長い時(shí)間をかけて書いた Markdown エディターのコードのほとんどは、実際には AngularJS をほんの少し実裝しただけで、jQuery の多くの関數(shù)を自分ですぐに書いて実裝しました。
jQuery のコア コードを読んだ後、jQuery は記述スタイルを提供するのに対し、AngularJS は本當(dāng)に強(qiáng)力であり、自分で実裝するのは難しいと感じました。JS の欠けている部分により、新しい考え方が開かれます。
もちろん、jQuery と AngularJS は異なることに焦點(diǎn)を當(dāng)てており、それぞれの分野で獨(dú)自のアプリケーションを持っています。
自分で実裝する難易度という點(diǎn)だけで言えば、AngularJS は jQuery よりも優(yōu)れています。
jQuery はコードに重點(diǎn)を置き、AngularJS はアーキテクチャと機(jī)能に重點(diǎn)を置きます。
參考: http://damoqiongqiu.iteye.com/blog/1926475 https://angularjs.org/
http://jquery.com/
機(jī)能的に言??えば、これら 2 つはまったく比較できません。
コード全體の書き方を見ると、jqueryの方が上品に書かれているように感じます。しかし、実際には絶対というものはなく、結(jié)局は人それぞれ違います。
実際には比較の余地はありません。jQuery は DOM を操作するための単なるクラス ライブラリですが、AngularJS は MVC (または MVVM) フレームワークです。
AngularJS は View とデータの完全な分離を?qū)g現(xiàn)しており、AngularJS が提供する雙方向データバインディング機(jī)能により、データが変更される限り常に View が同期されます。 基本的に DOM を手動で操作する必要はありません。
もちろん、AngularJS は雙方向のデータ バインディング機(jī)能に加えて、ルーティング、サービス、フィルター、テンプレート、命令、モジュール管理、依存関係の注入、単體テストなどの機(jī)能も提供します。
これを言って、この 2 つの違いを直感的に理解できるかどうかはわかりません。
この質(zhì)問は、ハンマーがドライバーより強(qiáng)いかどうかを?qū)い亭毪瑜Δ胜猡韦扦?。?qiáng)さは何ですか?
コンセプトが異なるため、どちらがより強(qiáng)力であるかを判斷することはできません。これらはすべて非常に便利なツールです。
jqueryui と angularjs を比較して、それがばかばかしいと思う人もいます
Angular は開発全體のフレームワーク モデルであり、どのような種類のフレームワークであっても、その実裝を支援するツールが必要です。現(xiàn)時(shí)點(diǎn)では、jquery がツールとして大きな役割を果たしており、非常に使いやすいです。アーミーナイフ、笑、つまり、Angular はフレームワークであり、JQuery はさまざまなレベルでの作業(yè)を擔(dān)當(dāng)します。もちろん、多くの人はこれが非常に強(qiáng)力であると考えています。 、この機(jī)能は構(gòu)造が弱く、インタラクションが弱いページでは非常に便利なので、複雑な構(gòu)造とインタラクションが強(qiáng)いページでは、Angular のバインディング機(jī)能の利點(diǎn)はすぐに役に立たなくなります。私の作品を例に挙げると、Angular はフレーム構(gòu)造、フレームせん斷構(gòu)造、レンガコンクリート構(gòu)造を含む家の建築構(gòu)造として理解され、jquery は住宅の裝飾スタイルとして理解されます。ヨーロッパ、モダン、東南アジアのスタイルを含む、この 2 つは獨(dú)立したものであり、対立や選択的な比較は存在しないことがお分かりいただけたでしょう。
1 つは MVC フレームワークで、もう 1 つはライブラリです。 1 つは設(shè)計(jì)アイデアを外部に反映し、もう 1 つはネイティブ JS を簡素化および強(qiáng)化します。 jq を使用して獨(dú)自のフレームワークを?qū)g裝することもできます。したがって、比較の余地はありません。
AngularJS により、チーム メンバーに JS 能力がない場合でも、Java 開発者がこの部分をより適切に作成できるようになりました。
js 機(jī)能が不足し、DOM 操作に熟練していないプログラマーには、非効率的だが一見使いやすそうなフレームワークである AngularJS が必要です
つまり、率直に言うと、AngularJS は、JavaScript 機(jī)能が不足し、フレームワークに大きく依存している Java プログラマーにとっては役に立たないソリューションです。
AngularJS は、非常にパフォーマンスを必要とする、ページを作成する場所に適している重量級のフロントエンド フレームワークです。パフォーマンスとインタラクションは高くありません;
要約: フロントエンドを理解していないプログラマーは、フロントエンドかバックエンドかに関係なく、常にバックエンドの考え方をフロントエンドに持ち込もうとします。AngularJS は、フロントエンドを理解していないプログラマーにとっての妥協(xié)的な解決策です。フロントエンドの技術(shù)的思考
比較は単なる比較です。比較するにはあまりにも多くの側(cè)面があります。jQuery に慣れ親しんでから Angular を?qū)Wぶまでに、このプロセスを必ず経験することになります。それ自體には多くの傾向があり、jQuery の代わりに angular を使用する人が増えています。これは、どちらがより強(qiáng)力であるかを示している可能性がありますが、私は jQuery を好みます。