Jednosmerni tok podataka u Vue
Svi ulazni parametri formiraju jednosmerno vezivanje između podređenog svojstva i roditeljskog: kada se roditeljsko svojstvo ažurira – ono će biti prosledjeno podređenom, ali ne i obrnuto. Ovo sprečava da podređeni komponenti slučajno izmene stanje roditelja, što može otežati razumevanje toka podataka vaše aplikacije.
Pored toga, svaki put kada se ažurira roditeljski komponent, svi ulazni parametri podređenog komponenta će biti ažurirani najsvežijim vrednostima. Ovo znači da ne treba da pokušavate da menjate ulazni parametar unutar podređenog komponenta. Ako to uradite, Vue će prikazati upozorenje u konzoli.
Obično se javljaju dva slučaja kada se pojavi iskušenje da se izmeni ulazni parametar. Hajde da ih razmotrimo.
Prvi slučaj
Ulazni parametar se koristi za prosleđivanje početne vrednosti; podređeni komponent želi da ga koristi kao lokalno svojstvo podataka ubuduće. U ovom slučaju je najbolje definisati lokalno svojstvo u 'data', koje koristi vrednost ulaznog parametra kao početnu:
props: ['initialCounter'],
data() {
return {
counter: this.initialCounter
};
}
Drugi slučaj
Ulazni parametar se prosleđuje kao sirova vrednost koju je potrebno transformisati. U ovom slučaju je najbolje definisati izračunato svojstvo koristeći ulazni parametar:
props: ['size'],
computed: {
normalizedSize: function() {
return this.size.trim().toLowerCase();
}
}
Napomena
Obratite pažnju da se objekti i nizovi u JavaScript-u prosleđuju po referenci, tako da ako je ulazni parametar niz ili objekat, onda će promene unutar podređenog komponenta tog objekta ili niza uticati na stanje roditelja i Vue nije u mogućnosti da upozori na to. Trebalo bi izbegavati bilo kakve mutacije ulaznih parametara, uključujući objekte i nizove, jer zanemarivanje jednosmernog vezivanja podataka može dovesti do neželjenih posledica.