突然有个问题:自从大多数公司,开始使用前后端分离的技术。
前后端没有分离之前,页面发XHR请求,XHR请求到服务端,请求数据或者逻辑处理之后,返回给浏览器端,流程结束。浏览器端页面有些需要渲染的,可以直接用velocity,放入一个map对象,就可以渲染出来。如常见的修改操作,首先需要获取信息,然后做出更改。这样非常方便。
前后端分离之后,页面发xhr请求,首先到达前端nodejs这一层,nodejs再转发到后端,后端处理之后再返回。这样真的好么?
使用了前后端分离,加入了nodejs之后,一般公司的项目架构是什么样的?从浏览器端的用户的一次click,到整个业务流程走完,整个流向是如何的???
确实没必要迷信所谓的前后端完全分离。前后端分不分离的区别就在于模版页面是由哪边渲染,数据由哪边插入。另外nodejs难道不是服务器的技术吗?和前后端分离没有关系吧。转发到后端是浏览器执行js的时候转发的,那个最多只能叫v8,并不是nodejs。
如果前后端完全分离的话,我觉得用React+Redux比较容易实现,大概过程是这样的。
用户click一个React Component
Redux处理这个action,向服务器请求数据
服务器返回数据,Redux改变这个React Component的状态
React根据状态渲染这个React Component
用户看到回应