JavaScriptプラグイン作成ガイド
4231 ワード
プラグインを作成する前に、プラグインを作成するいくつかのポイントを理解してください.
多重化可能なプラグインは、次の条件を満たす必要があります.プラグイン自体の役割ドメインとユーザの現在の役割ドメインは互いに独立しており、すなわちプラグイン内部のプライベート変数は使用者の環境変数に影響を与えない. プラグインはデフォルトの設定パラメータを備えなければならない. プラグインは実装された基本機能を備えているほか、一部のAPIを提供する必要があり、使用者はこのAPIを通じてプラグイン機能のデフォルトパラメータを修正することができ、それによってユーザーのカスタムプラグイン効果を実現することができる. プラグインは、リスニングエントリを提供し、指定された要素に対してリスニングを行い、この要素とプラグインの応答がプラグイン効果を達成するようにする必要がある. プラグインはチェーンコールをサポートします.
以下では、カスタムプラグインを実装するために、これらの要件について1つずつ説明します.
プライベートドメインを実現するには、閉パッケージを使用するのが最善です.プラグインを1つの関数とすることができて、プラグインの内部の変数と関数の私有変数、プラグインを呼び出した後に依然としてその機能を使うことができるため、閉パッケージの作用は関数(プラグイン)の内部の変数のライフサイクルを延長して、プラグインの関数が繰り返し呼び出すことができて、ユーザー自身の作用ドメインに影響しません.
したがって、プラグインのすべての機能を即時実行関数に書く必要があります.
プラグインの主な機能はいくつかのキーパラメータにまとめることができ、これらのキーパラメータを通じてプラグインの主な機能を修正することができ、第3ステップAPI設定のキーパラメータでもある.
デフォルトのパラメータをグローバル関数の一番前に配置します.パラメータ変数はoptionsと呼ばれ、オブジェクトの字面量で割り当てられます.
keyはプラグイン可能な変数の名前であり、paraはその変数に対応する値である.色を設定するプラグインを作成する必要がある場合は、デフォルトの色は黒で、optionは次のようにします.
機能部の作成時の呼び出し方法:
APIは利用者を指すため、ユーザーがプラグインを呼び出す時にAPIをユーザーに暴露する必要があり、ユーザーのAPIはプラグインによって提供された名前で使用されるため、APIをObjectタイプに設定し、ユーザーはAPIを呼び出すkeyで使用することができ、具体的なコードは以下の通りである.
カスタムパラメータを設定するためにconfigを提供し、listenがプラグインのために傍受するdom操作、featureがプラグインの主な機能であり、optionsパラメータを使用する機能はapiの下に書かなければならない.
上記のフレームワークでは、
要素のリスニングlistenに対して、条件を満たすdom要素をすべてリスニングする必要があります.
configとlistenの2つの最も基本的なAPIが完了した後、APIとプラグインの名前を結合する必要があります.
最も基本的なAPIは以下の通りです.
ユーザーがこのプラグインを使用する場合、次のように呼び出されます.
必要に応じてパラメータをカスタマイズします.
プラグインが満たす条件
多重化可能なプラグインは、次の条件を満たす必要があります.
以下では、カスタムプラグインを実装するために、これらの要件について1つずつ説明します.
1、プラグイングローバル関数
プライベートドメインを実現するには、閉パッケージを使用するのが最善です.プラグインを1つの関数とすることができて、プラグインの内部の変数と関数の私有変数、プラグインを呼び出した後に依然としてその機能を使うことができるため、閉パッケージの作用は関数(プラグイン)の内部の変数のライフサイクルを延長して、プラグインの関数が繰り返し呼び出すことができて、ユーザー自身の作用ドメインに影響しません.
したがって、プラグインのすべての機能を即時実行関数に書く必要があります.
(function () {
//
})();
2、プラグインのデフォルトパラメータ
プラグインの主な機能はいくつかのキーパラメータにまとめることができ、これらのキーパラメータを通じてプラグインの主な機能を修正することができ、第3ステップAPI設定のキーパラメータでもある.
デフォルトのパラメータをグローバル関数の一番前に配置します.パラメータ変数はoptionsと呼ばれ、オブジェクトの字面量で割り当てられます.
var options = {
key1: para1,
key2: para2,
key3: para3,
...
keyn: paran
}
keyはプラグイン可能な変数の名前であり、paraはその変数に対応する値である.色を設定するプラグインを作成する必要がある場合は、デフォルトの色は黒で、optionは次のようにします.
var options = {
color: '#333333'
}
機能部の作成時の呼び出し方法:
options.color
.3、プラグインAPI、パラメータ設定と傍受
APIは利用者を指すため、ユーザーがプラグインを呼び出す時にAPIをユーザーに暴露する必要があり、ユーザーのAPIはプラグインによって提供された名前で使用されるため、APIをObjectタイプに設定し、ユーザーはAPIを呼び出すkeyで使用することができ、具体的なコードは以下の通りである.
var api = {
config: function(ops) {
//....
return this;
},
listen: function listen(elem) {
//...
return this;
},
feature1: function() {
//...
},
feature2: function() {
//...
}
}
this.pluginName = api;
カスタムパラメータを設定するためにconfigを提供し、listenがプラグインのために傍受するdom操作、featureがプラグインの主な機能であり、optionsパラメータを使用する機能はapiの下に書かなければならない.
api.config
とapi.listen
の2つの関数は、プラグインのチェーン呼び出しを実現するために最後にthis
に戻るべきであることに注意してください.上記のフレームワークでは、
config
に対して関数を設定する書き方に明確な要求があります.ユーザーがカスタム関数を入力していない場合、デフォルトでは前節のoptionsのパラメータを使用します.ユーザーがconfigパラメータを設定している場合は、ユーザーカスタムパラメータを使用します.config: function(opts) {
// ,
if (!opts) return options;
// , key options
for (var key in opts) {
options[key] = opts[key];
}
return this;
}
要素のリスニングlistenに対して、条件を満たすdom要素をすべてリスニングする必要があります.
listen: function listen(elem) {
// typeof ,
if (typeof elem === 'string') {
// ES5 querySelectorAll dom
var elems = document.querySelectorAll(elem),
i = elems.length;
// listen dom
while (i--) {
listen(elems[i]);
}
return
}
// ,
return this;
}
configとlistenの2つの最も基本的なAPIが完了した後、APIとプラグインの名前を結合する必要があります.
this.pluginName = api;
最も基本的なAPIは以下の通りです.
var api = {
//
config: function(opts) {
if (!opts) return options;
for (var key in opts) {
options[key] = opts[key];
}
return this;
},
//
listen: function listen(elem) {
if (typeof elem === 'string') {
var elems = document.querySelectorAll(elem),
i = elems.length;
while (i--) {
listen(elems[i]);
}
return
}
//
return this;
}
}
// API
this.pluginName = api;
ユーザーがこのプラグインを使用する場合、次のように呼び出されます.
pluginName.listen('#demo');
必要に応じてパラメータをカスタマイズします.
pluginName.config({
key: 'para'
}).listen('#demo');
// config listen this, :
pluginName.listen('#demo').config({
key: 'para'
});
// :
pluginName.config({
key: 'para'
})
.listen('#demo');