实现先后端分离的心得
对目前的web来讲,先后端分离已经变得愈来愈流行了,愈来愈多的企业/网站都开始往这个方向靠拢。那么,为何要选择先后端分离呢?先后端分离对实际开发有什么好处呢?node
为何选择先后端分离
- 在之前传统的网站开发中,前端通常扮演的只是切图的工做,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,好比与后台的数据交互工做等,可能都是由后台的开发人员来实现的,或者是前端是牢牢的耦合后台。好比,之前淘宝的Web基本上都是基于MVC框架webx,架构决定了前端只能依赖后端。因此他们的开发模式依然是,前端写好静态demo,后端翻译成VM模版,这种模式的问题就不说了,被吐槽了好久。
- 并且更有可能后台人员直接兼顾前端的工做,一边实现API接口,一边开发页面,二者互相切换着作,并且根据不一样的url动态拼接页面,这也致使后台的开发压力大大增长。先后端工做分配不均。不单单开发效率慢,并且代码难以维护。而先后端分离的话,则能够很好的解决先后端分工不均的问题,将更多的交互逻辑分配给前端来处理,然后端则能够专一于其本职工做,好比提供API接口,进行权限控制以及进行运算工做。而前端开发人员则能够利用nodejs来搭建本身的本地服务器,直接在本地开发,而后经过一些插件来将api请求转发到后台,这样就能够彻底模拟线上的场景,而且与后台解耦。前端能够独立完成与用户交互的整一个过程,二者均可以同时开工,不互相依赖,开发效率更快,并且分工比较均衡。
如何作到先后端分离
(如下的内容都是基于咱们的电影购票网站来讨论的)
前端的技术框架是: vue全家桶+nodejs+express(实现的是单页面(SPA)应用)
首先,先分清楚先后端的工做web
- 前端的工做:实现整一个前端页面以及交互逻辑,以及利用ajax与nodejs服务器(中间层)交互
- 后端的工做:提供API接口,利用redis来管理session,与数据库交互
咱们项目的整一个架构以下:ajax