クライアント側でjqueryを厳密に使用したいので、npmインストールを実行しなくても、jqueryでnodejsを使用できるようにしたいと考えています。Jade テンプレート エンジンでは構文が完全に異なるため、これが不可能であることはわかっていますが、他のテンプレート エンジンでは可能でしょうか? nodejsを幸せにするためだけに、たくさんのHTMLをhamlに持たないことを望みます。
2 に答える
JadeでjQueryまたはその他のJavaScriptクライアント側ライブラリを使用することは確かに可能です。使用するエンジンにJavaScriptファイルとJavaScriptコードを含めるための構文を理解する必要があります。Jadeを使用すると、script()を使用して外部ファイル(jQueryライブラリなど)をインクルードし、スクリプトを使用して特定の呼び出しをコーディングできます。ここでJadeのドキュメントを見てください:https ://github.com/visionmedia/jade#readme
以下は、(1)jQueryを含み、(2)jQueryを介してHTML要素(「メッセージ」)を更新するJadeファイルの例です。
doctype 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(src='http://code.jquery.com/jquery-1.8.1.js')
body
h1= title
p#container Welcome to #{title}
p#message (to be filled in)
script
alert('hello world');
$("#message").html("message set through jquery")
Jade を別の言語や、既存の HTML/JS スタックと何らかの形で互換性がないものと考えないでください。Jade は、サーバー側のデータを副産物として挿入できる HTML を簡単に記述する方法にすぎません。
私の個人的なスタックでは、サーバー側で Express + jade を使用し、クライアント側で angularjs、jquery、および twitter ブートストラップを使用します。私はすべてのインポートを管理するために require.js を使用しています。私の jade テンプレートには、すべての require.js ロジックを含む main.js ファイルを指す単一の script() 参照しかありません。
しかし、エクスプレス/ジェイドに関する限り、重要なのは、それがあなたの人生を複雑にするためにあるのではなく、あなたの人生を楽にするためにあることを理解することです. わかりにくいと思われる場合は、別のテンプレート エンジンに切り替えるか、何も挿入されていない静的な HTML ページを高速で提供し、AJAX サービスをセットアップして、必要なサーバー側のデータを取得します。