History 和 Hash 两种路由的区别

266 阅读1分钟

今天遇到一个问题,写Vue项目的时候习惯性的使用 history 模式的路由,但是之前是自己起一个nginx做一个404重定向到index.html,但是发现直接使用hash模式的时候是不用做这些操作的,不会存在这种404的问题,究其原因还是因为history是每次刷新都需要返回html信息的。

Hash

hash模式最直观的地方就在于会在路由上加一个#,形如localhost:8080/#/console,这样的。好吧这个路由看起来有点丑,他的特点在于#会存在与理由中,不会存在于HTTP请求中,每次更改路由都是直接修改#后面的东西。不会重新加载页面,所以使用这种模式的时候不会发生刷新也不需要返回html资源。

History

这种模式就很有意思了,颜值高,直接就是 localhost:8080/console这样,特点就在于每次修改都需要返回html信息,所以要么后端做个404重定向到index.html要么前端自己配。

当然在兼容性封面上,

hash模式可以兼容到ie8

参考别人的博客 History 和 Hash 的区别