Контейнер против панели в Extjs

У меня вопрос о Extjs

Я прочитал официальный документ о документе Sencha, но у меня есть путаница в отношении двух видов компонентов. Это контейнер и панель.

В чем разница между контейнером и панелью? Что следует использовать в этом случае?

Любой ответ очень оценен.

Ответ 1

Выдержка из документации контейнера:

Базовый класс для любого компонента Ext.Component, который может содержать другие компоненты. Контейнеры обрабатывают основное поведение содержащихся элементов, а именно: добавление, вставка и удаление элементов.

Наиболее часто используемые классы контейнеров Ext.panel.Panel, Ext.window.Window и Ext.tab.Panel. Если вам не нужны возможности, предлагаемые вышеупомянутыми классами, вы можете создать легкий контейнер, который должен быть инкапсулирован элементом HTML на ваш с помощью параметра конфигурации autoEl.

Это означает, что панель расширяет контейнер, то есть он может делать больше вещей. Например, он имеет заголовок и поддерживает dokedItems (например, панели инструментов), может быть закрыт (сравните другие события двух компонентов), в то время как контейнер по умолчанию не имеет таких вещей.

Общее правило: используйте простые контейнеры всегда, когда вам не нужны функции панели, т.е. когда вам просто нужно разместить других детей.

Ответ 2

Всегда помните, что панели намного тяжелее контейнера. Поэтому используйте его только для этого.

Ответ 3

Андрей I объяснил этот процесс довольно хорошо, и вот еще одна документация. В этой документации команда Sencha подробно описывает, как выбрать правильный класс для трех из этих виджетов: Component, Container и Panel.

Какой класс для расширения

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