vue vue-router 如何去掉路由中#

本文介绍如何在Vue项目中使用vue-router去除URL中的'#'符号,通过开启history模式并利用History.pushState()方法实现平滑的页面跳转,提供更好的用户体验。

vue vue-router 如何去掉路由中#

在这里插入图片描述
如上图
想要去掉url地址栏中的“#”,需要开启 history路由模式,想知道具体原理可去了解History.pushState()

开启history路由模式的代码
在这里插入图片描述

在这里插入图片描述

### Vue3 中 vue-router 动态路由实现 #### 创建基础项目结构并安装依赖 为了在 Vue 3 项目中使用 `vue-router` 的动态路由功能,首先需要创建一个基本的 Vue 3 应用程序,并安装必要的包。 ```bash npm install vue@next vue-router@4 ``` #### 配置路由器实例 接下来,在项目的入口文件(通常是 `main.js` 或者 `main.ts`),配置一个新的 Vue Router 实例: ```javascript // main.js import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; import { createRouter, createWebHistory } from &#39;vue-router&#39; const app = createApp(App) app.use(createRouter({ history: createWebHistory(), routes: [ { path: &#39;/&#39;, name: &#39;home&#39;, component: () => import(&#39;./components/Home.vue&#39;) }, // 定义带有参数的动态路由 { path: &#39;/user/:id&#39;, name: &#39;userProfile&#39;, component: () => import(&#39;./components/UserProfile.vue&#39;), children: [ { path: &#39;:userId/orders&#39;, name: &#39;userOrders&#39;, component: () => import(&#39;./components/UserOrders.vue&#39;) } ] } ] })) app.mount(&#39;#app&#39;) ``` 这段代码展示了如何设置具有嵌套子路径的动态路由[^3]。这里 `/user/:id` 是父级动态路由,而 `:userId/orders` 则作为其下的子路由#### 使用 Vuex 存储和更新路由信息 对于更复杂的场景,比如基于权限或其他条件加载特定模块时,则可以考虑利用 Vuex 来管理和持久化这些变化后的路由数据。 ```javascript // store/index.js export default createStore({ state() { return { additionalRoutes: [] }; }, mutations: { ADD_ROUTE(state, route) { this.router.addRoute(route); state.additionalRoutes.push(route); } } }); ``` 当应用程序启动或用户登录成功后,可以通过调用 `this.$store.commit(&#39;ADD_ROUTE&#39;, newRoute)` 方法向现有路由表添加新条目[^1]。 #### 处理动态路由匹配 为了让组件能够响应不同的 URL 参数值,可以在模板内部访问 `$route.params` 对象获取当前激活的路由参数。 ```html <!-- UserProfile.vue --> <template> <div class="profile"> <h1>User Profile</h1> <p>ID: {{ $route.params.id }}</p> <!-- 显示传入ID --> <router-view></router-view> <!-- 渲染子路由的内容 --> </div> </template> <script setup> import { useRoute } from "vue-router"; const route = useRoute(); console.log(`Current user id is ${route.params.id}`); </script> ``` 此示例说明了如何在一个名为 `UserProfile` 的组件内展示来自 URL 的用户 ID 并支持进一步导航至该用户的订单详情页[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值