Continuiamo con il modello della vista post.
Qui creerò un blocco init.
Il blocco init in una classe Kotlin è un blocco inizializzatore speciale che viene eseguito quando viene creata
un'istanza della classe; in questo caso, quando viene creata un'istanza del modello di vista post, serve come inizializzatore
in cui è possibile impostare qualsiasi operazione o stato necessario per il modello di vista al suo interno.
Inizieremo con l'ambito ViewModel.
L'ambito ViewModel è un ambito coroutine legato al ciclo di vita del ViewModel.
Quando si lancia una coroutine nell'ambito ViewModel, si
assicura che la coroutine venga annullata automaticamente.
Se il ViewModel viene cancellato, è necessario richiamare il lancio.
Il lancio avvia una nuova coroutine in questo ambito.
È una funzione di sospensione che consente di
eseguire operazioni asincrone senza bloccare il thread principale.
Dobbiamo recuperare i dati, quindi val fetched posts Pose equivale a repository dot getposts all'interno della coroutine.
Il ViewModel chiama il metodo Getposts del repository per recuperare i post.
Si tratta di una funzione di sospensione, cioè può essere chiamata all'interno.
Una coroutine sospende la coroutine mentre esegue le operazioni di rete.
Poiché Getposts è una funzione di sospensione, questa funzione viene
chiamata solo nell'ambito di un'altra coroutine e l'ambito del ViewModel
ci offre la possibilità di chiamare altre funzioni di coroutine.
Ora aggiorniamo lo stato.
Abbiamo creato questa variabile, i post.
È uno stato mutevole dell'elenco di messaggi.
Ora dobbiamo aggiornare lo stato.
Quindi i post equivalgono a recuperare i post.
Poiché posts è uno stato mutabile di aggiornamento,
il suo valore innescherà automaticamente una ricomposizione di
qualsiasi funzione componibile che legga questo stato.
Quindi, qualsiasi variabile composta, che è uno stato mutevole, innescherà la ricomposizione.
Di nuovo.
Ragazzi, voglio che vi concentriate con me e che scriviate queste note.
A proposito, potete trovare tutti i codici sorgente nella cartella delle risorse sotto ogni sezione.
Ho bisogno di aggiornare il post con i post recuperati e otteniamo i post dal repository.
Qualsiasi aggiornamento della variabile posts si attiverà automaticamente alla
composizione di qualsiasi componibile che legga questo stato.
Pertanto, qualsiasi composito nella nostra applicazione che dipende dai post per
visualizzare il suo contenuto sarà ricomposto se il post viene aggiornato.
Questa è la chiave della nostra applicazione.
Ok, questo è il nostro post view modale.