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

动态路由的实现

动态路由允许传递参数:

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

编程式导航

通过代码控制路由跳转:

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

懒加载路由

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

vue script 实现路由

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

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

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

相关文章

vue 实现递归

vue 实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据,例如菜单、评论列表或文件目录。以下是实现递归组件的关键步骤: 定义递归组件 递归组件需要设置 name 属性,以便在模…

vue实现上传

vue实现上传

Vue 文件上传实现方法 使用 Vue 实现文件上传可以通过原生 HTML5 的 <input type="file"> 元素结合 Vue 的事件处理和数据绑定来实现。 基础实现步骤…

vue computed实现

vue computed实现

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

vue实现list

vue实现list

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

vue实现座位

vue实现座位

Vue实现座位布局 使用Vue实现座位布局可以通过组件化和响应式数据管理来简化开发流程。以下是一个完整的实现方案: 数据准备 定义座位数据结构,通常使用二维数组表示行列关系: data() {…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…