当前位置:首页 > VUE

js实现vue-router

2026-01-23 14:09:56VUE

Vue Router 的基本实现

Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是一个简单的 Vue Router 实现示例。

安装 Vue Router:

npm install vue-router

创建路由实例

在项目中创建一个路由配置文件(通常为 router/index.js),并定义路由规则:

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

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

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

在主应用中引入路由

main.js 中引入路由实例并将其挂载到 Vue 应用:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

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

使用路由链接和视图

在组件中使用 <router-link> 进行导航,并使用 <router-view> 显示路由组件:

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

动态路由匹配

可以通过动态路径参数匹配不同的路由:

js实现vue-router

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

在组件中可以通过 $route.params.id 获取参数值。

导航守卫

导航守卫用于在路由跳转前或跳转后执行某些操作:

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

路由懒加载

通过动态导入实现路由懒加载,优化性能:

js实现vue-router

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

嵌套路由

嵌套路由允许在父路由中嵌套子路由:

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

在父组件中使用 <router-view> 显示子路由内容。

编程式导航

通过 router.pushrouter.replace 实现编程式导航:

router.push('/about');
router.push({ name: 'About' });
router.replace('/login');

路由元信息

可以通过 meta 字段为路由添加自定义信息:

const routes = [
  {
    path: '/admin',
    meta: { requiresAuth: true }
  }
];

标签: jsvue
分享给朋友:

相关文章

vue实现文档分享

vue实现文档分享

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

vue实现用户信息删除

vue实现用户信息删除

Vue 实现用户信息删除功能 在 Vue 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="app…

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue实现rtc

vue实现rtc

Vue 实现 RTC 的步骤 安装依赖 在 Vue 项目中安装 WebRTC 相关依赖,如 simple-peer 或 peerjs,用于简化 WebRTC 的实现。 运行以下命令安装 simple-…

vue实现定位

vue实现定位

Vue 中实现定位的方法 在 Vue 中实现定位可以通过以下几种方式: 使用 CSS 定位 通过 CSS 的 position 属性实现定位,Vue 中可以直接在组件的 <style>…