Según tengo entendido, ambos están haciendo las mismas funciones. Pero,
ngFor serían obras como colecciones ?.
ngForOf funcionaría como genéricos ?.
¿Mi entendimiento es correcto? o ¿Podría compartir más diferencias (detalles) sobre
ngForyngForOf?
ngFor y ngForOf no son dos cosas distintas, en realidad son los selectores de la directiva NgForOf.
Si examina la fuente , verá que la directiva NgForOf tiene como selector: [ngFor][ngForOf] , lo que significa que ambos atributos deben estar presentes en un elemento para que la directiva se 'active', por así decirlo.
Cuando usa *ngFor , el compilador de Angular elimina el azúcar de esa sintaxis en su forma canónica que tiene ambos atributos en el elemento.
Asi que,
<div *ngFor="let item of items"></div>desazúcares a:
<template [ngFor]="let item of items"> <div></div> </template>Este primer desazúcar se debe al '*'. La próxima eliminación de azúcar se debe a la micro sintaxis: "let item of items". El compilador Angular elimina el azúcar para:
<template ngFor let-item="$implicit" [ngForOf]="items"> <div>...</div> </template>(donde puede pensar en $implícito como una variable interna que la directiva usa para referirse al elemento actual en la iteración).
En su forma canónica, el atributo ngFor es solo un marcador, mientras que el atributo ngForOf es en realidad una entrada a la directiva que apunta a la lista de cosas sobre las que desea iterar.
Puede consultar la guía de microsintaxis de Angular para obtener más información.
ngFor es una directiva estructural de Angular que reemplaza el atributo ng-repeat de AngularJS
Puedes usar ngFor como abreviatura
<li *ngFor="let item of items">{{item.name}}</li>o como la versión a mano
<template ngFor let-item="$implicit" [ngForOf]="items"> {{item.name}} </template>En mi opinión, lo que obtuve del documento angular,
[ngFor] no es de type safe[NgForOf] es de type safePorque los detalles de ambas clases son un poco diferentes.
ngFor Class type es any tipo
Pero el tipo de clase ngForOf es genérico ngForOf : NgIterable<T>
ngForOf parece genérico que ya he mencionado en mi pregunta.