Arr.jsは、標準の
Array
から継承された「クラス」です。 特徴的な機能は次のとおりです。配列内のすべての変更を追跡する
change
イベントの存在、および配列の作業を簡素化するための
insert()
、
update()
、
remove()
、
set()
、
get()
メソッド。 標準
Array
すべてのネイティブメソッド
Array
。
var fruits = new Arr('apple', 'orange', 'pineapple'); fruits.on('change', function(event) { alert('I changed fruits: ' + fruits.join(', ')); }); fruits.push('banana');
コード:基本的な方法の例 var fruits = new Arr('apple', 'orange', 'pineapple'); fruits.get(0);
イベントを変更する理由とそれらの操作方法
イベントの存在により、次のことが可能になります。
- FRPとの類似性:1つのデータの変更が他のデータの変更を伴う場合など
- 遅延レンダリング:配列で何かが変更されました-更新されたHTML(Angular)
- 変更があった場合のサーバーへのデータの自動保存
1つのイベントがサポートされています-
change
。
var fruits = new Arr('apple', 'orange', 'pineapple'); fruits.on('change', function(event) {
handler
に渡されたオブジェクト
event
によって、配列で何が起こったかを理解できます。
event
:
type
オブジェクトのプロパティは、値をとることができます:
insert
、
update
、
remove
。
items
プロパティを使用すると、配列のどの要素が影響を受けたかを調べることができます。
良い例
JSBinの動作例をご覧ください 。
結論として
github:// MatthewMueller / arrayがあり、アイデアは新しいものではないことを付け加えます。 しかし、私にはコードが過負荷に見え、実際にパフォーマンスの問題につながる可能性があります。 したがって、標準の
Array
を「拡張」することが決定されました。
計画:ライブラリを高品質のテストでカバーしたいという要望があります。これに精通している人が助けてくれたらいいと思います。
removeListener()
メソッドを除き、メソッドのリストを拡張する予定はありません。
Arr.jsリポジトリとドキュメント(en)改善に関するコメントを歓迎します!
PS:個人的な目的のために、Arr.jsを使用するコンポーネント
https://github.com/jmas/list/blob/master/List.jsが開発されました。 このコンポーネントは、データ配列が変更されたときにHTMLを個別に更新するリストを作成するために使用されます。 コンポーネントは
componentjsを使用して依存関係を解決します。