I generatori JavaScript (introdotti con ES6) non sono specifici per React, ma sono una feature del linguaggio stesso che può essere utilizzata con React o qualsiasi altra libreria. Un generatore è una funzione speciale che può interrompere la propria esecuzione e successivamente riprendere dallo stesso punto.
Essi non sono largamente utilizzati in ReactJS poiché, generalmente, React utilizza un approccio basato su Promise o Async/Await per gestire operazioni asincrone. Tuttavia, la libreria Redux-Saga, ad esempio, fa largo uso dei generatori per gestire effetti collaterali in un’applicazione Redux.
Qui un esempio molto semplice di un generatore:
```
function* idMaker(){
let index = 0;
while(true)
yield index++;
}
let gen = idMaker();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
```
In questo caso, ogni volta che chiami `gen.next().value`, stai ottenendo il numero successivo, grazie al codice `yield index++`.
Ma come detto, in generale, le applicazioni React non utilizzano generatori a meno che non stai utilizzando qualcosa come Redux-Saga.