EmberJS-モデル
モデルは、Emberデータの機能を拡張するクラスです。ユーザーがページを更新するとき、ページのコンテンツはモデルで表される必要があります。Ember.jsでは、すべてのルートにモデルが関連付けられています。このモデルは、アプリケーションのパフォーマンスを向上させるのに役立ちます。Ember Dataは、サーバーに保存されているデータを操作し、socket.ioやFirebase、WebSocketsなどのストリーミングAPIとも簡単に連携します。
コアコンセプト
- Store
- Models
- Records
- Adapter
- Caching
お店
ストアは、アプリケーションで使用可能なすべてのレコードの中央リポジトリおよびキャッシュです。ルートとコントローラーは、アプリケーションの保存データにアクセスできます。DS.Storeは、オブジェクト全体でデータを共有するために自動的に作成されます。
import Ember from 'ember';
export default Ember.Route.extend ({
model() {
return this.store.find();
}
});
モデル
モデルは、他のオブジェクトとの関係を指定するEmberDataの機能を拡張するクラスです。ユーザーがページを更新するとき、ページのコンテンツはモデルで表される必要があります。
import DS from 'ember-data';
export default DS.Model.extend ({
owner: DS.attr(),
city: DS.attr()
});
記録
レコードは、サーバーからロードされる情報を含むモデルのインスタンスであり、モデルタイプとIDによってレコードを識別できます。
//It finds the record of type 'person' and an 'ID' of 1
this.get('store').findRecord('person', 1); // => { id: 1, name: 'steve-buscemi' }
アダプタ
アダプターは、要求されたレコードをEmberから特定のサーバーバックエンドへの適切な呼び出しに変換する役割を担うオブジェクトです。たとえば、IDが1の人を検索する場合、EmberはHTTPを/ person / 1として使用してURLをロードします。
キャッシング
レコードはストアによって自動的にキャッシュされ、サーバーから2回目にレコードをロードしたときに同じオブジェクトインスタンスを返します。これにより、アプリケーションのパフォーマンスが向上し、アプリケーションUIができるだけ早くユーザーに表示されます。
次の表に、モデルの詳細を示します。
S.No. | モデルの方法と説明 |
---|---|
1 | モデルの定義
モデルは、Emberデータの機能を拡張する単純なクラスです。 |
2 | レコードの検索
Emberデータストアを使用してレコードを取得できます。 |
3 | レコードの作成と削除
モデルのインスタンスでレコードを作成および削除できます。 |
4 | 関係
Ember.jsは、モデルが相互にどのように関連しているかを指定するための関係タイプを提供します。 |
5 | レコードをストアにプッシュする
アプリケーションにレコードを要求せずに、レコードをストアのキャッシュにプッシュできます。 |
6 | メタデータの処理
メタデータは、レコードを使用する代わりに、特定のモデルまたはタイプに使用されるデータです。 |
7 | アダプターのカスタマイズ
Ember.jsアダプターは、URL形式やREST APIヘッダーなど、バックエンドデータストアでデータを保持する方法を指定します。 |