路由:路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。------维基百科
后端路由
- 使用逻辑:每个页面都有对应的URL,用户请求URL会发送到服务器,服务器会对传来的URL进行匹配,并返回页面,页面也可以是服务端获取数据,然后和模板组合,返回HTML,也可以是直接返回模板HTML,然后由前端js再去请求数据,使用前端模板和数据进行组合,生成想要的HTML。
- 缺点:后端渲染存在性能问题,当项目较大时,加剧了服务器端的压力,同时在浏览器端不能输入制定的url路径进行指定模块的访问。而且通常情况下HTML代码和数据以及对应的逻辑会混在一起, 编写和维护都比较困难。
前端路由
- 前端路由:大部分页面结构不变,只改变部分内容的使用。即改变URL,但是页面不进行整体的刷新。
前后端分离
使用逻辑:后端只提供API来返回数据, 前端通过Ajax获取数据, 并且可以通过JavaScript将数据渲染到页面中,ajax渲染可以提高性能,但不支持浏览器的前进后退。
SPA单页面富应用
- SPA: SPA 就是一个WEB项目只有一个 HTML 页面,一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转。 取而代之的是利用 JS 动态的变换 HTML 的内容,从而来模拟多个视图间跳转。
- 核心:在前后端分离的基础上使用前端路由技术。
- 优势:不存在页面切换问题,因为只在同一个页面间切换,会更流畅,而且可以附加各种动画和过度效果,用户体验更好。
- 缺陷:所有逻辑和业务都在一个页面上,业务复杂后改动起来比较麻烦。并且所有代码都在一个页面,首次加载耗时较长。