Как реактивно реагировать на изменения ввода в дочернем компоненте

Взаимодействие компонентов может работать одним из следующих трех способов:

  • Установщики на свойстве @Input()
  • Сервисы

Если ваш компонент является презентационным компонентом и взаимодействует только со свойствами @Input() и @Output(), то использование **сеттеров является наиболее реактивным способом **взаимодействия с дочерним компонентом.

Давайте разберемся, как это сделать!

Взаимодействие родительского компонента с дочерним

Родительский компонент передает значение дочернему компоненту со следующим синтаксисом, где userValue является свойством @Input() в дочернем компоненте

<child-component [userValue]="userValue"></child-component>
Войти в полноэкранный режим Выход из полноэкранного режима
export class ChildComponent {
  @Input() userValue;
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Установщики для свойства @Input()

Установщики на свойстве @Input() выполняют некоторую дополнительную логику при каждом изменении ввода.
Таким образом, вместо определения userValue мы определяем функцию на свойстве userValue, которая будет выполняться при каждом изменении ввода.

export class ChildComponent {
  status = false;
  @Input() set userValue(value: string) {
      this.status = true;
  }
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Это так называемые методы доступа к свойствам, которые выполняются при установке/получении значений. Добавьте ключевое слово set перед свойством, чтобы сделать его сеттером.


Спасибо за чтение!

Пожалуйста, не стесняйтесь обращаться в Twitter или LinkedIn

Оцените статью
devanswers.ru
Добавить комментарий