ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryプラグインをエンバーアプリケーションに統合する方法
キーポイント
didInsertElement
の代わりにthis.$
を使用して、このコンポーネントのみでプラグインが初期化されていることを確認し、他のコンポーネントに干渉しません。 $
willDestroyElement
jQueryの人気を考えると、特にEmberなどのフレームワークを使用する場合、Web開発の分野で重要な役割を果たしています。頻繁に使用されることは驚くことではありません。このフレームワークのコンポーネントは、プロジェクトで単一の責任を引き受けるように設計されているため、jQueryプラグインに似ています。この記事では、シンプルなエンバーコンポーネントを開発します。このチュートリアルは、jQueryプラグインをエンバーアプリケーションに統合する方法を示しています。このコンポーネントは、プラグインのラッパーとして機能し、画像サムネイルのリストを表示します。サムネイルをクリックするたびに、その大きなバージョンは画像プレビューターに表示されます。これは、クリックされたサムネイルの
属性を抽出することによって行われます。次に、Previewerのsrc
src
プロジェクトの設定src
まず、新しいEmberプロジェクトを作成しましょう。まず、CLIで次のコマンドを実行します:
完了後、次のコマンドを実行してプロジェクトを作成できます。これにより、
<code class="language-bash">npm install -g ember-cli</code>というフォルダーに新しいプロジェクトが作成され、必要な依存関係がインストールされます。次に、
を書いてディレクトリに移動します。このプロジェクトには、このチュートリアルで編集するさまざまなファイルが含まれています。編集する必要がある最初のファイルは、
ファイルです。それを開き、現在のエンバーバージョンを2.1.0に変更します。このプロジェクト用に作成したjQueryプラグインは、Bowerパッケージとして利用できます。このラインをプロジェクトに含めることができます<code class="language-bash">ember new emberjquery</code>ファイルに追加できます:
emberjquery
cd emberjquery
さあ、プラグインとEmberの新しいバージョンをインストールするには、次のコマンドを実行します。
<code class="language-bash">npm install -g ember-cli</code>
このプラグインはEmberコンポーネントではないため、必要なファイルを手動で含める必要があります。 ember-cli-build.js
ファイルで、return
ステートメントの前に次の2行を追加します。
<code class="language-bash">ember new emberjquery</code>これらの行は2つのファイルをインポートし、ビルドに含めます。 1つはプラグインファイル自体、もう1つはプラグインのCSSファイルです。 StyleSheetはオプションであり、プラグインを自分でスタイリングする予定がある場合は除外できます。
新しいプラグインコンポーネントを作成しますアプリケーションにプラグインを含めた後、次のコマンドを実行して新しいコンポーネントの作成を開始しましょう。 このコマンドは、クラスファイルとテンプレートファイルを作成します。テンプレートファイルで、
ファイルからコンテンツを貼り付けます。スクリプトを除く、コンテンツをタグに配置します。現時点では、テンプレートファイルは次のようになります。
クラスファイルで、<code class="language-json">"jquerypic": "https://github.com/LaminSanneh/sitepoint-jquerypic.git#faulty"</code>:
という名前の関数を追加します
bower_components/jquerypic/index.html
私たちは今、重要な時点にいます。 jQueryを使用すると、以下に示すように、通常、プラグインの初期化が
<code class="language-bash">bower install</code>
ただし、Emberコンポーネントの場合、この初期化はdidInsertElement
という名前の特別な関数で発生します。この関数は、コンポーネントの準備ができたときに呼び出され、DOMに正常に挿入されています。この関数にコードを包むことで、2つのことを保証できます。
<code class="language-javascript">// 要添加的行 app.import("bower_components/jquerypic/js/jquerypic.js"); app.import("bower_components/jquerypic/styles/app.css"); return app.toTree(); };</code>プラグインは、このコンポーネントのみで初期化されています
document.ready
プラグインは、他のコンポーネント
<code class="language-bash">ember generate component jquery-pic</code>
プラグインを初期化する前に、現在の状態のコンポーネントを使用しましょう。これを行うには、次のコマンドを使用してインデックステンプレートを作成します。
didInsertElement
<code class="language-html">{{yield}} <div class="jquerypic"> <div class="fullversion-container"> <img class="full-version lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> </div> <div class="thumbnails"> <img class="thumbnail lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> <img class="thumbnail lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> <img class="thumbnail lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> <img class="thumbnail lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> <img class="thumbnail lazy" src="/static/imghwm/default1.png" data-src="https://img.php.cn/" alt=""> </div> </div></code>エンバーコンポーネントの初期化
問題を示すには、まず次のコードを
<code class="language-javascript">import Ember from 'ember'; export default Ember.Component.extend({ didInsertElement: function () { } });</code>関数に追加しましょう:<p></p>
<code class="language-bash">npm install -g ember-cli</code>
<code class="language-bash">ember new emberjquery</code>
違いは、
の代わりに<code class="language-json">"jquerypic": "https://github.com/LaminSanneh/sitepoint-jquerypic.git#faulty"</code>を使用していることです。 2つのコンポーネントインスタンスが適切に機能するようになりました。あるインスタンスのサムネイルをクリックすると、別のコンポーネントに影響しないはずです。コンポーネントで
を使用する場合、そのコンポーネントのみであるjQueryハンドラーを参照します。したがって、実行するDOM操作は、コンポーネントインスタンスにのみ影響します。さらに、任意のイベントハンドラーは、このコンポーネントでのみ設定されます。グローバルjQueryプロパティthis.$
を使用する場合、ドキュメント全体を参照します。これが、初期化が別のコンポーネントに影響する理由です。このエラーを示すためにプラグインを変更する必要があります。これは、将来の記事のトピックかもしれません。ただし、操作コンポーネントのDOMのベストプラクティスは$
を使用することです。 this.$
$
プラグインを破壊しますthis.$
と呼ばれる別のフックを提供します。このフックは、Emberが破壊されようとしているたびに呼び出され、コンポーネントインスタンスがDOMから削除されます。私のプラグインには、プラグインインスタンスで呼び出すことができる
メソッドがあります。この方法は、Emberが提供する特別なフックで呼び出す必要があります。次の関数をコンポーネントに追加します:
willDestroyElement
stopEvents
このように
<code class="language-bash">bower install</code>
<code class="language-bash">npm install -g ember-cli</code>
didInsertElement
関数では、コンポーネントのプロパティにプラグインインスタンスを保存するだけです。これを行い、他の機能でアクセスできるようにします。 willDestroyElement
関数では、プラグインインスタンスのstopEvents
メソッドを呼び出しています。これはベストプラクティスですが、アプリケーションはこのフックをトリガーすることはできません。したがって、デモクリックハンドラーを設定します。このハンドラーでは、プラグインインスタンスのstopEvents
メソッドを呼び出します。これにより、すべてのイベントハンドラーが予想どおり削除されたことを示すことができます。次に、コンポーネントにクリック関数ハンドラーを追加しましょう:
<code class="language-bash">ember new emberjquery</code>
<p></p>
タグをコンポーネントテンプレートに追加します。
<p></p>
このタブをクリックすると、プラグインを破壊する操作を呼び出します。段落をクリックした後、プラグインはクリックイベントに応答しなくなります。イベントを再度有効にするには、<code class="language-json">"jquerypic": "https://github.com/LaminSanneh/sitepoint-jquerypic.git#faulty"</code>フックで行ったようにプラグインを初期化する必要があります。最後のセクションを通して、単純なエンバーコンポーネントを完成させます。おめでとう!
stopEvents
didInsert
(結論とFAQのパーツは元のテキストに似ていますが、文は元の意味を調整および磨き、維持することを除いて)
このチュートリアルでは、jQueryプラグインが私たちのキャリアにおいて重要な役割を果たしていることがわかりました。その強力なAPIと利用可能なJavaScriptフレームワークにより、これら2つの世界を組み合わせて調和して機能させる方法を理解することは非常に便利です。この例では、コンポーネントはプラグインのラッパーとして機能し、画像サムネイルのリストを表示します。サムネイルをクリックするたびに、その大きなバージョンは画像プレビューターに表示されます。これは単なる例ですが、必要なjQueryプラグインを統合できます。繰り返しますが、コードはGitHubで利用できます。 EmberアプリでjQueryプラグインを使用していますか?それらについて議論したい場合は、以下のセクションでお気軽にコメントしてください。 JQueryプラグインをEmberアプリケーションに統合することについてのFAQ
jQueryプラグインをエンバーアプリケーションに統合する目的は何ですか?jQueryプラグインをEmberアプリケーションに統合すると、アプリケーションの機能とユーザーエクスペリエンスを大幅に向上させることができます。 jQueryプラグインは、エンバーアプリケーションに簡単に統合できるアニメーション、フォーム検証、インタラクティブな要素など、さまざまな機能を提供します。この統合により、開発者はJQueryとEmberの力を活用して、jQueryプラグインのシンプルさと汎用性とEmberの堅牢性とスケーラビリティを組み合わせることができます。
私のemberアプリケーションにjqueryをインストールする方法は?
emberアプリケーションにjqueryをインストールするには、NPMパッケージマネージャーを使用できます。端末でコマンド
jQueryをインストールした後、関連するエンバーコンポーネントにインポートして、emberアプリケーションでjqueryプラグインを使用できます。その後、プラグインのドキュメントに従ってプラグインの機能を使用できます。プラグインが使用しているjQueryのバージョンと互換性があることを忘れないでください。
しばしば、jqueryとEmberは一緒にうまく機能します。ただし、使用しているJQueryとEmberのバージョンに応じて、互換性の問題がいくつかある場合があります。 jqueryとEmberのドキュメントを常に互換性があることを確認してください。
いいえ、jqueryをインストールせずにエンバーのjqueryプラグインを使用することはできません。 jQueryプラグインはjQueryライブラリの上に構築されており、実行する必要があります。したがって、jQueryプラグインを使用する前に、まずjqueryをインストールする必要があります。
npm update @ember/jquery
emberアプリケーションで複数のjQueryプラグインを使用できますか? emberアプリケーションのjqueryプラグインの問題をトラブルシューティングする方法は?
プログラミングエクスペリエンスなしで、EmberアプリケーションでjQueryプラグインを使用できますか?
私のemberアプリケーションでjqueryプラグインを使用する代替手段はありますか?
以上がjQueryプラグインをエンバーアプリケーションに統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。