路由是什么?
路由(Router)是一种负责寻径的网络设备,它在互连网络中从多条路径中寻找通讯量最少的一条网络路径提供给用户通信。路由用于连接多个逻辑上分开的网络。对用户提供最佳的通信路径
路由是桥梁,帮助需求方找到供给方,并进行交换
之前我们说到过浏览器输入URL之后的历程,那是什么东西承担了这个责任呢?
Provider
而在前端发展的过程里,扮演此处的Provider角色的节点也在不断的变化
发展历程
静态网站
在静态Web程序中,客户端使用Web浏览器(IE、FireFox等),使用HTTP协议发起一个请求,告诉服务器我现在需要得到哪个页面,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。
动态网站
如果客户端请求的是动态资源(.jsp、.asp/.aspx、.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。
前后端分离
前端只需要独立编写客户端代码,后端也只需要独立编写服务端代码提供数据接口即可
前端通过AJAX请求来访问后端的数据接口,将Model展示到View中即可
单页应用
单页面应用(SPA 是 single page web application 的缩写,即单页Web应用),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制,通过JavaScript动态控制页面中显示的内容,从而模拟出多个页面的效果。
SPA在现在非常常见,当前流行的Vue、React等许多框架都使用了SPA。最直观的感受就是,当你在当前页面触发了某个跳转使当前的网页URL改变了,但是你依然停留在当前页面,并没有打开新窗口或者刷新到新页面。
要实现SPA,需要前端路由来监听页面URL的变化从而对页面有所响应。前端路由有两种模式:hash 模式和 history 模式。接下来先说说这两种模式的实现方法。
SSR/SG/微前端
如何结合项目路由做项目瘦身?
如何结合项目路由提升页面渲染性能?