JQuery を放棄すべきでしょうか?

JQuery を放棄すべきでしょうか?

序文

私はかつて jQuery が大好きでした。正直に言うと、JavaScript を学ぶ前に jQuery を学びました。つまり、これを書くことで、私はある意味 jQuery を裏切っていることになります。

jQuery を使用すべきでない理由についての記事がたくさんあることは承知していますが、ここでは個人的な経験を共有したいと思いました。

jQuery 以外の場合は何を使うのでしょうか?

Web の発展により、新しいテクノロジーが常に新しいテクノロジーによって推進され、古いテクノロジーは消滅していきます。いくつかのプログラミング言語がかつては栄えていたのに、今では消えてしまったのと同じです。 jQuery も例外ではないと思います。かつては素晴らしいプログラミング体験をもたらしてくれた jQuery ですが、そろそろお別れを言う時が来ています。

jQuery を諦める理由は何ですか? Vue のおかげです!私の以前の記事を読んだことがあるなら、私が Vue.js のファンだということはお分かりいただけると思います。 Vue.js は多くのツールを提供しており、jQuery よりもはるかに便利だと言えます。

DOMとイベント

クリック イベントの例を見てみましょう。

フレームワークの初期化を省略したことに注意してください。

Vue SFC (慌てないでください。これは単一ファイルコンポーネントを意味します):

<テンプレート>
    <button @click="handleClick">クリックして、強く押してください</button>
</テンプレート>

<スクリプト>
    エクスポートデフォルト{
        メソッド: {
            ハンドルクリック() {
                alert('友よ、ボタンをクリックしました');
            }
        }
    }   
</スクリプト>

jQuery で記述すると次のようになります:

<button id="myButton">クリックしてください</button>

<スクリプト>
    $('button#myButton').click({
        alert('今回はjQueryを使用します');
    });
</スクリプト>

Vue.js にはコードが多いと思われるかもしれませんが、それは正しいのですが、間違いでもあります。 Vue.js にはこれ以上のコードはありません。実際、handleClick() { ... } 以外の部分はフレームワークの構造であり、他の動作と共有されています。 Vue.js の方が見た目がきれいで、コードも読みやすいと思います。

まだ疑問が残っているかもしれません。なぜまだ Vue.js を使用しているのでしょうか? それは、鍋がやかんに黒いと言うようなものではないでしょうか?能力があるなら、それを使わないでください!実際には、プレーンな JavaScript を使用してこれを行うことができます。

<button id="myButton">クリックしてください</button>

<スクリプト>
    document.getElementById('myButton').addEventListener('click', function() {
       alert('ネイティブ js からのご挨拶'); 
    });
</スクリプト>

つまり、jQuery は特別なものであるかのように見せかけて、私たちの知らないうちにコードをネイティブ JavaScript に変換するだけです。

DOM 要素の選択に関しては、ネイティブ JavaScript で簡単に行うことができます。

document.getElementById('myButton'); // jQuery => $('#myButton');
document.getElementsByClassName('a'); // jQuery => $('.a');
document.querySelectorAll('.parent .a'); // jQuery => $('.parent .a');

AJAX リクエスト

おそらく、jQuery の最も一般的な用途は AJAX です。
jQuery が $.ajax() を提供し、それぞれ特定の $.post() と $.get() も使用できることは誰もが知っています。これらの API は、AJAX リクエストの送信や結果の取得などに役立ちます。

ネイティブ JavaScript で使用できるメソッドは、XMLHttpRequest と fetch の 2 つです。

XMLHttpRequest も古いアンティークであり、fetch とはまったく同じではありません。

Fetch は XMLHttpRequest よりも新しく、より一般的に使用されており、promise ベースです。

Fetch はデフォルトでは Cookie を送信せず、HTTP ステータス コードが 404 や 500 などのエラー コードを返しても拒否されないため、基本的に .catch() は実行されませんが、response.ok は false になります。

ここでは詳細に比較することはしません。

さらに 2 つのコードを見てみましょう。

jQuery は次のとおりです。

$.ajax({
  メソッド: "POST",
  URL: "http://localhost/api",
  データ: { 名前: "Adnan", 国: "イラン" }
}).done(応答 => console.log(応答))
  .fail(() => console.log('error'));

サンプルコードはjQueryの公式ドキュメントから引用したものです。

フェッチは次のとおりです:

フェッチ(
    'http://localhost/api',
    {
        メソッド: 'POST'
        本文: { 名前: "Adnan", 国: "イラン" }
    }
  ).then(応答 => console.log(応答));

どちらのコードも同じことを行いますが、fetch はどのライブラリにも属していません。

次に示すように、fetch は async/await と組み合わせて使用​​することもできます。

非同期関数 getData() {
    レスポンスを待機してフェッチします('http://localhost/api' {
        メソッド: 'POST'
        本文: { 名前: "Adnan", 国: "イラン" }
    });
    応答を返します。
}

私自身も feth を使用していますか?実はそうではありません。いくつかの理由から、私はそれをあまり信頼していないからです。そこで私は、Promise ベースで非常に信頼性の高い axios というライブラリを使用しています。

上記のコードは、axios を使用して次のように記述されます。

アクシオス({
    メソッド: 'POST'、
    URL: 'http://localhost/api',
    データ: { 名前: "Adnan", 国: "イラン" }
}).then(応答 => console.log(応答))
  .catch(err => console.log(err));

Axios は async/await と組み合わせて使用​​することもできます。

非同期関数 getData() {
    レスポンスを待機します。axios.post('http://localhost/api' {
        名前:「アドナン」
        国:「イラン」
    });
    応答を返します。
}

要約する

私は以前は jQuery が大好きで、プロジェクトを初期化した後、最初に jQuery をインストールしていましたが、今はもう jQuery を使用しません。

他のライブラリやフレームワークの方が jQuery よりも便利かつ簡潔にタスクを実行できるため、jQuery はもう必要ないと思います。

jQuery をベースにしたプラグインは多数あるかもしれませんが、基本的には対応する Vue.js または React.js コンポーネントの代替品があります。

以上がJQueryを捨てるべきかどうかの詳細です。JQueryについてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご注目ください!

以下もご興味があるかもしれません:
  • Vue で jQuery を導入して使用する方法
  • Vue に jQuery 呼び出しを実装させる 2 つの方法
  • jQueryは消滅するのか?リッチテキストを書くのにVueを使わないのはなぜか
  • jQueryとVueの詳細な比較
  • VueプロジェクトへのJQuery-uiプラグインの導入
  • Vue プロジェクトで Jquery-contextmenu プラグインを使用する手順
  • jQuery+vue.js で実装された複数選択ドロップダウン リスト機能の例
  • vue-cli は jQuery、Bootstrap、popper を導入します
  • Angular、Vue、JQueryの違いを詳細に分析
  • VueはjQueryを導入し、指定した位置へのスムーズなスクロールを実現

<<:  セマフォによるTomcatの異常終了の解決方法

>>:  mysql5.7.21 の異常起動を修正する方法

推薦する

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

JavaScript の基本変数

目次1. 変数の概要1.1 変数のメモリへの保存1.2 変数の使用1. 変数を宣言する2. 譲渡3....

a href=# と a href=javascript:void(0) の違いの詳細な説明

a href="#"> リンクをクリックすると、ページがページ上部までスク...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

Vue+swiperでタイムライン効果を実現

この記事では、タイムライン効果を実現するためのvue+swiperの具体的なコードを参考までに共有し...

画像ブラインド表示の効果を実現するための純粋な CSS の例

まず、完成した効果をお見せしましょう 主なアイデア: 実際、このブラインドは一種の手品を使用していま...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析

記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...

初心者向けWebサイト構築ガイド⑥:FlashFXPの詳しい使い方

今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...

JavaScript オブジェクトからプリミティブ値への変換の詳細な説明

目次オブジェクトプロトタイプの値()オブジェクトプロトタイプtoString()シンボル.toPri...

ルートパスワードを変更するための MySQL 設定、MySQL サーバー接続、MySQL 共通コマンド図

1. ルートパスワードの設定と変更mysql が起動しているかどうかを確認します。起動していない場合...

Vueはシンプルなコメント機能を実装します

この記事では、Vueの簡単なコメント機能を実装するための具体的なコードを参考までに共有します。具体的...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...

Angularルーティングアニメーションと高度なアニメーション機能の詳細な説明

目次1. ルーティングアニメーション2. グループクエリとスタガー1. ルーティングアニメーションル...