vue-router中的hash和history
时间: 2023-04-24 10:01:13 浏览: 96
vue-router中的hash模式和history模式是两种不同的路由模式。
hash模式会在URL中添加一个#号,例如http://example.com/#/about。这种模式在不支持HTML5 History API的浏览器中可以正常工作。
history模式会把URL变成真实的路径,例如http://example.com/about。这种模式需要服务端的配合,因为所有的路由请求都会被代理到同一个HTML文件上。
默认情况下,vue-router使用hash模式。但可以通过配置来改变它的行为。
相关问题
vue-router hash模式
Vue Router 是 Vue.js 官方的路由管理器,可以用来实现单页应用的路由功能。hash 模式是 Vue Router 的一种路由模式,它使用 URL 的 hash(即 # 符号后面的部分)来模拟路由,不会触发浏览器的页面刷新。
在使用 Vue Router 时,默认情况下会使用 hash 模式。你可以在创建 Vue Router 实例时,通过配置 `mode: 'hash'` 来启用 hash 模式。例如:
```javascript
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'hash',
routes: [
// 配置路由
// ...
]
});
new Vue({
router,
// ...
}).$mount('#app');
```
在 hash 模式下,路由会被解析为 `/#/path` 的形式,其中 path 是你定义的路由路径。当 URL 的 hash 改变时,Vue Router 会根据配置的路由表,动态渲染对应的组件。
需要注意的是,hash 模式不支持服务端渲染,如果你需要进行服务端渲染,请使用历史模式(history mode)。
希望这个回答对你有所帮助!如果你有更多问题,请继续提问。
vue-router为什么要使用history模式
呵呵,你知道吗?有个程序员因为不会用vue-router的hash模式,结果调了一整天,最后发现是他自己用了一个叫做“#”的变量名,把vue-router的hash模式给冲突了。不过,回到你的问题,vue-router使用history模式是为了让URL更加美观,而不是出现一堆奇怪的参数和符号,同时也可以让搜索引擎更好地收录页面。