当前位置:首页 > VUE

vue实现导航跳转

2026-01-15 06:54:13VUE

vue-router 基本跳转方法

在 Vue 项目中实现导航跳转主要通过 vue-router 完成。安装路由依赖:

npm install vue-router

在 router/index.js 中配置路由:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: () => import('../views/About.vue') }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

声明式导航

使用 <router-link> 组件实现跳转:

<router-link to="/">首页</router-link>
<router-link :to="{ name: 'about' }">关于</router-link>

带参数的跳转示例:

<router-link :to="{ path: '/user', query: { id: 123 } }">用户</router-link>
<router-link :to="{ name: 'profile', params: { username: 'john' } }">个人资料</router-link>

编程式导航

通过 router.push() 方法跳转:

// 字符串路径
this.$router.push('/about')

// 带查询参数
this.$router.push({ path: '/user', query: { id: '123' } })

// 命名路由带参数
this.$router.push({ name: 'user', params: { userId: '123' } })

替换当前路由(不保留历史记录):

vue实现导航跳转

this.$router.replace('/login')

前进/后退导航:

this.$router.go(1)  // 前进
this.$router.go(-1) // 后退

路由守卫控制跳转

全局前置守卫:

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

组件内守卫:

vue实现导航跳转

export default {
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被验证前调用
    next()
  },
  beforeRouteLeave(to, from, next) {
    // 导航离开该组件的对应路由时调用
    next()
  }
}

动态路由匹配

带参数的路由配置:

{
  path: '/user/:id',
  component: User,
  props: true // 将参数作为 props 传递
}

在组件中获取参数:

// 通过 props
props: ['id'],

// 或通过 $route
this.$route.params.id

嵌套路由实现

配置子路由:

{
  path: '/user/:id',
  component: User,
  children: [
    { path: 'profile', component: Profile },
    { path: 'posts', component: Posts }
  ]
}

在父组件中添加 <router-view>

<div class="user">
  <h2>User {{ $route.params.id }}</h2>
  <router-view></router-view>
</div>

标签: 跳转vue
分享给朋友:

相关文章

实现.vue文件

实现.vue文件

创建.vue文件的基本结构 一个标准的.vue文件包含三个部分:模板(template)、脚本(script)和样式(style)。这种结构允许开发者在一个文件中管理组件的HTML、JavaScrip…

vue 实现loading

vue 实现loading

Vue 实现 Loading 的方法 使用 v-if 和 v-show 控制显示 在 Vue 中可以通过 v-if 或 v-show 控制 loading 组件的显示与隐藏。v-if 会动态创建或销毁…

vue实现爬虫

vue实现爬虫

Vue 实现爬虫的基本思路 Vue.js 本身是一个前端框架,主要用于构建用户界面。要实现爬虫功能,通常需要结合后端技术或浏览器自动化工具。以下是几种常见的方法: 方法一:Vue + Node.js…

vue 轮询实现

vue 轮询实现

轮询的基本概念 轮询是一种通过定时向服务器发送请求来获取最新数据的技术。适用于需要实时更新但无法使用WebSocket的场景。 使用setInterval实现轮询 在Vue组件中,可以通过setIn…

vue实现上划

vue实现上划

Vue 实现上划功能 在Vue中实现上划功能,可以通过监听触摸事件(touchstart、touchmove、touchend)来判断用户的手势方向。以下是实现上划功能的几种方法: 监听触摸事件 通…

vue实现指引

vue实现指引

Vue 实现指引功能 Vue 中实现指引功能可以通过多种方式完成,常见的有使用第三方库或自定义实现。以下是几种常见方法: 使用第三方库(如 driver.js) 安装 driver.js: np…