JavaScript komponent som styr vyer.
Styr enbart vilken sida som visas. Ex "huvudsida", "redigera profil sida" etc. Strukturerar inte innehåll. Enskilda komponenter strukturerar sitt eget innehåll. Komponenter kan inkludera andra komponenter i sin vy-struktur.
Vc lyssnar på en grupp pipes från olika komponenter, och ersätter nuvarande vy med vad som än dyker i en pipe. Vc will listen to a set of pipes from different components, and replace the current view with whatever appear in the pipes.
Vc tar ett html-block-element som argument vid konstruktion. Vyn placeras i det elementet.
En vy kan använda vilket html block-element som helst för att rendera sitt innehåll. Därför möjligt att skaps sub-vyer. Vilket objekt som helst kan ha en vc som dess interna komponenter interagerar med.
Separation of concerns
Eftersom en vc kan byggas in i andra objekt så kan systemet delas upp där en komponents by-interaktion stannar innanför komponent-objektet. Vy Högre nivåer beblanda inte med detaljer av vad som är inkapslat på lägre nivåer.
Kommunikation mellan komponenter
View controller bryr sig inte om komponenter kommunikation mellan varandra. Den placerar bara innehåll i en vy.
Struktur
Vc skapar en html struktur i vilket den lägger in diverse komponenter som den erhåller via pipes från olika komponenter.
HTML strukturen ska vara lätt att modifiera och ersätta.
Vc uppdaterar inte komponenter. Komponenter uppdaterar sig själva.
Kommunikation mellan komponenter görs via uppgjorda async pipes.