Il servizio non è limitato a Angular, anche in Angular2 + ,
Il servizio è solo una raccolta di funzioni di supporto ...
E ci sono molti modi per crearli e riutilizzarli in tutta l'applicazione ...
1) Possono essere tutte funzioni separate che vengono esportate da un file js, simile come di seguito:
export const firstFunction = () => {
return "firstFunction";
}
export const secondFunction = () => {
return "secondFunction";
}
//etc
2) Possiamo anche usare il metodo factory come, con la raccolta di funzioni ... con ES6 può essere una classe piuttosto che un costruttore di funzioni:
class myService {
constructor() {
this._data = null;
}
setMyService(data) {
this._data = data;
}
getMyService() {
return this._data;
}
}
In questo caso è necessario creare un'istanza con una nuova chiave ...
const myServiceInstance = new myService();
Anche in questo caso, ogni istanza ha la sua vita, quindi fai attenzione se vuoi condividerla, in quel caso dovresti esportare solo l'istanza che desideri ...
3) Se la tua funzione e utilità non saranno condivise, puoi anche metterle nel componente React, in questo caso, proprio come la funzione nel tuo componente reagire ...
class Greeting extends React.Component {
getName() {
return "Alireza Dezfoolian";
}
render() {
return <h1>Hello, {this.getName()}</h1>;
}
}
4) Un altro modo in cui puoi gestire le cose, potrebbe essere usare Redux , è un archivio temporaneo per te, quindi se lo hai nell'applicazione React , può aiutarti con molte funzioni di setter getter che usi ... È come un grande negozio che tengono traccia dei tuoi stati e possono condividerli tra i tuoi componenti, quindi puoi sbarazzarti di molti dolori per le cose getter setter che usiamo nei servizi ...
È sempre bene fare un codice DRY e non ripetere ciò che deve essere usato per rendere il codice riutilizzabile e leggibile, ma non provare a seguire i modi angolari nell'app React , come menzionato al punto 4, l'uso di Redux può ridurre la necessità di servizi e si limita a usarli per alcune funzioni di supporto riutilizzabili come l'articolo 1 ...