当前位置:首页 > VUE

vue路由实现his

2026-01-18 19:53:24VUE

Vue 路由实现 History 模式

Vue Router 默认使用 hash 模式(URL 中的 #),但可以通过配置启用 HTML5 History 模式,消除 # 并保持单页应用特性。

启用 History 模式

在 Vue Router 配置中设置 mode: 'history'

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

服务器端配置

History 模式需要服务器支持,确保所有路由请求返回 index.html,否则刷新页面会导致 404。以下是常见服务器的配置示例:

vue路由实现his

Nginx

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

Apache

vue路由实现his

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

Node.js (Express)

const express = require('express');
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname, 'dist')));
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist', 'index.html'));
});

注意事项

  • SEO 优化:History 模式对搜索引擎更友好,但需确保动态路由的 meta 信息正确。
  • 404 处理:需在服务器和前端路由中定义 404 回退逻辑。
  • 基础路径:若项目部署在子目录(如 /app/),需设置 base 选项:
    const router = new VueRouter({
      mode: 'history',
      base: '/app/',
      routes: [...]
    })

前端路由守卫

History 模式下可通过导航守卫控制权限或重定向:

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // 检查登录状态
    next({ path: '/login' });
  } else {
    next();
  }
});

通过以上配置和注意事项,可无缝实现 Vue Router 的 History 模式。

标签: 路由vue
分享给朋友:

相关文章

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现弹幕

vue实现弹幕

Vue 实现弹幕功能 弹幕功能通常包括动态生成、滚动显示、颜色和速度随机化等特性。以下是基于 Vue 3 的实现方法。 核心思路 使用 CSS 动画控制弹幕从右向左滚动。 动态生成弹幕数据,随机设置…

vue实现 hover

vue实现 hover

实现 Vue 中的 hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是常见的几种方法: 使用 CSS 伪类 最简单的方式是直接使用 CSS 的 :hover 伪类,无…