Angular에서 'exportAs'로 구성 요소 상태 공유

Angular에서 공용 속성 또는 다른 사람과 공유할 상태로 구성 요소를 빌드할 때 이를 해결하기 위해 몇 가지 옵션이 머리에 떠오릅니다.
  • 구성 요소 상태의 새 값을 사용하여 이벤트를 내보냅니다.
  • 주제에 서비스를 주입하여 상태를 공유합니다.
  • 구성 요소를 How to Build Compound Components in Angular과 같은 종속성으로 삽입합니다.

  • 모든 옵션이 유효하지만 템플릿에서 구성 요소 상태를 공유하는 또 다른 방법은 exportAs 속성을 사용하는 것입니다.

    exportAs


    exportAs 속성은 템플릿에서 사용할 수 있도록 구성 요소 또는 지시문 이름 인스턴스를 사용합니다.

    @Component({
      selector: 'app-country',
      templateUrl: './country.component.html',
      styleUrls: ['./country.component.css'],
      exportAs: 'countryContext'
    })
    


    템플릿의 로컬 변수를 사용하여 구성 요소 인스턴스에 대한 액세스를 제공합니다. 예를 들어 exportAs: countryContext 인스턴스에 액세스하기 위해 CountryComponent를 가리키는 변수 #country를 만들고 템플릿의 아무 곳에서나 사용합니다.

    <div >
      From outside!
    <app-nice-gif [selected]="country.selected"></app-nice-gif>
    </div>
    <app-country #country="countryContext"> 
     <app-country-flag [selected]="country.selected"></app-country-flag>
      <app-country-flag [selected]="country.selected"></app-country-flag>
      <app-country-flag [selected]="country.selected"></app-country-flag>
      <app-banner [selected]="country.selected"></app-banner>
    </app-country>
    


    요약


    exportAs를 사용하면 서비스 구성 요소를 종속성으로 주입하기 위해 구성 요소의 코드를 변경할 필요가 없습니다. 로컬 변수는 템플릿에 있는 구성 요소의 모든 공용 메서드 또는 속성에 대한 구성 요소 액세스를 제공합니다.

    좋은 웹페이지 즐겨찾기