前端路由和后端路由

路由

路由是根据不同的url展示不同的内容或页面。简单来说,路由就是URL到函数的映射。


route和router
route就是一条路由,将一个函数和一个URL关联起来,当访问 /users 的时候,会执行 getAllUsers() 函数;当访问 /users/count 的时候,会执行 getUsersCount() 函数。

url是 /login   <->  函数是 getUser()
url是 /users/count <-> 函数是 getUserscount()

** router 可以理解为一个容器,或者说一种机制,它管理了一组 route**。route 只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函数,这个过程是由 router 来处理的

前端路由

不向后台发送请求,不刷新页面,前后端分离 ——> 浏览器中显示的网页中的大部分内容,都是由前端写的 js 代码在浏览器中执行,最终渲染出来的网页。
也可以这么理解:后端返回JSON数据,前端利用预先写的html模板,循环读取JSON数据,拼接字符串,并插入页面。响应页面内容的任务是由前端来做的,根据不同的url更新页面的内容。

使用场景

因此在单页面应用里,大部分页面解构不变,只改变部分页面内容时采用前端路由。
**随着SPA(单页面应用)的普遍使用,前后端开发分离,项目中基本都使用前端路由,通过路由实现页面的变化。**例如,通过vue开发的SPA中,切换路由,并不刷新页面,而是根据路由在虚拟DOM中加载所需要的数据,实现页面内容的改变。

优点:

  1. 用户体验好,页面初始化后,只需要根据路由变换页面内容,不需要再向服务器发送请求,内容变换速度快。
  2. 可以在浏览器中输入指定想要访问的url
  3. 实现了前后端分离,方便开发。可维护性相比于后端路由好
    缺点:
  4. 使用浏览器的前进、后退键的时候会重新发送请求,没有合理的利用缓存
  5. 单页面无法记住之前滚动的位置,无法在前进、后退的时候记住滚动的位置
图解前端路由阶段

后端路由

**服务器直接生产渲染好对应的HTML页面, 返回给客户端进行展示。**在浏览器的地址栏中切换不同的url时,每次都向后台服务器发出请求,服务器根据不同的响应不同的数据,浏览器接收到数据后再进行渲染,所以后端路由会刷新页面,如果网速慢的话,就会看到一个空白页面等待服务端返回数据,后台路由最大的问题就是不能前后端分离。
优点:

  1. 前端耗时少,减少首屏时间,模板统一在后端。

  2. 页面呈现速度快,但是受限于用户带宽。网速慢延迟页面加载,用户体验度不好。

  3. 当项目十分庞大时,加大了服务器端的压力,同时在浏览器端不能输入制定的url路径进行指定模块的访问。
    缺点:

  4. 占用服务器资源

  5. 代码的可维护性相比于前端路由较差

图解

后端路由阶段
在这里插入图片描述
前后端分离阶段
在这里插入图片描述
SPA单页面富应用阶段
在这里插入图片描述

参考

这里是引用
https://blog.csdn.net/qq_41671718/article/details/107059370
https://www.cnblogs.com/songyao666/p/11470030.html
https://zhuanlan.zhihu.com/p/166175382

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值