非公式の文書、あなた自身の公式文書のテキストと例を整理して、迅速な検索を行います。
なぜSea.jsを使用するのですか?
SEA.JSは、次のコア機能を備えた、シンプルで自然なコードライティングおよび組織の方法を追求します。
シンプルでフレンドリーなモジュール定義仕様:SEA.JSはCMD仕様に従い、node.jsのようなモジュールコードを記述できます。
自然で直感的なコード組織:依存関係の自動負荷と簡潔で明確な構成により、より多くのコーディングを楽しむことができます。
SEA.JSは、開発のデバッグとパフォーマンスの最適化に非常に役立つ一般的なプラグインも提供し、豊富な拡張可能なインターフェイスを備えています。
互換性
SEA.JSには完全なテストケースがあり、すべての主流ブラウザと互換性があります。
Chrome 3+
Firefox 2+
Safari 3.2+
オペラ10+
IE 5.5+
SEA.JSは、ハイブリッドモードアプリを含むモバイル側で実行できます。理論的には、sea.jsは任意のブラウザエンジンで実行できます。
Seajs.configobject
エイリアスオブジェクト
エイリアス構成、構成後、必要( 'jquery')を呼び出すために必要なものを使用できます。
seajs.config({alias:{'jquery': 'jquery/jquery/1.10.1/jquery'}}); define(function(require、exports、module){//参照jqueryモジュールvar $ = require( 'jquery');});パスオブジェクト
パスを設定して、ディレクトリクロスコールを容易にします。パスを柔軟に設定することにより、ベースに影響を与えることなく特定のディレクトリに指定できます。
seajs.config({//パスパスの設定:{'ギャラリー': 'https://a.alipayobjects.com/gallery'}、//エイリアスを設定してエイリアスへの呼び出しを促進する:{'underscore': 'gallery/underscore'}}); define(function(require、exports、module){var _ = require( 'underscore'); // =>ロードされたものはhttps://a.alipayobjects.com/gallery/underscore.js});varsオブジェクト
変数構成。一部のシナリオでは、モジュールパスは実行時間中にのみ決定でき、VARS変数を使用して構成できます。
VARSはモジュール識別子の変数値で構成され、変数はモジュール識別子の{key}で表されます。
seajs.config({//変数構成vars:{'locale': 'zh-cn'}}); define(function(require、exports、module){var lang = require( './ i18n/{locale} .js'); // =>ロードされたものはpath/to/i18n/zh-cn.js});マップ配列
この構成は、モジュールパスをマッピングおよび変更でき、パス変換、オンラインデバッグなどに使用できます。
seajs.config({map:['.js'、 '-debug.js']]}); define(function(require、exports、module){var a = reques( './ a'); // =>ロードされたものはpath/to/a-debug.js});プリロード配列
プリロード構成アイテムを使用して、通常のモジュールをロードする前に、指定されたモジュールを事前にロードおよび初期化できます。
プリロードの空の文字列は無視されます。
//古いブラウザーでは、ES5およびJSONモジュールSeajs.config({preload:[function.prototype.bind? '': 'es5-safe'、this.json? '': 'json']})をロードします。注:プリロードの構成は、使用するまでロードする必要があります。例えば:
seajs.config({preload: 'a'}); // bをロードする前に、モジュールAがseajs.use( './ b')をロードおよび実行することを保証します。プリロード構成をモジュールファイルに配置することはできません。
seajs.config({preload: 'a'});定義(function(require、exports){//ここで実行すると、モジュールAがロードおよび実行されたことを保証することはできません});デバッグブール
値が真の場合、ローダーは動的に挿入されたスクリプトタグを削除しません。プラグインは、デバッグ構成に基づいて、ログの出力やその他の情報を決定することもできます。
ベース文字列
SEA.JSは、ベースパスに対して上位レベルの識別子を解析します。
注:一般的に、ベースパスを構成しないでください。 Sea.jsを適切なパスに置くことは、多くの場合、よりシンプルで一貫性があります。
CharsetString |関数
モジュールファイルを取得するときに、<script>または<link>タグのcharset属性。デフォルトはUTF-8です
charsetも機能にすることができます。
seajs.config({charset:function(url){// xxxディレクトリ内のファイルはgbkにロードされています。seajs.use関数
ページに1つ以上のモジュールをロードするために使用されます。 seajs.use(id、callback?)
//モジュールSeajs.use( './ a'); //モジュールをロードし、コールバックSeajs.use( './ a'、function(a){a.dosomething();}); // callback seajs.use(['./ a'、 '。/b']、function(b.dosom);注:Seajs.Useは、DOM Readyイベントとは何の関係もありません。 DOMの準備ができた後に特定の操作が実行される場合は、jQueryなどのクラスライブラリを使用してそれを確認する必要があります。例えば
seajs.use(['jquery'、 './main']、function($、main){$(document).ready(function(){main.init();});});注:使用方法の最初のパラメーターが存在する必要がありますが、nullまたは変数である場合があります
var bootstrap = ['bootstrap.css'、 'bootstrap-responsive.css'、 'bootstrap.js']; seajs.use(bootstrap、function(){// do something});seajs.cache ojbect
seajs.cacheを介して、現在のモジュールシステムのすべてのモジュール情報を確認できます。
たとえば、Open Seajs.orgを使用してから、WebKit開発者ツールのコンソールパネルにSeajs.cacheを入力してください。
オブジェクト> http://seajs.org/docs/assets/main.js:x> https://a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js:x> _proto__:オブジェクト
これらは、ドキュメントのホームページで使用されるモジュールです。アイテムを展開して、モジュールの特定の情報を確認します。意味は、CMDモジュール定義仕様のモジュールセクションにあります。
Seajs.reslove関数
require.Sollveと同様に、モジュールシステムの内部メカニズムは、着信文字列パラメーターのパス解像度を使用します。
Seajs.Resolve( 'jQuery'); // => http://path/to/jquery.jsseajs.resolve( './a'、 'http://example.com/to/b.js');/// => http://example.com/to/a.js
Seajs.Resolveメソッドは、パス解像度が正しいかどうかだけでなく、プラグイン開発環境でもデバッグするために使用できます。
seajs.dataオブジェクト
Seajs.dataを介して、すべてのSeajs構成といくつかの内部変数の値を表示できます。これは、プラグイン開発に使用できます。また、ロードの問題が発生したときにデバッグに使用することもできます。
よくある質問
モジュール識別について
SAIJSモジュール識別子は、主に小さなラクダの弦です。または ..
// http://example.com/js/a.jsの工場で:require.resolve( './ b'); // => http://example.com/js/b.js// http://example.com/js/a.jsの工場で:require.resolve( '../ c'); // => http://example.com/c.js
相対的およびトップレベルのロゴに分かれています。から始まる場合。または、それは相対識別子です。小さなラクダ文字列スイッチは、トップレベルの識別子です。
//ベースパスは次のとおりです。http://example.com/assets///モジュールコード:require.resolve( 'gallery/jquery/1.9.1/jquery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.js
パスについて
比較的高いレベルの識別であることに加えて、SEAJは通常のパスを使用してモジュールをロードすることもできます。
現在のページのスクリプト分析に移動しましょう(右クリックしてソースコードを表示できます)
// sea.jsのパス、つまりベースパスは現在のページに関連しています<script src = "http://yslove.net/actjs/assets/sea-modules/seajs/2.1.1/sj.js"> </script> <script = "text/javascript" //ベースパス 'actjs'に基づくトップレベルの識別: 'actjs/core/0.0.7/core.js'、// => http:// 'position': 'actjs/util/0.0.2/position.js' '../../ACTJS/ASSETS/widget/src/widget-affix.js'、//現在のページに比べて、相対識別子 'init': './src/init.js}}); </scrip>
最初は、Seajsの道はそれが少し慣れていないと感じています。ベースパスはsea.jsのファイルの上部パスであり、その後、すべてのトップレベル識別子と相対識別子がこのベースに対して調整されることに注意してください。