uni-app路由hash和history的区别

uni-app路由hash和history的区别

在uni-app中,路由的hash模式history模式主要影响H5端的表现,其他平台(如小程序、App)因路由机制不同,通常不受此配置影响。以下是两者的核心区别:


1. URL 表现形式

  • Hash 模式
    URL 中包含 # 符号,例如:
    http://example.com/#/home
    路径位于 # 之后,服务器会忽略 # 后的内容,仅请求根页面。

  • History 模式
    URL 无 #,更简洁,例如:
    http://example.com/home
    路径直接反映路由层级,但需要服务器支持。


2. 服务器配置

  • Hash 模式
    无需服务器特殊配置,所有路由请求均指向 index.html,前端自行解析路径。

  • History 模式
    需服务器配置重定向规则,将所有路径请求指向 index.html,否则直接访问或刷新子路由会返回 404。
    常见服务器配置示例(Nginx):

    location / {
      try_files $uri $uri/ /index.html;
    }
    

3. SEO 与兼容性

  • Hash 模式
    部分搜索引擎可能忽略 # 后的内容,对 SEO 不友好,但兼容性极佳(尤其旧浏览器)。

  • History 模式
    URL 更规范,对 SEO 更友好,但需服务器支持,且依赖 HTML5 History API。


4. uni-app 配置方式

manifest.json 的 H5 配置中设置路由模式:

"h5": {
  "router": {
    "mode": "history" // 可选 "hash" 或 "history"
  }
}

5. 多平台差异

  • H5 端:受配置直接影响,需关注部署环境和服务器设置。
  • 小程序/App 端:使用原生导航机制(如小程序路由 API),路由模式配置不生效。
  • 开发调试:本地运行 H5 项目时,可直接观察 URL 变化测试路由行为。

选择建议

  • 选 Hash 模式:追求部署简便、无需服务器配置,或需兼容老旧环境。
  • 选 History 模式:需要美观的 URL、优化 SEO,且能配置服务器支持。

以此我们可以通过合理选择路由模式,以平衡用户体验、调整开发成本和判断部署复杂度。

个人博客相关地址:https://www.gcoulu.cn/archives/uni-applu-you-hashhe-historyde-qu-bie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菰城鸥鹭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值