Vue路由跳转实现指南

ops/2025/2/26 15:23:49/

在 Vue 中实现路由跳转主要依赖于 Vue Router 库。以下是详细步骤和示例代码:


1. 安装 Vue Router

使用 npm 或 yarn 安装:

npm install vue-router
# 或
yarn add vue-router

2. 配置路由

创建路由实例 (router/index.js)
javascript">import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'
import User from '../views/User.vue'Vue.use(VueRouter)const routes = [{path: '/',redirect: '/home' // 重定向到首页},{path: '/home',name: 'Home',component: Home},{path: '/about',name: 'About',component: About,// 路由独享守卫beforeEnter: (to, from, next) => {console.log('进入 About 页');next();}},{path: '/user/:id', // 动态路由name: 'User',component: User,props: true // 将路由参数作为 props 传递},{path: '*', // 404 页面component: () => import('../views/NotFound.vue') // 路由懒加载}
]const router = new VueRouter({mode: 'history', // 去掉 URL 中的 # 号routes
})// 全局前置守卫
router.beforeEach((to, from, next) => {console.log(`跳转到 ${to.path}`);next(); // 确保调用 next()
})export default router

3. 挂载路由到 Vue 实例 (main.js)

javascript">import Vue from 'vue'
import App from './App.vue'
import router from './router'new Vue({router, // 注入路由render: h => h(App)
}).$mount('#app')

4. 在组件中使用路由

模板中跳转:<router-link>
<template><div><nav><router-link to="/home">首页</router-link><router-link :to="{ name: 'About' }">关于</router-link><router-link :to="'/user/' + userId">用户页</router-link></nav><router-view></router-view> <!-- 路由出口 --></div>
</template><script>
export default {data() {return {userId: 123}}
}
</script>

编程式导航:this.$router.push()
javascript">// 方法示例
methods: {goToHome() {this.$router.push('/home');},goToAbout() {this.$router.push({ name: 'About' });},goToUser() {this.$router.push({ path: `/user/${this.userId}` });},replace() {this.$router.replace('/home'); // 替换当前历史记录}
}

5. 处理动态路由参数

User.vue 组件中获取参数:

<template><div><h1>用户 ID: {{ id }}</h1><!-- 或通过 $route.params.id 访问 --></div>
</template><script>
export default {props: ['id'], // 通过 props 接收参数(需在路由配置中设置 props: true)created() {console.log(this.$route.params.id); // 通过 $route 对象获取}
}
</script>

6. 嵌套路由

配置子路由:

javascript">// router/index.js
{path: '/settings',component: Settings,children: [{path: 'profile',component: Profile},{path: 'account',component: Account}]
}

Settings.vue 中放置嵌套的 <router-view>

<template><div><h1>设置</h1><router-link to="/settings/profile">个人资料</router-link><router-link to="/settings/account">账户</router-link><router-view></router-view></div>
</template>

关键点总结

  1. 路由模式mode: 'history' 用于去除 URL 中的 #
  2. 懒加载:使用 () => import('./Component.vue') 分割代码块。
  3. 导航守卫:控制路由跳转逻辑(全局、路由独享、组件内)。
  4. 路由传参
    • 动态参数:/user/:id + $route.params.id
    • 查询参数:/user?name=John + $route.query.name
    • Props 传参:更解耦的方式。
  5. 错误处理:通配符路由 path: '*' 用于 404 页面。

通过以上步骤,你可以在 Vue 应用中实现灵活的路由跳转和页面导航。


http://www.ppmy.cn/ops/161440.html

相关文章

Unity汽车笔记

汽车的移动和转向 我们知道&#xff0c;汽车的前进后退是变速运动。按w&#xff0c;汽车开始加速&#xff0c;到最大速度后保持匀速&#xff0c;松开w&#xff0c;汽车受到阻力加速。如果按s减速&#xff0c;则以更大的加速度减速。后退反之。 按A/D时前轮偏转。只有前进后退…

【AIGC】使用Python实现科大讯飞语音服务ASR转录功能:完整指南

文章目录 讯飞ASR转写API完整指南1. 引言2. 讯飞ASR API介绍3. API参数说明3.1 认证参数3.2 上传参数3.3 查询结果参数3.4 orderResult 字段3.5 Lattice 字段3.6 json_1best 字段3.7 st 字段 4. Python代码实现4.1 生成签名4.2 上传音频文件4.3 获取转写结果4.4 解析转写结果 5…

当AI搜索撕开传统搜索的裂缝,警惕AI搜索的“信息茧房”

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 人工智能&AIGC术语100条 Shelly聊AI-重…

Selenium 与 Coze 集成

涵盖两者的基本概念、集成步骤、代码示例以及相关注意事项。 基本概念 Selenium:是一个用于自动化浏览器操作的工具集,支持多种浏览器(如 Chrome、Firefox 等),能够模拟用户在浏览器中的各种操作,如点击、输入文本、选择下拉框等,常用于 Web 应用的自动化测试。Coze:它…

Matlab Simulink创建Clark和Park变换模型

目录 概述 1 数学模型 1.1 Calrk变换数学原理 1.2 Park变换的数学原理 2 创建模型 2.1 模型架构 2.2 创建子模块 2.2.1 3路正弦波形模块( single_sin) 2.2.2 Clark转换模块 2.2.3 Plark转换模块 3 创建仿真模型 3.1 输入信号 3.2 输出信号 4 运行仿真模型 概述…

在Spring Boot中如何使用Freemaker模板引擎

在 Spring Boot 中使用 FreeMarker 模板引擎可以帮助你创建动态的 Web 页面。以下是详细的步骤和示例代码,介绍如何在 Spring Boot 项目里集成和使用 FreeMarker。 1. 添加依赖 如果你使用的是 Maven 项目,需要在 pom.xml 文件中添加 FreeMarker 相关依赖。Spring Boot 提供…

机器视觉3D中,深度图转点云图精度损失分析

在机器视觉3D中,将深度图转换为点云的过程中是否损失精度,取决于多个因素。以下是详细分析: 理论上的无损性 从数学角度看,深度图到点云的转换本身是无损的。转换过程仅涉及坐标系的映射,公式为: 实际应用中的精度损失来源 尽管数学上无损,实际应用中精度损失可能来自以…

分布式之Raft算法

参考&#xff1a; 分布式算法 - Raft算法 | Java 全栈知识体系 Raft 算法详解 | JavaGuide 分布式 | CS-Notes 面试笔记