溪客(编程代码) 溪客(编程代码)

  • 今天是2025年12月18日 Thursday
  • 首页
  • 知识
  • 网址
  • AI助手

Vue

首页 / 知识 / Vue
  • 绑定 Style
  • 绑定 Class
  • $set
  • $nextTick
  • $emit
  • v-cloak
  • 更新视图
  • 动画
  • 禁止回车提交
  • 自定义组件不显示
  • vue3
    • 状态管理
    • 组件间跳转
    • rsbuild添加index.html
    • vue3基础示例
  • 代码
    • 后退捕获及再按一次退出
### Vue 组件间跳转(中文说明) 在 Vue(特别是 Vue 3 + Vue Router)中,**组件间跳转通常指的是页面(视图)之间的导航**,也就是从一个组件(页面)跳转到另一个组件(页面)。这种跳转一般是通过 **路由(vue-router)** 实现的。 --- ## 一、前提:使用 Vue Router(vue-router 4.x,适配 Vue 3) 如果你的项目是 Vue 3,那么你应该使用的是 **vue-router 4**。 ### 1. 安装 vue-router(如未安装) ```bash npm install vue-router@4 ``` --- ## 二、基本用法:组件间跳转(路由跳转) ### 1. 配置路由(router/index.js 或 router/index.ts) ```javascript // src/router/index.js import { createRouter, createWebHistory } from 'vue-router' import Home from '@/views/Home.vue' import About from '@/views/About.vue' import Login from '@/views/Login.vue' const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, { path: '/login', component: Login }, ] const router = createRouter({ history: createWebHistory(), routes }) export default router ``` ### 2. 在 main.js 中挂载路由 ```javascript // src/main.js import { createApp } from 'vue' import App from './App.vue' import router from './router' const app = createApp(App) app.use(router) app.mount('#app') ``` --- ### 3. 在App.vue中放router-view ```javascript ``` ## 三、组件间跳转的几种方式 ### ✅ 方式 1:使用 ``(声明式导航,推荐用于 a 标签式跳转) ```vue ``` 🔹 特点:类似 `` 标签,SEO 友好,用户可右键打开等。 --- ### ✅ 方式 2:使用编程式导航(JS 代码控制跳转,比如按钮点击跳转) 在 Vue 组件中,通过 `useRouter()` 进行路由跳转: ```vue ``` 🔹 `router.push()`:跳转到新路由,保留当前历史记录,可返回 🔹 `router.replace()`:替换当前路由,不可返回(类似 HTTP 301) 🔹 `router.go(n)`:前进后退,如 `router.go(-1)` 返回上一页 --- ## 四、获取路由参数 ### 1. 通过 query 传参(即 ?id=123) 跳转时: ```javascript router.push({ path: '/user', query: { id: 123 } }) ``` 接收参数(在目标组件中): ```vue ``` --- ### 2. 通过 params 传参(需配合命名路由,通常用于 ID 类路径 /user/1) 路由配置: ```javascript { path: '/user/:id', name: 'user', component: User } ``` 跳转时: ```javascript router.push({ name: 'user', params: { id: 123 } }) // 跳转到 /user/123 ``` 接收参数: ```vue ``` ⚠️ 注意:**params 不能与 path 一起使用**,必须配合 `name` 和动态路由配置。 --- ## 五、总结:Vue 组件间跳转方式对比 | 方式 | 用法 | 适用场景 | 是否可返回 | 备注 | |------|------|----------|-------------|------| | `` | 声明式,模板中写 | 普通链接跳转 | ✅ 可返回 | 类似 ``,SEO 友好 | | `router.push('/path')` | 编程式,JS 控制跳转 | 按钮点击跳转 | ✅ 可返回 | 最常用 | | `router.push({ path, query })` | 带查询参数跳转 | 需要附参数但不改 URL 结构 | ✅ | 如:/user?id=123 | | `router.push({ name, params })` | 带路径参数跳转 | /user/123 形式 | ✅ | 需路由配置 name 和动态段 | | `router.replace()` | 替换当前路由 | 登录后跳转,不留历史 | ❌ 不可返回 | 类似 301 重定向 | | `router.go(n)` | 前进后退 | 浏览器历史控制 | - | 如 go(-1) 返回上页 | --- ✅ **推荐做法:** - 一般页面跳转使用 `` 或 `router.push()` - 带参数推荐使用 `query`(简单直观)或 `params`(路径美观,如 /user/1) - 使用 `useRouter()` 和 `useRoute()` 来控制与获取路由信息 --- 如你有具体场景(比如登录后跳转首页、传递用户 ID 等),可以进一步给出代码示例。
© 2022 - 溪客(编程代码) - 粤ICP备10217501号 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)