当前位置:首页 > VUE

vue router实现导航

2026-02-19 01:46:29VUE

Vue Router 导航实现方法

安装与基础配置 确保已安装 Vue Router,可通过 npm 或 yarn 安装:

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

export default router;

路由视图与链接 在根组件(如 App.vue)中添加 <router-view> 作为路由出口:

<template>
  <div id="app">
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view/>
  </div>
</template>

编程式导航 通过 useRouter 在组件中实现编程跳转:

import { useRouter } from 'vue-router';

export default {
  setup() {
    const router = useRouter();
    const navigate = () => {
      router.push('/about'); // 跳转路由
      // router.replace('/about'); // 替换当前路由
      // router.go(-1); // 后退
    };
    return { navigate };
  }
};

动态路由与参数 定义带参数的路由:

const routes = [
  { path: '/user/:id', component: User }
];

在组件中通过 useRoute 获取参数:

import { useRoute } from 'vue-router';

export default {
  setup() {
    const route = useRoute();
    console.log(route.params.id); // 获取动态参数
  }
};

导航守卫 全局前置守卫示例:

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

组件内守卫:

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

嵌套路由 配置子路由:

const routes = [
  {
    path: '/parent',
    component: Parent,
    children: [
      { path: 'child', component: Child }
    ]
  }
];

父组件需包含嵌套的 <router-view>

<template>
  <div>
    <h2>Parent</h2>
    <router-view/>
  </div>
</template>

路由元信息 通过 meta 字段传递额外信息:

const routes = [
  { 
    path: '/admin', 
    component: Admin,
    meta: { requiresAuth: true }
  }
];

路由懒加载 使用动态导入实现懒加载:

const routes = [
  { 
    path: '/dashboard',
    component: () => import('../views/Dashboard.vue')
  }
];

注意事项

vue router实现导航

  • 路由模式需根据需求选择 createWebHistory(需服务器支持)或 createWebHashHistory
  • 动态路由参数变化时需监听 route.params 变化
  • 导航守卫中确保始终调用 next() 避免阻塞

标签: vuerouter
分享给朋友:

相关文章

vue登录业务的实现

vue登录业务的实现

实现登录业务的基本流程 在Vue中实现登录业务通常涉及前端界面设计、表单验证、API请求交互、状态管理以及路由控制等环节。以下是核心实现步骤: 登录表单设计与验证 创建包含用户名和密码输入框的登录组…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue实现picker

vue实现picker

Vue 实现 Picker 组件的方法 在 Vue 中实现 Picker 组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 实现 通过 Vue 的模板和样式绑定,…

vue实现数据

vue实现数据

Vue 实现数据绑定的方法 Vue.js 提供了多种方式实现数据绑定,包括双向绑定、单向绑定以及动态数据绑定。以下是几种常见的实现方式: 双向数据绑定(v-model) 双向数据绑定通常用于表单元素…

vue实现城市

vue实现城市

Vue 实现城市选择功能 使用 Element UI 的 Cascader 组件 Element UI 提供了一个 Cascader 级联选择器组件,非常适合实现城市选择功能。需要先安装 Elemen…