前端路由 or 后端路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端路由 or 后端路由相关的知识,希望对你有一定的参考价值。

关于这个问题,无论是平时工作中,还是业余学习中,都有过思考。到底什么样的项目适合前端路由,什么样的项目适合后端路由?可能我目前的想法还很稚嫩不成熟,欢迎吐槽。

首先需要明确的是,无论前端还是后端路由,我们看到的 URL 都是马甲,需要通过路由触发/执行真实需要执行的逻辑路径。

先说前端路由,很重要的一点是 页面不刷新,和后端采用 ajax 交互,实际生产中多用在 单页应用 中。举个例子,webapp 一类就比较适合用前端路由,页面不刷新使得交互友好(毕竟移动端请求还是挺耗时的),另外,单页应用通常代码量不大,只提供某一方面的功能(比如猫眼 webapp,只提供电影票功能)。而在单页应用中,通常 大部分页面结构不变,只改变部分内容的使用,这样就使得共用的部分不需要重复请求(js、css 等)。

后端路由为传统的路由方式,也就是传统的后端套模版。首先,我觉得 比较重 的网站适合后端路由,比较重的意思就是网站功能复杂(路由复杂),比如博客园,我倒是觉得如果把博客园细分为多个子站,或许某些子站点可以做单页应用,不过那样又是另外一回事了。后端路由的另外一个极大的问题就是 前后端不分离,因为模版后端控制,那么这部分代码谁来写呢?如果是前端的话,前端本地就要有后端的项目(来写模版),如果是后端,是前端写完静态页面再让后端套模版吗?这样经常会出现样式问题。所以如果是后端路由的项目,我还是建议前端来写模版。

前端路由和后端路由并不是绝对的,有的网站有用全局后端路由、局部前端路由的做法,比如 GitHub,有部分地方(比如项目详情页)有用到 pjax(可以理解为前端路由?)。

以上是关于前端路由 or 后端路由的主要内容,如果未能解决你的问题,请参考以下文章

后端路由(后端渲染)前后端分离(前端渲染)单页面富应用(前端路由)

vue-前端路由和后端路由

前端路由 与 后端路由

前端路由和后端路由

前端路由 VS 后端路由

Vue.js 前端路由与后端烧瓶路由冲突