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

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

vue实现导航跳转

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

相关文章

vue实现选区

vue实现选区

Vue 实现选区的基本方法 在Vue中实现选区功能通常涉及DOM操作和事件处理。以下是几种常见的方法: 使用原生JavaScript的Selection API 通过window.getSelec…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery 或…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signatu…

vue diff实现

vue diff实现

Vue Diff 算法实现原理 Vue 的虚拟 DOM Diff 算法(即 patch 过程)是其高效渲染的核心,主要通过对比新旧虚拟节点的差异,最小化 DOM 操作。以下是关键实现要点: 同层级比…

vue computed实现

vue computed实现

计算属性的基本用法 在Vue中,计算属性通过computed选项定义,用于声明依赖于其他属性的动态值。计算属性基于它们的依赖进行缓存,只有依赖发生变化时才会重新计算。 new Vue({ dat…

vue nexttick实现

vue nexttick实现

Vue 中 nextTick 的实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它的核心实现依赖于 JavaScript 的事件循环机制。 基…