Qual è il ragionamento dietro a queste scelte progettuali? [chiuso]

3

Nel tutorial di ReactJS sei guidato nella costruzione di un sistema di commenti. È un tutorial molto utile per capire la libreria ReactJS, ma ci sono alcune scelte progettuali che non riesco a capire appieno.

Quindi iniziamo dalla configurazione iniziale:

Il sistema è composto da tre componenti: CommentBox, CommentList, Comment e CommentForm. La gerarchia è la seguente

CommentBox
    CommentList
        Comment
    CommentForm

Il tutorial implementa quindi tutte le logiche di recupero dei dati nel componente CommentBox, che quindi passano questi dati a CommentList che lo esegue nel DOM.

Q1: perché? È una scelta arbitraria o c'è qualche ragionamento dietro?

Quindi, quando il tutorial arriva alla logica della presentazione di nuovi commenti, afferma:

When a user submits a comment, we will need to refresh the list of comments to include the new one. It makes sense to do all of this logic in CommentBox since CommentBox owns the state that represents the list of comments.

Q2: Perché CommentBox rappresenta un elenco di commenti quando c'è un altro componente che lo rappresenta (CommentList, come suggerisce il nome)?

Inoltre, implementando la logica di invio, il codice che gestisce il commento POST al server fa parte del componente CommentBox, racchiuso in un metodo che viene passato a CommentForm come un callback. Quindi, quando viene inviato il modulo CommentForm, chiama questa funzione CommentBox per eseguire la richiesta del server, mentre il resto della logica è implementato nelle funzioni di CommentForm.

Q3: Perché non è implementata tutta la logica di invio in CommentForm?

EDIT: come ho affermato in un commento, "Ho già compreso l'architettura dell'applicazione e il concetto di box, sto discutendo sui dettagli di" implementazione individuale "e perché alcune scelte sono preferibili rispetto ad altre "

    
posta mattecapu 03.08.2014 - 14:42
fonte

2 risposte

3

Il componente CommentBox possiede la logica aziendale. CommentList , Comment e CommentForm sono rappresentazioni visibili di dati (note anche come viste). Quest'ultimo è più un bucket di raccolta per i dati inseriti dall'utente.

Quando CommentBox possiede tutta la logica attuale è facile da mantenere poiché non avrai la tua logica dispersa su più aree / oggetti. Invece è racchiuso in uno.

    
risposta data 03.08.2014 - 20:25
fonte
0

Il modo in cui la gerarchia funziona è questo:

Casella dei commenti contiene istanze di un elenco di commenti che contiene ed elenca commenti e un modulo di commento che viene utilizzato per inviare commenti aggiuntivi.

Quindi hai un contenitore in una pagina web, una " scatola " in gergo web standard. Questa casella ha quindi due sottocomponenti, un elenco e un modulo. L'elenco contiene elementi che sono stati inviati e vengono visualizzati mentre il modulo tratta gli elementi nel processo di immissione per la visualizzazione.

Come funziona la visualizzazione e la presentazione è una questione di implementazione individuale. È possibile rimuovere il modulo e la scatola funzionerebbe ancora correttamente. La casella esiste in modo che l'elenco e il modulo vengano trattati uniformemente per scopi di visualizzazione.

    
risposta data 03.08.2014 - 20:07
fonte

Leggi altre domande sui tag