applyTo
визуализирует панель в целевой элемент (тело панели может по-прежнему содержать любое содержимое), contentEl
использует целевой элемент в качестве содержимого своего тела (панель все равно можно отобразить в любой другой элемент).Два метода не связаны.
Редактировать : просто обратите внимание, что с Ext 4.0+ конфигурация applyTo
больше не существует.Со временем стратегия декларативного / прогрессивного улучшения стала менее жизнеспособной для Ext (она так или иначе не была полностью поддержана во всех компонентах), и они, наконец, прекратили ее поддерживать.Вы всегда будете использовать renderTo
сейчас (для программной визуализации целевого элемента), тогда как contentEl
все еще действует и по-прежнему указывает элемент, из которого можно извлечь контент и добавить его.в тело панели. contentEl
наиболее полезно, когда у вас есть какой-то HTML-код на странице, который вы хотите отобразить внутри компонента Panel без необходимости воспроизводить разметку содержимого в коде JS.
Пока яздесь, я полагаю, я уточню кое-что еще ... Важно понимать, что renderTo
обычно используется только самым верхним контейнером в макете приложения.Все дочерние компоненты всегда должны быть добавлены как items
в Контейнер - рендеринг дочерних компонентов непосредственно к целевому элементу через renderTo
означает, что эти компоненты не будут участвовать в системе макетов Ext-Managed, котораякак правило, вы НЕ хотите в приложении.
Другое отличие состоит в том, что каждый компонент в Ext поддерживает renderTo
, но только определенные компоненты (наиболее полезные Panel) будут уважать contentEl
значимым образом.Даже если contentEl
определено для AbstractComponent
, большинство компонентов не предназначены для обработки произвольного содержимого HTML.