Als autodidaktisches Back-End weiß ich nicht viel über das Front-End. Kehrt Spa beim Zugriff auf die Website einmal zurück und wechselt dann die Anzeige über das Front-End-Routing? Dann ist der Server nur für die Rückgabe von Daten an Ajax verantwortlich?
你只需要提供一个url链接到前端的index.html页面,然后写好接口API就行了,其他的都交给前端处理。
是的,你理解的没错
只有一个入口文件,靠路由切换组件,后台提供api
1.是不是一次性返回取决于你有没有做了代码异步加载,提取公共部分的处理
2.spa页面的切换是通过前端路由导航的
3.前后端完全分离,代码没有耦合,服务器只提供数据服务,前端通过ajax调用服务端接口,获得数据之后再更新页面。
希望能帮到你。
传统:前端由多个页面组成,后端负责组织数据、实现路由、甚至生成页面内容;前端后端其实是混杂一起的;
当前:前端由单个页面或者少量页面构成(Single Page Application),前端框架负责组织路由,切换页面内容(一般将页面拆分成组件/Componet),后端只负责提供 API 服务并收发数据;
这样前后端就基本分离解耦了。
后端只负责提供前端所需要的数据,其他页面间的切换跳转与用户的交互等逻辑的实现都由前端来完成。
spa单页面只需要一个index.html页面,作为整个项目的入口,然后引入必需的js文件,其他js文件可以按需加载,具体的页面内容可以由js动态生成渲染。有时页面的变化不是重新请求,也不是刷新,而是通过事件驱动,执行对应的方法来重新渲染当前页面。
一切都要从ajax的局部刷新说起.
传统的web, 浏览器输入一个url然后返回一个页面.
后来, 人们发现这样太浪费资源啦, 比如, 我点了个赞, 那么数据库和页面上的赞数都要+1, 这个刷新页面肯定是不行的啊, 那就'局部刷新'吧.
再后来, 机智的开发者又想到, hash路径段(形如#header)是不会像服务器发请求的, 那么我们可以在点击一个锚点的时候加载一个小页面, 局部刷新, 再加上可以操作浏览器的历史记录来实现回退等功能. 那干脆就搞个前端路由吧. 于是前端路由就出现啦.
其实前端路由本质上也是一种局部刷新, 但是更规范. 这次刷新, 拉回来的是一个完整的组件, 这个组件包含了视图和数据. 这里的数据又分为两种, 一种是后端传过来的, 暂且成为数据库数据, 另一种是为了更好地管理视图而在前端生成的数据, 暂且成为视图数据.
一通乱说过后, 我们就可以好好分析一下SPA到底是个什么东西啦.
SPA是single page application的简称, 中文叫单页应用. 何为单页? 就是只有一个页面, 这个页面一般是index.html, 这是项目的入口文件. 自项目启动到结束, 浏览器中始终都是这个页面, 你看到的变化只是组件之间的创建和删除. 比如你在这个页面里引入bootstrap(不是个好主意), 那你所有的组件都会受到bootstrap的影响.
... 实在写不下去了, 剩下的太长啦. 等我哪天写个文章好好说一下. 作为的答案的话, 篇幅实在太大.
简单的来说, 就是前端提供视图, 后端提供json数据. 用后端的数据来渲染前端的页面.