lz写后端的,刚刚接触一些前端框架,了解到前后端分离的Web架构模式,有点刷新三观的感觉,请大牛牪犇解答。

没有前端框架的时代,也就是MVC模式中,所谓View视图层,是后端的重要任务之一,也就是渲染动态页面,进行重定向,将view返回给前端。当然,ajax也会轻度使用。

前端上框架之后,以vue为例,也具备了路由的功能,所以就纠结了。

我目前的理解是:前端已经把页面渲染、跳转这部分功能接过来了,MVC现在只剩下MV了。后端只是单纯的负责开放REST接口出来,前后端交互完全依靠ajax。同时,这种模式下一般是SPA单页应用,页面跳转这种说法也不太准确了,应该成为组件的替换。

不知道我理解到了何种程度,望大牛牪犇们指点。


个人看法:SPA中的路由,类似react-router, vue-router这些,都是调用的history的api,SPA内部切换路由跟后端返回一个重定向的页面一样,都会在浏览器当前tab的历史栈中增加一个记录,而且这个记录可以在浏览器的历史记录里面看到。后端返回一个重定向的url,跟用户自己在浏览器里面输入这个url应该类似,SPA内部路由切换可以不刷新整个页面,只更新部分dom即可,同时命令式的去改变页面历史栈,要不然后退、前进按钮就不好使了。后退、前进按钮相当于移动一个指向页面历史栈的索引。