首页 新闻 会员 周边

后台都已经使用MVC了,为什么前台也要使用MVC或者是MVVM架构?

0
悬赏园豆:50 [已解决问题] 解决于 2017-11-25 22:33

## 为什么前台也要使用MVC?
后台都已经使用了MVC架构了,直接将后台控制层的结果展示在视图层不好吗?
<font color="red">为什么前台也要搞出一个MVC架构?</font>

比如AngularJS,看似双向绑定很爽,但同时也很繁琐,一个页面对应一个controller, 多个controller对应一个service,相当于做一个页面,我要写2-3份文件。
写一个组件,往往要在html、js多个文件中切换,大型项目简直就是灾难。
然后就是数据双向绑定,这是MVVM的优点,但也是其缺点,绑定太多,页面能卡死半天出不来。

Yoooshiki的主页 Yoooshiki | 初学一级 | 园豆:3
提问于:2017-11-24 20:26
< >
分享
最佳答案
1

其实可以体验下再来比较的。开发爽,效率高。

收获园豆:50
幻天芒 | 高人七级 |园豆:37175 | 2017-11-24 21:24

是这样的,我是做后台的,Java, 当然,现在的我前后端都要一起搞。
来新公司不久,还不到三个月,目前这个项目的架构是这样的:

后台

  • Spring MVC
  • Jersey

前端

  • AngularJS

用了两个多下来,目前的感觉是前端MVVM确实爽,双向绑定,但是后台都已经MVC了,前端再用AngularJS, 反倒是徒增麻烦。

因为对前端的JS框架和架构并不熟悉,因此求教:

  1. 同时考虑前后端的话,主流的架构是怎样的?
  2. 如果从个人角度出发(后台Java,MVC架构),前端又应该使用什么架构会比较好呢?
Yoooshiki | 园豆:3 (初学一级) | 2017-11-24 22:12

@Yoooshiki: 其实是这样的,后端的MVC,C是在服务端交互,V又是在客户端,多次操作,识别会让浏览器跳转多次。而且后端的M,必须有请求响应才能通知到客户端。

对于前端的MV*(MVC、MVVM,更多的是MVVM),都是客户端局部刷新,用户体验较好,对服务端的压力也较小。

常规的套路是:后端只提供API(一般是REST API),前端利用MV*框架配合客户端路由做页面切换。既然把View交给前端了,后端就不需要关心View了。

另,纯前端MV*也不是银弹,需要根据自己的需求来进行权衡。

幻天芒 | 园豆:37175 (高人七级) | 2017-11-25 08:41

@幻天芒: 非常感谢,看了您的回答我好想明白了一些。
虽然之前不怎么写前端,但有时候后台使用SpringBoot,视图层使用的Thymeleaf模板,有时候为了异步请求,要自己拼一堆的html字符串。
而前端之所以使用MVVM, 应该不仅仅是方法复用,也更便捷的在客户端局部刷新。不知道我这样理解对不对。

Yoooshiki | 园豆:3 (初学一级) | 2017-11-25 22:41

@Yoooshiki: 基本差不多,当然,还有更多的好处,也引入了一些不方便的东西(比如SEO)。总得来源,前后分离还是趋势~

幻天芒 | 园豆:37175 (高人七级) | 2017-11-25 22:48
其他回答(3)
0

前端用MVVM,后端通常只需要WebAPI,不需要MVC了

dudu | 园豆:31003 (高人七级) | 2017-11-24 21:02

是这样的,我是做后台的,Java, 当然,现在的我前后端都要一起搞。
来新公司不久,还不到三个月,目前这个项目的架构是这样的:
后台

  • Spring MVC
  • Jersey

前端

  • AngularJS

用了两个多下来,目前的感觉是前端MVVM确实爽,双向绑定,但是后台都已经MVC了,前端再用AngularJS, 反倒是徒增麻烦。

因为对前端的JS框架和架构并不熟悉,因此求教:

1、同时考虑前后端的话,主流的架构是怎样的?
2、如果从个人角度出发(后台Java,MVC架构),前端又应该使用什么架构会比较好呢?

支持(0) 反对(0) Yoooshiki | 园豆:3 (初学一级) | 2017-11-24 22:13
0

那么可能是你遇到了一个水平很臭又自以为是的上级了。

有的人总容易犯 —— 为 ... 而为之的问题。

在代码简洁 和 代码便于管理两者之间是可能妥协的。

背景各种参数是作为选型的依据,当然自身技能也是参数,总而言之影响开发的各种参数。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-11-24 21:52
0

前端MVVM后端写接口.现在算是统一的最佳实践了

吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-25 19:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册