hash 路由和 history 路由的区别

  1. Hash 路由(Hash Routing):

    • URL 结构: 使用URL中的哈希部分(#)来表示不同的路由。例如,http://example.com/#/page1
    • 实现方式: 前端路由器通过监听 window.onhashchange 来判断路由的改变。
    • 哈希值变化会加到浏览器的历史记录中,可以通过前进后退按钮跳转
    • 优点: 兼容性较好,因为哈希部分的变化不会导致浏览器向服务器发送新的请求,可以在不刷新页面的情况下改变路由。哈希值不会出现在http请求的url中
    • 缺点: URL中的哈希部分虽然不会触发页面刷新,但在一些SEO优化和服务器渲染等方面可能存在一些限制。
  2. History 路由(History API Routing):

    • URL 结构: 使用标准的URL路径表示不同的路由。例如,http://example.com/page1
    • 实现方式: 前端路由器使用HTML5的History API,主要包括 pushState replaceState方法,这些方法允许修改浏览器历史记录而不引起页面刷新。
    • 路由变化会发送新请求给服务端,如果服务端没配置,会出现404的情况
    • 优点: URL更加清晰,更符合传统的URL结构,有助于SEO和服务器渲染。不使用哈希部分,可以更自由地设计URL。
    • 缺点: 兼容性相对较差,因为一些老旧的浏览器不支持HTML5的History API。需要服务器配置以支持前端路由。

相关推荐

  1. hash history 区别

    2024-01-16 13:52:03       55 阅读
  2. hashhistory模式区别

    2024-01-16 13:52:03       35 阅读
  3. Vue hashhistory两种区别

    2024-01-16 13:52:03       51 阅读
  4. hashhistory模式区别

    2024-01-16 13:52:03       33 阅读
  5. Vue2面试题:说一下模式hashhistory区别

    2024-01-16 13:52:03       51 阅读
  6. 浅谈前端原理hashhistory

    2024-01-16 13:52:03       47 阅读
  7. vue3 hashhistory模式配置

    2024-01-16 13:52:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 13:52:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 13:52:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 13:52:03       82 阅读
  4. Python语言-面向对象

    2024-01-16 13:52:03       91 阅读

热门阅读

  1. js let 和 var 的区别

    2024-01-16 13:52:03       58 阅读
  2. Unix Network Programming Episode 84

    2024-01-16 13:52:03       35 阅读
  3. Leetcode刷题(二十四)

    2024-01-16 13:52:03       58 阅读
  4. 01-15网络编程-XML

    2024-01-16 13:52:03       47 阅读
  5. vue选项式API和组合式Api

    2024-01-16 13:52:03       69 阅读
  6. this的指向

    2024-01-16 13:52:03       46 阅读
  7. 条款41:了解隐式接口和编译器多态

    2024-01-16 13:52:03       62 阅读
  8. C++面试合集问题之堆、栈

    2024-01-16 13:52:03       45 阅读
  9. c语言中文件读入处理写入实战

    2024-01-16 13:52:03       54 阅读
  10. 2.1 数组

    2024-01-16 13:52:03       55 阅读