当前位置:首页 > 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' } })

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

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()
  }
})

组件内守卫:

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>

vue实现导航跳转

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

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

相关文章

vue实现屏幕共享

vue实现屏幕共享

Vue 实现屏幕共享的方法 使用 WebRTC 和 getDisplayMedia API 通过 navigator.mediaDevices.getDisplayMedia 捕获屏幕内容,结合 We…

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Jes…

vue实现展开与收起

vue实现展开与收起

Vue 实现展开与收起功能 在 Vue 中实现展开与收起功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-show 或 v-if 控制显示 通过 Vue 的指令 v-show 或 v-if…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue  实现tab

vue 实现tab

实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染完成。以下是两种常见方法: 使用 v-if 或 v-show 实现条件渲染 通过绑定 currentTab 变量…

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…