当前位置:首页 > VUE

vue script 实现路由

2026-03-30 00:57:25VUE

在 Vue 项目中,可以通过 Vue Router 实现路由功能。以下是几种常见的实现方式:

使用 Vue Router 的基本配置

安装 Vue Router:

npm install vue-router

main.jsmain.ts 中引入并配置路由:

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

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
})

const app = createApp(App)
app.use(router)
app.mount('#app')

动态路由的实现

动态路由允许传递参数:

vue script 实现路由

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/user/:id', component: User }
  ]
})

在组件中获取动态参数:

import { useRoute } from 'vue-router'

export default {
  setup() {
    const route = useRoute()
    const userId = route.params.id
  }
}

嵌套路由配置

嵌套路由用于多层级页面结构:

const router = createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/user',
      component: UserLayout,
      children: [
        { path: '', component: UserHome }, // /user
        { path: 'profile', component: UserProfile } // /user/profile
      ]
    }
  ]
})

编程式导航

通过代码控制路由跳转:

vue script 实现路由

import { useRouter } from 'vue-router'

export default {
  setup() {
    const router = useRouter()

    function navigateToAbout() {
      router.push('/about')
    }

    function navigateBack() {
      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()
  }
}

懒加载路由

优化性能,按需加载组件:

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

以上方法涵盖了 Vue Router 的主要功能,可根据项目需求选择适合的实现方式。

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

相关文章

vue实现slider

vue实现slider

Vue 实现 Slider 组件 使用 Vue 实现 Slider 组件可以通过原生开发或借助第三方库。以下是两种常见方法: 原生实现 Slider 创建一个基础的 Slider 组件,通过 v-m…

vue实现报表

vue实现报表

vue实现报表的方法 使用Vue实现报表通常需要结合图表库或表格组件。以下是几种常见方法: 使用ECharts 安装ECharts库: npm install echarts vue-echart…

vue实现画图

vue实现画图

Vue 实现画图功能 在 Vue 中实现画图功能通常需要结合 HTML5 的 <canvas> 元素或第三方库。以下是几种常见的方法: 使用原生 Canvas API 通过 Vue 直接…

vue 实现href

vue 实现href

Vue 实现 href 的方法 在 Vue 中实现 href 功能可以通过多种方式,具体取决于需求场景。以下是几种常见的方法: 使用 <a> 标签 直接使用 HTML 的 <a&g…

vue实现list

vue实现list

Vue 实现列表渲染 在 Vue 中,可以使用 v-for 指令来渲染列表。v-for 指令基于一个数组或对象来渲染一个列表,可以遍历数组或对象的属性。 基本列表渲染 <template>…

vue实现日历

vue实现日历

Vue 实现日历的基本方法 使用 Vue 实现日历可以通过自定义组件或借助第三方库完成。以下是两种常见实现方式: 自定义日历组件 创建基于 Vue 的日历组件需要处理日期计算和渲染逻辑。核心是生成当…