1:前后端分离模式
web2.0时代快速发展,前端开发的职责不再是局限于页面的编写,一系列的业务逻辑也能在前端的环境中完美处理。ES6 的到来,衍生出一系列优秀js框架,其中以 Angular,Vue,React,三足鼎立,占据了前端框架的大半壁江山。
这三者主要的共同点, 双向数据绑定 ;组件式开发,模块化思想。后端提供 RESTfulAPI ,前端模板渲染数据。那么,什么是前后端分离,什么情况下前端分离,前后端分离的意义大吗?
1:什么是前后端分离
前后端分离是一种开发模式,开发人员各司其职,后端提供标准的RESTfulAPI 接口,输出轻量级的JOSN数据格式,前端将json 数据动态渲染到html 模板中,前后端的数据交互都是采用ajax 请求来实现。
2:前后端分离的意义大吗
知乎论坛中有一段很优秀的回答,
总得来说,Full Stack 的开发人员相对较少,开发岗位的职责安排通常都是1个前端协助2个后端工作,或者更多。
而前后端分离开发,实际是增加了前端方面的工作量,但是在开发模式,页面模板的一致性,项目的维护性,方面却极大有着极大的优势。
前后端分离开发,后端需要编写标准的RESTfulAPI接口 DOC文档,文档应该具备 一下内容,以供前端调试接口
1:api 请求 url
2:请求方式 get,post, delete,put,
3:请求参数
4:响应参数
5:字段数据类型,数据格式,字段备注说明
前后端分离开发也带来了弊端,SEO 问题,由于网站数据渲染都是js代码控制的,搜索引擎无法运行js 代码,抓取不到推广关的键信息,对于网站的运营推广有很大限制性,所以,对于什么情况下采用前后端分离模式开发,得根据项目的业务方向以及开发开发团队的接受能力来确定。
2:单页面应用(SPA)
单页面Web应用(single page web application,spa),就是只有一个入口的web页面,是加载单个html页面,并且在用户与应用程序交互时动态更新该页面的web应用程序,
单页面优点
1:速度:更好的用户体验,像体验桌面级应用程序般。
2:mvc:经典的mvc开发模式,前后端各司其职。
3:前端路由:页面中url 采用# 作为当前视图的地址,改变hash值,页面局部切换,不会重载。
Angular,Vue,React 这三者都具备了以上优点,能快速,高效地构建单页面应用,开发起来也得心应手。
3:技术选型
得承认,jQuery 是一个非常优秀的框架,现如今国内各大电商型网站,依然有着它的身影,后端模板渲染,多页面,多入口。这样的开发模式,虽然较为落后,但也经得起大风大浪,依然能屹立不倒。
21.17世纪的今天,前端框架层出不穷,该如何选择合适的技术呢?
每个框架都有它的优缺点,没有绝对的好坏,只有绝对的技术创新,锤子科技官网 这样的门户型电商网站,竟然是单页面应用,采用angular2.0 技术开发,这是意料之外的事情,但也证实了这家公司集 技术,设计,创新为一体的科技公司,一直都走在主流技术的道路上。
个人认为,Angular,Vue,React,对于构建 CRUD程序以及移动端应用有很大的优势,比如,后台管理型系统,微信页面开发,Native app开发等。对于要考虑SEO的网站,Angular,Vue,React,就显得有些于事无补了。
难道真的没办法了吗,其实不以为然,解决方案采用nodejs 做中间层,服务端渲染输出。浏览器直接请求的url,nodejs 渲染模板数据返回,局部响应式数据交互,依然可采用api 接口方式。
最终技术方面的确定,还得根据业务需求,项目规模以及团队的接受能力等其他方面综合考虑。
物尽其值,再水框架的也能实现优秀的作品!
物失其值,再优秀的框架也做得出很水的作品!