Vue3.0路由将哈希(hash)更改为历史(history)模式

本文详细介绍了如何在Vue.js项目中将路由哈希模式更换为history模式,包括修改配置文件中的根路径、处理全局的哈希跳转以及注意事项,如location.replace的替换以防止页面刷新。
摘要由CSDN通过智能技术生成

步骤

  1. 将路由替换为history模式
  2. 更换配置文件中配置的根路径
  3. 查找项目中存在的哈希跳转

将路由替换为history模式

import {
  createRouter,
  createWebHistory,
} from 'vue-router'

const router = createRouter({
  history: createWebHistory(), //可指定根路径
  routes,
})

更换配置文件中配置的根路径

此处为vite.config.ts

export default defineConfig({
  base: '/', // 设置打包路径
})

查找项目中存在的哈希跳转

全局搜索

 (`#/ 替换为 (`/

若存在 location.replace 需替换成 router.replace 否则页面会刷新

要将 Vue哈希路由hash mode)改为 history 路由history mode),可以按照以下步骤进行操作: 1. 首先,确保您的项目已经安装了 Vue Router。如果尚未安装,可以使用以下命令进行安装: ```bash npm install vue-router ``` 2. 在项目的主入口文件(一般是 `main.js`)中导入 Vue Router,并创建一个路由实例: ```javascript import Vue from 'vue'; import VueRouter from 'vue-router'; import App from './App.vue'; Vue.use(VueRouter); const router = new VueRouter({ mode: 'history', // 设置为 history 路由模式 routes: [ // 定义路由 // ... ], }); new Vue({ render: (h) => h(App), router, // 将路由实例添加到根组件中 }).$mount('#app'); ``` 注意,这里的关键是将 `mode` 设置为 `'history'`。 3. 在服务器端进行配置,以确保在使用 history 路由时能够正确处理路由请求。这是因为在 history 路由模式下,直接访问某个路由路径时,服务器需要返回对应的页面。例如,在使用 Node.js/Express 作为服务器时,可以添加如下配置: ```javascript const express = require('express'); const path = require('path'); const app = express(); app.use(express.static(path.join(__dirname, 'dist'))); // 处理所有路由请求,返回 index.html app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'dist', 'index.html')); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 这样,当用户直接访问某个路由路径时,服务器会返回 `index.html`,然后在客户端由 Vue Router 接管路由的处理。 4. 最后,根据您的需求,使用 Vue Router 的路由功能进行定义和使用路由。 这样,您就成功将 Vue哈希路由改为history 路由。记得在切换路由时,不再出现 `#` 符号,URL 加美观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值