spa 流行的今天不少同学会把前端路由跟后端路由弄混, 莫名其妙的怎么页面 404 啦之类'奇怪'的问题, 其实这就是没弄清楚前端路由和后端路由的原因 (当然你用 hash 当我没说).
本文所有前端路由都是 spa 的情况下, 不存在后端渲染好变量的情况首先我们看看前后端路由在浏览器中是怎么工作的, 上图:
后端控制的路由:
我们可以知道后端其实返回的是 html 字符串, 也就是 dom 节点不出意外的话是确认的. 不管你请求多少次, 结果都是确定的 (get 幂等). 所以也就不存在 404 的情况
前端控制的路由:
如果是 spa 的话, 我们可以知道不管你请求那个页面, 在后端处理好的情况下后端都会返回一个 html 文件 (所谓单页的由来), 静态资源当然也是类似的. 那么我们可能有点疑问, 比如一个个人主页, 如果只返回一个 html 文件的话, 怎么得到不同的用户资料呢, 答案就是前端路由 (大部分情况, 不排除本地存储
来源: https://juejin.im/post/5a47618ff265da43176a7b6c