vue-router路由有几种模式?说说它们的区别?

969 阅读1分钟

"Vue Router 提供了三种路由模式:hash 模式、history 模式和 abstract 模式。它们之间的区别如下:

  1. Hash 模式:使用 URL 的 hash(#)来模拟一个完整的 URL,当 URL 的 hash 发生变化时,Vue Router 会监听到变化并进行相应的路由跳转。例如,URL 可能是 http://example.com/#/home。这种模式的好处是它兼容性较好,可以在不支持 HTML5 History API 的浏览器中使用,但是会在 URL 中带有 # 符号。

  2. History 模式:使用 HTML5 History API 来管理路由,通过修改 URL 的 path 部分来进行路由跳转。例如,URL 可能是 http://example.com/home。这种模式的好处是 URL 更加美观,没有 # 符号,但是需要服务器端配置来支持,因为在使用 History 模式时,刷新页面或直接访问某个 URL 时,服务器需要返回对应的页面。

  3. Abstract 模式:这种模式主要用于非浏览器环境,比如服务器端渲染。它不会针对 URL 进行任何的修改,只是通过内存中的路由表来进行路由跳转。

在 Vue Router 中,默认使用的是 hash 模式,即 mode: 'hash'。如果想要使用 history 模式,可以设置 mode: 'history'

下面是一个简单的示例,展示了如何在 Vue Router 中配置不同的路由模式:

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [
  // 路由配置
];

const router = new VueRouter({
  mode: 'hash', // 使用 hash 模式
  routes
});

new Vue({
  router,
  render: h => h(App)
}).$mount('#app');

通过以上配置,我们可以根据需求选择合适的路由模式来进行开发。根据项目情况,如果不需要考虑兼容性问题,可以选择使用 history 模式,否则可以使用默认的 hash 模式。"