Я новичок в Sencha / Ext JS, но мне кажется, что странное представление о наличии строки идентификатора сокращенного определения только для компонентов пользовательского интерфейса должно удовлетворять устаревшим пользователям.
Посмотрите "Список xtypes" здесь: http://docs.sencha.com/touch/2-0/#!/guide/components
Есть ли веская причина использовать подобный, но не совсем тот же строковый идентификатор, что и имя "класса", в качестве сокращенного идентификатора? Я так не думаю.
Проверьте следующий пример некоторых сопоставлений имен xtype и class для Sencha touch:
video
- Ext.Video
Хорошо, этот вид имеет смысл - строчная версия имени класса
carousel
- Ext.carousel.Carousel
Тот же шаблон здесь
carouselindicator
- Ext.carousel.Indicator
Хм, хорошо - мы тоже включим пакет
navigationview
- Ext.navigation.View
И снова здесь
datepicker
- Ext.picker.Date
Ok, wtf?
Некоторые из приведенных выше аргументов для xtype заключались в том, что он допускает отложенную реализацию компонентов. Я думаю, что это совершенно не имеет значения - то, что допускает отложенное создание экземпляров, это тот факт, что Sencha / Ext JS поддерживает спецификацию строкового идентификатора вместо экземпляра компонента в иерархии представления.
Отображение конкретной строки в конкретный компонент, который может быть создан позже, является совершенно произвольным - а в случае с Sencha / Ext JS, к сожалению, глупым (см. Примеры выше).
По крайней мере, просто следуйте разумному шаблону - например, почему Ext.Label не может иметь "xtype" Label
? Слишком просто?
На самом деле я знаю, почему - это потому, что они создали имена xtype, которые хорошо читаются - есть много повторяющихся имен классов, которые не будут работать (Ext.Panel и Ext.tab.Panel), и pickerDate
будет звучать просто глупо .
Но мне все еще не нравится - это странный маленький противоречивый ярлык, который запутывает больше, чем помогает.