哈希路由和history路由都是前端路由实现的两种方式,他们主要的区别就在于URL中的#号字符和实现机制不同
哈希路由:
哈希(#) 路一样的实现方式是通过解析URL中的哈希值来确认需要加载的组件或页面,当用户访问URL时,并不会向服务器发送请求,而是在客户本地端上根据哈希值来确人需要加载的页面或者组件。
1.历史记录不会和服务器产生交互,不会被记录到服务器,因为url的路径并没有发生变化
2.可以直接访问特定的页面,因为根据url的哈希值可以确定需要加载的页面或者组件。
3.可以在前端使用javaScript 来修改URL的哈希值,从而实现动态路由。
history 路由
History 路由是通过HTML5的History来实现,通过修改url中的路劲参数(path)来切换不同的页面或者组件,当用户访问url时会向服务器发送请求,并返回到相应的页面或者组件。这种实现方式虽然更加直观,但需要服务器端做一些配置,以保证用户在刷新或直接访问某个URL时页面正确响应。
1.历史记录会被记录在服务器,并且可以使用浏览器的前进和后退来切换不同的历史记录
2.必须依靠服务器来返回不同的页面和组件
3.不可以直接将参数直接拼接在url。
总的来说,哈希路由和History路由虽然都是前端路由的实现方式,但是它们的工作原理和实现方法有所不同。哈希路由使用 URL 中的哈希符号来实现页面跳转,而History路由则是通过调用浏览器提供的 history API 实现页面的前进和后退操作,同时,History路由还可以更好的支持搜索引擎爬虫,因此在实际应用中更受到开发者的欢迎。