那些年我们一起写过的路由 | 青训营笔记

112 阅读6分钟

写在前面

React Router是React官方推荐的路由解决方案,它可以帮助我们实现前端的单页面应用(SPA)。React Router基于浏览器的历史记录和URL地址来管理应用程序的路由。它提供了一些核心概念,如路由组件、路由路径、路由器等,让我们可以轻松地实现不同URL地址对应到不同的组件,并且在切换组件时不会丢失数据。

路由

路由是什么?路由(Routing)是指在Web应用程序中,将用户从一个页面导航到另一个页面的过程。它是一种控制应用程序中不同页面之间跳转的方式,可以让用户通过 URL 地址来访问应用程序中的不同页面。

当用户在浏览器中输入URL地址时,Web服务器会根据路由规则将请求重定向到相应的页面。在客户端浏览器中,JavaScript代码可以根据路由规则动态修改URL,以便加载正确的页面。

通过路由,Web应用程序可以实现更高效的页面切换和管理。例如,在一个多页应用程序中,用户可以通过不同的URL地址访问不同的页面,而不需要重新加载整个应用程序。同时,路由也可以提供更好的用户体验,例如在搜索结果页面上添加分页功能,以便用户可以轻松地浏览多个页面。

网站发展历程

网站的发展历程大致可以分为静态网站、动态网站、前后端分离、单页应用。

静态网站

静态网站是指在Web服务器上创建的网页,它们不包含任何动态内容或交互式元素,如表单、动画或视频等。这些页面通常是由HTML、CSS和JavaScript等Web技术构建而成,可以在浏览器中以静态的形式呈现给用户。

静态网站的优点是易于维护和更新,因为它们的内容不需要依赖于外部API或其他动态资源。此外,由于静态网站的文件较小,因此可以更快地加载和访问。

然而,静态网站也有一些缺点。首先,它们缺乏交互性和动态性,无法提供与用户互动的体验。其次,如果需要更改网站的内容或设计,则需要手动更新每个页面的代码。最后,由于静态网站的文件通常存储在一个中央位置,因此可能会受到DDoS攻击或其他类型的网络攻击的影响。

动态网站

动态网站是指在Web服务器上创建的网页,它们包含一些动态内容或交互式元素,如表单、动画或视频等。这些页面通常使用脚本语言(如PHP、Python、JavaScript)来生成和处理数据,并将结果动态地呈现给用户。

动态网站的优点是具有更高的交互性和响应性,可以提供更丰富的用户体验。此外,由于动态内容是由服务器端代码生成的,因此可以更好地控制网站的安全性和性能。

然而,动态网站也有一些缺点。首先,它们需要更多的资源来处理和生成动态内容,因此可能会比静态网站慢一些。其次,由于动态内容需要依赖于数据库或其他外部API,因此可能会受到网络延迟或其他故障的影响。最后,由于动态网站的内容通常是通过服务器端代码生成的,因此如果需要更改网站的内容或设计,则需要手动更新服务器端代码。

前后端分离

前后端分离是一种Web开发架构,它将前端和后端的功能分开,使得前端和后端可以独立地进行开发、测试和部署。

在传统的Web开发中,前端和后端通常是由同一个人或同一个团队来负责的。这种方式可能会导致一些问题,例如前后端之间的沟通不畅、代码耦合度高、维护难度大等。

前后端分离通过将前端和后端的功能分开,使得它们可以独立地进行开发和测试。前端可以使用各种前端框架和技术来构建交互式、动态的Web应用程序,而后端则可以使用各种后端语言和技术来处理数据和业务逻辑。

单页应用

单页应用(Single Page Application,SPA)是一种Web应用程序开发技术,它将整个Web应用程序渲染为一个单独的页面,而不是通过多个页面来呈现不同的内容。

在传统的Web应用程序中,每个页面都是一个独立的文档,用户必须离开当前页面才能访问其他页面。这会导致用户体验不佳,因为用户需要重新加载整个页面并等待加载时间。而在单页应用中,所有的内容都在同一页面上呈现,用户可以在不离开当前页面的情况下与应用程序进行交互。

单页应用通常使用JavaScript和Ajax等技术来实现异步通信和数据更新。当用户与应用程序进行交互时,应用程序会使用Ajax向服务器发送请求并更新页面内容,而不需要重新加载整个页面。这样可以提高应用程序的响应速度和用户体验。

React Router

React Router的模式分为两种,一种是哈希模式,另一种是history模式。

哈希模式

路由hash模式是一种将URL路径映射到特定路由的方法,它利用了URL中的哈希部分(例如#、?等)来确定要使用的路由。

在路由hash模式中,URL的哈希部分被解析为一个字典,其中键是路由名称,值是路由参数。然后,根据这些参数和路由规则,选择匹配的路由并将其渲染到应用程序中。

history模式

历史模式(History mode)是指浏览器在访问网页时,记录下用户访问过的网页地址和时间,以便用户可以方便地回到之前的浏览历史。

在现代浏览器中,历史模式通常通过一个历史记录面板来实现。该面板显示了用户访问过的所有网页地址,以及它们被访问的时间。用户可以通过单击某个网址来直接跳转到该页面,也可以通过点击“前进”或“后退”按钮来切换到之前或之后的页面。

历史模式对于用户来说非常有用,因为它可以帮助用户快速找到之前访问过的页面,而无需重新输入URL。此外,历史模式还可以帮助网站管理员了解用户的行为,以便优化网站的设计和内容。