个人理解,有两种形式:
1.从后端开发的角度来看,一般来说,某个商品详情页后端代码一般是这样的
// Action (C)
public class Product{
//商品详情页方法
function item($pid){
....
$["data"] = .... //data数据一般根据$pid在此处从数据库中拿到。
return "/xxx.jsp"; //返回某个页面
}
}
//View (v)
如果是java的话一般jsp,freemarker,volicity模板
php的话就是smarty模板
node的话就是 jade等
模板的原理都是一样的,把公共的部分提取出来,不同的地方用标签代替。比如
{{title}} {{sex2}}
后端返回的内容直接用模板渲染出来,由于pid(商品id)不同,所以可以看到不同的商品详情页的内容都不同,而实际上用的都是同一套模板,只是返回的数据不同而已。
2.从前端的角度,原理也差不多
后端并不直接返回某个页面,而是根据pid提供其对应的数据,通过ajax返回给前端,然后前端拿到数据以后填充前端模板进行渲染,打开不同的url(/item/pid=1001)不同的pid的数据不同,所以渲染的页面不同。