Verschil tussen View en Template
Ik zie vaak dat views en templates in het MVC design pattern vaak door elkaar worden gegooid.
Ik heb veel gelezen over views en templates, en ben uiteindelijk bij het volgende uitgekomen:
Views zijn niet bedoeld om te veranderen of om opnieuw te schrijven als het uiterlijk van een site verandert.
Templates juist wel, die moeten worden aangepast.
Een view en template werken altijd samen, soms wordt er gezegd dat een view weer samenwerkt met een model, maar andere bronnen zeggen weer dat dit niet hoeft.
Je bepaalt welke gegevens er op een pagina komen te staan met een view, maar de plek en de manier waarop (bijvoorbeeld HTML, JSON, etc) wordt weer bepaald door een template.
Een view is een soort simpele model voor een template.
Is dit allemaal juist?
Gewijzigd op 11/04/2014 17:39:33 door Jan terhuijzen
Een template is statisch en een view is dynamisch. Je hebt in een template de elementen die je altijd hetzelfde wilt laten zien ( het menu bijv. ) en in de view bepaal je welke content er getoond wordt zo kan je een view hebben voor user settings of een view voor reserveringen etc etc. Je kan vervolgens beide combineren om de gebruiker een website voor te schotelen
Zijn templates en views niet verschillende woorden voor hetzelfde? In MVC wordt gesproken over views.
@Ozzie het is hetzelfde. Enkel wordt er anders gebruik van gemaakt. Een template is letterlijk vertaald een sjabloon. en een view is een uitzicht. Wanneer je het vertaald in dit geval zie je heel snel al waarom het niet precies hetzelfde is.
Er zit een heel minuscuul verschil tussen een template en een view, maar dat verschil is gewoon verwaarloosbaar. Heel heel heel strict genomen is de view de naam voor de layer, terwijl de template het bestand is, maar dat is heel strict genomen. Ga er maar gewoon vanuit dat view ==== template.
Zou je kunnen zeggen dat de template het html bestand is, dus <body> <head> <html> en dat views de onderdelen zijn die daar in staan? Header, menu, nieuwsberichten, footer e.d. ?
Wouter wat is een ==== voor operator? :P
Uhmmm... :)
>> Zou je kunnen zeggen dat de template het html bestand is, dus <body> <head> <html> en dat views de onderdelen zijn die daar in staan? Header, menu, nieuwsberichten, footer e.d. ?
Nee, dat zijn modules.
In een MVC-like applicatie heb je 3 lagen: De Model laag (deze bevat datamappers), de Controller laag (deze bevat actions) en de View laag (deze bevat templates).
Helder ;)
>> Wouter wat is een ==== voor operator? :P
Haha, was me nog niet eens opgevallen. :)