Emberjs-model
EmberJS-モデル
モデルは、Ember Dataの機能を拡張するクラスです。 ユーザーがページを更新すると、ページのコンテンツはモデルで表される必要があります。 Ember.jsでは、すべてのルートにモデルが関連付けられています。 このモデルは、アプリケーションのパフォーマンスを向上させるのに役立ちます。 Ember Dataはサーバーに保存されたデータを操作し、socket.ioやFirebaseやWebSocketsなどのストリーミングAPIでも簡単に動作します。
コアコンセプト
- 格納
- モデル
- 記録
- アダプタ
- キャッシング
格納
ストアは、アプリケーションで使用可能なすべてのレコードの中央リポジトリおよびキャッシュです。 ルートとコントローラーは、アプリケーションの保存データにアクセスできます。 DS.Storeは、オブジェクト全体でデータを共有するために自動的に作成されます。
import Ember from 'ember';
export default Ember.Route.extend ({
model() {
return this.store.find();
}
});
モデル
モデルは、他のオブジェクトとの関係を指定するEmber Dataの機能を拡張するクラスです。 ユーザーがページを更新すると、ページのコンテンツはモデルで表される必要があります。
import DS from 'ember-data';
export default DS.Model.extend ({
owner: DS.attr(),
city: DS.attr()
});
記録
レコードは、サーバーからロードされる情報を含むモデルのインスタンスであり、モデル_type_および_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. | Model Ways & Description |
---|---|
1 |
モデルは、Ember Dataの機能を拡張する単純なクラスです。 |
2 |
Emberデータストアを使用してレコードを取得できます。 |
3 |
モデルのインスタンスでレコードを作成および削除できます。 |
4 |
Ember.jsは、モデルが互いにどのように関連するかを指定する関係タイプを提供します。 |
5 |
Pushing Records Into The Store アプリケーションからレコードを要求することなく、レコードをストアのキャッシュにプッシュできます。 |
6 |
メタデータは、レコードを使用する代わりに、特定のモデルまたはタイプに使用されるデータです。 |
7 |
Ember.jsアダプターは、URL形式やREST APIヘッダーなど、データがバックエンドデータストアで保持される方法を指定します。 |