Перейти к основному содержимому

Компонент

События жизненного цикла

  • 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 {

}