当前位置:首页 > VUE

js实现vue路由

2026-02-11 07:08:22VUE

实现 Vue 路由的 JavaScript 方法

在 Vue 中实现路由通常使用 Vue Router 库。以下是基于原生 JavaScript 和 Vue Router 的实现方式:

安装 Vue Router

使用 npm 或 yarn 安装 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
})

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

路由视图和导航

在 Vue 组件中使用 <router-view><router-link>

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

编程式导航

在 JavaScript 代码中进行导航:

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

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

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

路由守卫

实现导航守卫控制路由访问:

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

懒加载路由

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

js实现vue路由

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

嵌套路由

实现嵌套路由视图:

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

路由模式

配置路由模式(hash 或 history):

const router = new VueRouter({
  mode: 'history',
  routes
})

命名路由和命名视图

使用命名路由和多个命名视图:

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

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

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

相关文章

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

vue路由实现登录

vue路由实现登录

路由守卫实现登录验证 在Vue项目中,可以通过路由守卫(Navigation Guards)来实现登录验证逻辑。路由守卫能在路由跳转前、跳转后或跳转时进行拦截处理。 安装路由依赖 npm inst…