私はSenchaについてStore
ここで読んでいます
2 つの用語には、一意の名前/ID が必要です。なぜ両方が必要なのですか?userClassName
の値を使用しないのはなぜstoreid
ですか?
ストアを定義するコードは次のとおりです。
/**
*/
Ext.define('MyApp.store.Wallpaper', {
extend: 'Ext.data.DirectStore',
requires: [
'MyModel'
],
model: 'MyModel',
constructor: function () {
var me = this;
var cfg = {
storeId: 'wallpapersStore',
proxy: {
type: 'direct',
directFn: mydirFn,
reader: {
type: 'json',
root: 'wallpapers'
}
}
};
me.callParent([cfg]);
return me;
}
});
この定義では、userClassName は実際には「MyApp.store.Wallpaper」であり、
var instance1 = Ext.create('MyApp.store.Wallpaper');
storeId はグローバル ストア インスタンスに使用されますが、次のようになります。
var instance2 = Ext.getStore('wallpapersStore'); //instance1 === instance2
var instance3 = Ext.getStore('wallpapersStore'); //instance1 === instance2 === instance3
var instance4 = Ext.create('MyApp.store.Wallpaper'); //this generates an error because of the conflicting storeId's
また、userClassName は ExtJS には存在しません。Sencha Architect が、ユーザーが必要とする className を識別するためにのみ使用します。