浅谈我自己对前端 MVC 的理解。
下面所写的,是MVC的基本理念
-
Model(模型)表示应用程序核心(比如数据库记录列表)。
-
View(视图)显示数据(数据库记录)。
-
Controller(控制器)处理输入(写入数据库记录)。
而我所理解的,前端MVC:
M:是单据类型,就像很多财务系统,有很多种单据类型,如收银,货款,如果给每一个单据都设置一种模板,这样未免太过死板;所以,如果为有着相同功能的单据设置基类模板,即使单据间有些许不同,只要在自己的单据中添加即可,这样,不仅大大减少了单据开发的工作量,而且,对于后期有相同功能的修改,也是很方便的。
V:web视图,视图中的元素,都有着功能模板的各个板块标识,如,文本,数字,日期,这样,方便控制器的控制。
C:指的是js功能控制,也许,有些人认为,后端把所有的数据打包处理好,然后下发给前端,前端直接进行渲染,然后如果有需要,前端把所有的数据直接打包,给回后端,让后端去处理一大堆原始数据,这样会很方便;但是,这仅仅只是片面的角度;随着时代的发展,浏览器的不断更新,性能也越来越好,如果单单依赖后端对数据的处理,那实在是太浪费当代浏览器的高性能,也太看低js的潜力。
总结
所以,我认为,最好的情况是:服务端,把所有,有着自己单据类型标识的数据下发,js对数据进行解析,分配,渲染;如果视图中的元素值有变化,则页面缓存的数据包也进行相应的改变,如有需要,则根据单据类型标识,把数据进行相应的打包,然后传回服务端,服务端则可以通过单据类型标识,对数据进行处理。