동적으로 컴포넌트 불러오기

angular 13 이상 버전에서는 ComponentFactoryResolver 없이 바로 ViewContainerRef.createComponent 를 사용하여 동적으로 컴포넌트를 불러올 수 있다.

import {ViewContainerRef} from '@angular/core';

import { Component1 } from './component1';
import { Component2 } from './component2';


export class DynamicComponent implements ... {
  constructor(
     private viewContainerRef: ViewContainerRef
  ) {
  }
  public ngAfterViewInit(): void {
    this.create();
  }

  public create(): void {
    switch (this.data.title) {
      case 'Component1':
        const component = this.viewContainerRef.createComponent(Component1);
        break;
      case 'Component2':
        const component = this.viewContainerRef.createComponent(Component2);
        break;
     
    }
  }
}

위의 코드에서 보듯 이전 버전보다는 매우 간단한 사용법을 자랑한다.
다음 예는 동적 컴포넌트를 불러와서 그 컴포넌트에 값을 전달하는 예제이다.

Table of contents 목차

평점을 남겨주세요
평점 : 2.5
총 투표수 : 1