Компонент
События жизненного цикла
- afterInit
- afterDestroy
- afterSyncIndexed
- afterSyncKeyed
- afterAddKeyed
- beforeRemoveKeyed
- afterRender
События жизненного цикла это единственное место, где мы имеем доступ к компоненту
Фабрика компонентов
Вызывается контейнером при создании дочерних компонентов. Может понадобиться, если у вас есть свои классы компонентов
Вес компонента
Именованные компоненты не имеют порядка. Порядок может быть задач через опцию weight. Это не совсем порядок, а весовой коэффициент. По умолчанию вес считается равным 0. Компоненты внутри одной весовой группы не имеют четкого порядка
export default () => {
return {
templates: {
// компоненты будут отрисованы упорядоченно
header: {weight: -10},
body: {weight: 0},
footer: {weight: 10},
}
}
}
Фильтрация и сортировка
При изменении списка дочерних компонентов происходит их упорядочивание. По умолчанию для выстраивания порядка используются веса и индексы
Индексированные и именованные компоненты собираются в список дочерних компонентов
Дочерние компоненты можно отфильтровать и отсортировать
export default () => {
return {
items: ['Alice', 'Bob', 'Charlie'],
childFilter: (child => {
return child.index != 1 // исключаем компонент с индексом 1
}),
childSorter: (a, b) => {
return a.index > b.index
}
}
}
caution
По умолчанию фильтрация отключена, а сортировка выполняется с учетом options.weight и index
Создание собственных классов компонентов
Нам нужно добавить:
- обработку своих опций в патче
- правила слияния новых опций
- очистку при удалении
const MyComponent extends Html {
}