当前位置:首页 > VUE

js实现vue路由

2026-01-08 16:33:43VUE

Vue路由基础实现

使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。

安装Vue Router:

npm install vue-router

创建路由实例:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
]

const router = new VueRouter({
  routes
})

export default router

路由视图与导航

在主应用中注入路由:

import Vue from 'vue'
import App from './App.vue'
import router from './router'

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

在App.vue中添加路由视图:

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

动态路由匹配

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

js实现vue路由

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

在组件中访问路由参数:

this.$route.params.id

嵌套路由

使用children属性实现嵌套路由:

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      { path: 'profile', component: Profile },
      { path: 'posts', component: Posts }
    ]
  }
]

父路由组件需要包含<router-view>

<div class="user">
  <h2>User</h2>
  <router-view></router-view>
</div>

编程式导航

除了<router-link>,也可以通过代码导航:

js实现vue路由

// 字符串路径
this.$router.push('/home')

// 对象
this.$router.push({ path: '/home' })

// 命名的路由
this.$router.push({ name: 'user', params: { userId: '123' } })

// 带查询参数
this.$router.push({ path: '/register', query: { plan: 'private' } })

路由守卫

实现导航控制:

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    if (!auth.loggedIn()) {
      next({ path: '/login' })
    } else {
      next()
    }
  } else {
    next()
  }
})

路由懒加载

优化性能的路由懒加载实现:

const User = () => import('./views/User.vue')

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

命名视图

单页面多路由视图配置:

const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Home,
        sidebar: Sidebar
      }
    }
  ]
})

对应模板:

<router-view name="sidebar"></router-view>
<router-view></router-view>

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

相关文章

vue路由实现滑动

vue路由实现滑动

实现 Vue 路由滑动效果的方法 使用 Vue Router 结合 CSS 过渡动画 在 Vue Router 的路由视图组件 <router-view> 上添加过渡效果,结合 CSS 实…

vue路由实现iframe

vue路由实现iframe

在Vue中实现iframe嵌入可以通过路由配置和组件动态加载来完成。以下是具体实现方法: 路由配置 在Vue Router的路由配置中,通过component属性动态加载iframe组件。需要将目标…

vue路由实现介绍

vue路由实现介绍

Vue 路由实现介绍 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。它通过动态映射组件到路由实现页面无刷新切换,同时支持嵌套路由、路由参数、导航守卫等高级功能…

Vue实现路由监

Vue实现路由监

Vue实现路由监听的方法 在Vue中,可以通过多种方式监听路由变化,以下是常见的实现方法: 使用Vue Router的全局前置守卫 router.beforeEach((to, from, n…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…