前后端分离是什么意思?

2016-12-31 00:10:29 +08:00
 coolair
我原来一直以为就是前端写好 html 然后扔给后端,后端套上去就算是前后端分离了,比如, Python 下的 Web 框架基本就是这样, Jinja2 。
后面看到一哥们说他写了个前后端分离的网站,后端全部是 restful ,然道,真正的前后端分离就是后端不写页面了?全部提供 API ,然后给前端,前端用 React 、 Vue 之类的框架去调数据?
6991 次点击
所在节点    问与答
15 条回复
holyghost
2016-12-31 00:12:34 +08:00
总觉得这是一种因为前端工作量不饱和而产生的技术。
showonne
2016-12-31 00:34:13 +08:00
是的,前端只负责视图的渲染模板和样式,后端负责为前端提供 API 。
zdkmygod
2016-12-31 00:51:49 +08:00
类似客户端程序,前端发起 Ajax 请求直接调用后端 API 。
kingcos
2016-12-31 01:14:10 +08:00
最近刚好有在学习……
后端只负责提供 RESTful API ,
前端可以用 Ajax 调用,
移动端也可以调用。
我在写一个课设,
前端准备用 Vue.js ,后端 Spring Boot … 移动端未来再写
可我总是感觉前端东西太多太活了……不好速成……😂
不过这样分离的挺好的……虽然这个课设全都是我一个人写……
但我也讨厌 JSP 这种 HTML 里嵌套 Java 代码。。
Tink
2016-12-31 03:46:19 +08:00
gdtv
2016-12-31 06:17:02 +08:00
前后端分离, SEO 怎么办?
bigzhu
2016-12-31 08:11:18 +08:00
@gdtv vuejs 有 ssr 模块,也有一些其他方案。
caixiexin
2016-12-31 09:28:58 +08:00
简单的说就是原来的页面渲染工作丢给前端去做。
以前页面渲染的工作是服务端完成的,由后端语言的页面模板( jsp 、 jinjia2 什么的)+数据渲染 html 。
前后端分离后,变成浏览器从服务端取回 restful api 数据(一般是 json ),再前端模板渲染成 html 。
SEO 嘛,好像没有很好的解决方案? 所以一般完全使用前后端分离的都是单页应用( SPA ),电商、门户之类的,还是用后端渲染的多。
hoichallenger
2016-12-31 09:54:56 +08:00
我一直想知道,前后端分离用英语怎么说。
viko16
2016-12-31 10:04:29 +08:00
@gdtv 在 node 端做
ChefIsAwesome
2016-12-31 10:11:50 +08:00
就是后端给 api ,客户端渲染。完全的前后端分离也是一步一步发展过来的。

1.就算是以内容为主的网站,内容也已经是客户端渲染的了:
想想现在大部分网站上面,内容列表的翻页、滚动加载,是不是都是客户端 ajax 去调接口,然后在客户端渲染的?主体内容都是客户端渲染的了,后端光渲染个导航栏什么的,意义也不大。

2.后端只能提供数据,不能实现交互。
比方讲要实现一个下拉选择框,如果是后端渲染,那么实现是这样的:后端生成下拉框的内容,这部分内容在页面加载的时候是被隐藏的。客户端在页面加载之后,读取这部分内容,再通过 js 生成下拉框。这样的过程里,后端只起到了提供数据的作用,它是在页面里渲染了 html 还是渲染了一个 json 没有区别。交互性越强的网页,需要通过 js 生成的组件越多,与其后端往页面里头塞数据,不如直接客户端通过 api 去请求数据了。
changwei
2016-12-31 10:24:45 +08:00
我觉得楼主可以和一些从未接触过后端开发的前端一起做一个小项目,然后就能理解为什么要前后端分离了。

很多时候套模板引擎,修改 url ,各种杂事情都要交给后端来做,如果需求改来改去,你会爆炸的。
learnshare
2016-12-31 10:27:52 +08:00
murmur
2016-12-31 10:29:01 +08:00
你知道就行,分离不分离,前端都要兼职一点后端的工作
前端你做完就需要 ajax 接口了是吧。。那接口顺便你也写了好了
这东西是方便维护 可以复用接口 但是并不减少前端的工作
phpdever
2017-01-01 10:15:33 +08:00
楼主,你理解的叫前后端分开,而不是前后端分离。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331375

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX