각도 구조 명령, 섹션 1: NgIf
이것은 내장된 각도 구조 명령을 포함하는 시리즈의 첫 번째 부분이다.이 시리즈는 경험이 있는 새로운 개발자를 대상으로 한다.
소개하다.
각도 응용에 내장된 구조 지령 시리즈의 첫 번째 부분에 오신 것을 환영합니다!이 시리즈에서는 구조 명령이 무엇인지 소개하고 내장된 구조 명령을 어떻게 사용하는지 안내할 것이다.
무엇이 구조 지령입니까?
구조 명령을 사용하면 개발자가 DOM을 특정 방식으로 조작할 수 있습니다.이러한 작업은 페이지의 요소를 추가, 삭제 또는 변경하여 수행됩니다.구조 명령은 템플릿의 HTML 요소에 속성으로 추가됩니다.요소마다 하나의 구조 명령만 추가할 수 있으며, 이 명령은 원소의 다른 속성과 구분하기 위해 항상
*를 접두사로 해야 한다.Angular에는 DOM 제어에 사용할 수 있는 몇 가지 내장 명령이 포함되어 있습니다.대부분의 명령은 어셈블리의 값을 기준으로 DOM을 조작합니다.페이지 내용은 구성 요소 값 및/또는 사용자 작업에 따라 자주 변경되는 동적 응용 프로그램에서 유용합니다.일반적인 HTML과Javascript를 사용하면 동적 내용을 얻기 어렵지만 Angular의 구조화 명령을 사용하는 것은 쉬운 일입니다!
주의: 본 시리즈의 내장 지령만 주목하지만 개발자도 자신의 사용자 정의 구조 지령을 구축할 수 있습니다.
구조 명령을 어떻게 사용합니까?
구조 명령을 사용하려면 각도 템플릿의 모든 요소에 이 명령을 속성으로 추가하면 됩니다.structural directive 속성의 접두사는
*입니다.예:
<div *someDirective class="my-class" (click)="doSomething()"></div>
위의 코드 세션에서 someDirective 접두사로 인해structural 명령어div는 * 요소에서 쉽게 구분된다.명령어도 구성 요소의 속성에 귀속될 수 있습니다.
예:
<div *someOtherDirective="someProperty" class="my-class"
(click)="doSomething()"></div>
위의 코드 세션에서structural 명령어someOtherDirective는component 속성someProperty에 귀속됩니다.본문에서 우리는 가장 자주 사용하는 지령 중 하나인
ngIf를 소개할 것이다.NgIf 명령은 무엇입니까? 어떻게 사용합니까?
ngIf 명령은 DOM에서 요소를 조건부로 추가하거나 제거하는 데 사용됩니다.다음과 같은 기능을 통해 요소를 쉽게 표시하고 숨길 수 있으므로ngIf 지령의 문법은 자바스크립트의 조건if문장과 매우 유사하여 개발자가 쉽게 직관적으로 사용할 수 있다.(이것은 AngularJS의 ngIf 명령과 거의 같다.이 명령은 다음과 같은 경우에 특히 적용됩니다.
기본 용도:
<div *ngIf="someCondition">
I want to show this if someCondition is truthy!
</div>
ngIf 명령은 DOM에 조건부로 추가할 요소에 속성으로 추가됩니다.이 명령은 요소에 대한 추가 또는 삭제 여부를 결정하는 데 사용되는 조건에 바인딩됩니다.구성 요소가 처음 초기화되면 모든 조건
ngIf 값이 확인되고 다음과 같은 상황이 발생합니다.truthy인 경우 요소가 DOMfalsy인 경우 DOM에 요소가 추가되지 않습니다이렇게 간단해!
변경 감지에 따라 조건이 변경되면 Angular 명령이 적용되는 요소는 새 조건 값에 따라 적절하게 삭제되거나 DOM에 추가됩니다.
ngIf 지령의 위력이 미묘할 수 있기 때문에 가장 중요한 부분을 다시 한 번 강조합시다.NgIf 조건의 계산 결과가 falsy인 경우 이 요소는 DOM에 숨겨지지 않습니다.그것은 완전히 제거되었거나 전혀 추가되지 않았다.
페이지의 한 단락의 텍스트에 대해 이것은 중요하지 않은 것 같다.그러나 더 비싼 구성 요소와 결합하여 사용하면 커다란 성능 영향 (좋은 것과 나쁜 것) 을 볼 수 있습니다.
ngIf 명령의 조건은 구성 요소의 속성에 직접 귀속될 수 있습니다.예:
*ngIf="someProperty"
또는 조건은 브리 표현식에 귀속될 수 있습니다.예:
*ngIf="someProperty !== undefined"
ngIf 지령을 쉽게 사용할 수 있는 이유는 많은 Angular 개발자들이 이미 익숙한if문장인 자바스크립트 문법과 매우 가깝기 때문이다.위의 HTML 구문을 다음과 같이 매핑할 수 있습니다.if (someCondition) {
// Execute the code in this block
}
Else 청크일반적으로
ngIf 명령의 조건이 falsy라면 다른 템플릿을 표시해야 한다.두 번째 ngIf 명령을 추가해서 같은 조건이 falsy인지 확인하려고 할 수도 있습니다.<div *ngIf="someCondition">
If someCondition is truthy, show this
</div>
<!-- Avoid! This is an anti-pattern. -->
<div *ngIf="!someCondition">
Otherwise I want to show this
</div>
하지만 더 좋은 방법이 있어!<div *ngIf="someCondition; else otherBlock">
If someCondition is truthy, show this
</div>
<ng-template #otherBlock>
Otherwise I want to show this
</ng-template>
자바스크립트의 전통if문장과 같이 ngIf 명령의 조건이 falsy 인 경우 다른 템플릿을 추가할 수 있습니다.그런데 왜 이게 더 좋아요?
ngIf 조건이 변경되면 두 위치 모두 변경해야 합니다.이것은 매우 약하고 잘못되기 쉽다.ng-template.그것은 ngIf 명령 아래에 직접 있을 필요가 없다.이것은 템플릿의 조직 방식을 더욱 잘 제어할 수 있도록 합니다.f (someCondition) {
// Execute this code block
} else {
// Execute this other block
}
스토리지 NgIf 값
템플릿의 여러 위치에서
ngIf 조건을 사용한 결과는 적지 않다.ngIf조건이 사용async관의 관찰 대상에 귀속되었을 때 이런 상황은 매우 흔하다.하나의 옵션은
ngIf 조건 결과가 필요한 모든 위치에 조건을 추가하는 것입니다.<div *ngIf="tableData$ | async">
My Conditional Table
<my-table-component [data]="tableData$ | async"></my-table-component>
</div>
그래도 더 좋은 방법이 있어!<div *ngIf="tableData$ | async">
My Conditional Table
<my-table-component [data]="tableData$ | async"></my-table-component>
</div>
as 문법은 조건의 결과를 국부 변수로 템플릿에 저장할 수 있도록 합니다.이제 이 값을 템플릿의 다른 위치에서 쉽게 재사용할 수 있습니다.그런데 왜 이게 더 좋아요?
요약
이것이 바로
tableData$ 지령에 대해 당신이 알아야 할 모든 것입니다!요점을 다시 한 번 살펴보겠습니다.
🛠 구조화 명령은 개발자에게 구성 요소의 데이터를 바탕으로 DOM을 제어하는 간단한 방법을 제공했다
🏗 구조 명령을 각도 템플릿의 엔티티에 추가할 수 있습니다.
🎯
ngIf 명령을 사용하면 명령에 직접 바인딩된 조건 값에 따라 DOM을 제어할 수 있습니다.➕
ngIf 조건이 ngIf인 경우 요소는 DOM에 추가됩니다.➖
truthy 조건이 ngIf인 경우 DOM에서 요소가 제거됩니다.💪 Angular 팀이 제공하는 모든 기능을 활용하려면
falsy 및 else 구문을 사용합니다.뮤지컬이 곧 옵니다.
ng conf: 뮤지컬은 2021년 4월 22일과 23일 이틀간 회의를 연다.ng-conf.org로 문의하십시오.
기타 아이디어 및 리소스
as 파일: https://angular.io/api/common/NgIf*ngIf를 추가한 유일한 이유는 구조 지령을 추가했기 때문이다.이 경우 DOM에 추가 div를 추가하지 않도록 div를 사용하는 것이 좋습니다.이 시리즈의 뒷부분에서 더 많은 설명을 드리겠습니다.Reference
이 문제에 관하여(각도 구조 명령, 섹션 1: NgIf), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ngconf/angular-structural-directives-part-1-ngif-4fkf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)