2015-10-20 3 views
0

Я надеялся получить представление о создании новых xtypes. В настоящее время я создаю новый тип xtype для каждой части, составляя полный компонент пользовательского интерфейса, который мне нужен, но я думаю, что, возможно, я над ним.Создание отдельного компонента для каждого элемента, составляющего родительский компонент?

Например, если мне нужно создать окно, в котором находится форма, в которой, в свою очередь, находится набор полей, я создаю отдельное окно (новый xtype), форму (новый xtype), набор полей (новый xtype) и объедините все это, используя массив Items.

Теперь, конечно же, это позволяет мне повторно использовать форму внутри другого окна в качестве отдельного xtype, а также полевого набора можно повторно использовать.

Итак, я думал о создании 1 «xtype» - окне и поместить все мои дополнительные биты с помощью элементов, а не создавать отдельные типы xtypes для этих элементов.

Рекомендуется ли?

Только сейчас я, кажется, как минимум 2-х файлов (окна и компонент, как форма, сетки и т.д.)

Мое новое окно xtype очень на самом деле не так уж много, его довольно пусто. Это просто добавление новых типов xtypes, которые я создал.

Мне очень понравилась бы некоторая обратная связь, если кто-то может помочь.

Я думаю, что это сходит, создайте 1 xtype и поместив весь мой необходимый компонент прямо в этот файл, поэтому у меня будет 1 окно «AddCustomerWindow» или другой маршрут, где у меня есть минимум 2 файла (иногда больше), где я будет AddCustomerWindow, AddCustomerForm, AddCustomerFieldset

Любая помощь действительно ценится.

Благодаря

+0

Несмотря на то, что размещение этих предметов внутри предметов обязательно станет немного неопрятным. Возможно, я мог бы реализовать Ext.Apply .... в InitComponent и некоторые функции, которые возвращают каждую часть, например, «getForm», «getFormFields», «getButtons» и т. Д. - Хороший вариант? – Martin

+0

Я предполагаю, что вы имеете в виду новый xtype - новый класс. Создавайте отдельные классы только для повторно используемых компонентов, если у вас есть форма, которая будет использоваться только в одном представлении, тогда плохой практикой является создание отдельного класса. Попробуйте использовать xtypes (самостоятельно созданных компонентов или extjs-native), где это возможно - это будет иметь положительное влияние на производительность, тогда как компонент будет создан только тогда, когда понадобится – yorlin

+0

Нет правильного или неправильного ответа. Сделайте все, что «имеет смысл» для вашего проекта. Вы не хотите иметь массивные объекты конфигурации под одним классом, но вы, вероятно, также не хотите создавать новый подкласс для каждого используемого вами компонента. Сбалансируйте его, как вы сочтете нужным. –

ответ

1

Если есть необходимость повторно использовать внутренние элементы во многих местах, то это прекрасно, чтобы создать новый отделенный xtype для тех. Если они не будут повторно закрыты, тогда это станет дополнительным кодом/дополнительными файлами, в этом случае вы можете написать все элементы непосредственно в вашем окне.

+1

На самом деле вы можете писать классы в отдельных файлах и повторно использовать их без какого-либо xtype. Основной особенностью xtype является создание ленивого объекта. Таким образом, компонент, добавленный к представлению над xtype, будет создан только тогда, когда он понадобится. Это поможет улучшить производительность приложения. Таким образом, правильный ответ будет следующим: если вам нужно повторно использовать некоторые компоненты, поместите их в отдельные классы, и если вам нужно создать их лениво, тогда укажите xtype. – yorlin

+0

Спасибо за комментарии всем. Теперь я начну использовать 1 файл, если мне не понадобится повторное использование – Martin