当前位置:首页 > VUE

vue script 实现路由

2026-03-09 13:11:07VUE

Vue 3 中使用 <script setup> 实现路由

在 Vue 3 项目中,可以通过组合式 API 和 <script setup> 语法糖简洁地实现路由功能。以下是具体实现方式:

安装路由依赖

npm install vue-router@4

创建路由实例src/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

在组件中使用路由

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

<script setup>
import { useRouter, useRoute } from 'vue-router'

const router = useRouter()
const route = useRoute()

// 编程式导航
function navigate() {
  router.push('/about')
}

// 获取当前路由信息
console.log(route.path)
</script>

路由守卫实现

通过导航守卫可以控制路由的访问权限:

vue script 实现路由

// 全局前置守卫
router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login')
  } else {
    next()
  }
})

组件内守卫

<script setup>
import { onBeforeRouteLeave } from 'vue-router'

onBeforeRouteLeave((to, from, next) => {
  if (hasUnsavedChanges()) {
    if (confirm('确定要离开吗?')) next()
  } else {
    next()
  }
})
</script>

动态路由匹配

可以通过冒号 : 标记动态路径参数:

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

获取动态参数

vue script 实现路由

<script setup>
import { useRoute } from 'vue-router'

const route = useRoute()
console.log(route.params.id)
</script>

路由懒加载

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

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

命名路由和命名视图

可以通过命名方式更灵活地控制路由:

const routes = [
  {
    path: '/settings',
    components: {
      default: Settings,
      sidebar: SettingsSidebar
    }
  }
]

模板中使用

<router-view name="sidebar"/>

标签: 路由vue
分享给朋友:

相关文章

vue实现文档分享

vue实现文档分享

Vue 实现文档分享功能 文档分享功能通常涉及文件上传、存储、生成分享链接以及权限控制等模块。以下是基于 Vue 的实现方案: 文件上传组件 使用 element-ui 或 ant-design-v…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…

vue 实现脚本

vue 实现脚本

Vue 实现脚本的方法 Vue.js 提供了多种方式来实现脚本功能,包括组件内脚本、混入(Mixins)、插件(Plugins)以及自定义指令等。以下是常见的实现方式: 组件内脚本 在 Vue 单文…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现hovuer

vue实现hovuer

Vue 实现 Hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 直接控制 通过 :hover 伪类实现,无需额外的 JavaScrip…