跳至主要內容

动态路由

刘春龙原创...大约 1 分钟WEB前端Vue3路由教程文档

对路由的添加通常是通过 routes 选项来完成的,但是在某些情况下,你可能想在应用程序已经运行的时候添加或删除路由

添加路由

router.addRoute() 新增加路由配置

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      name: "home",
      meta: {
        requiresAuth: true,
        transition: "slideLeft",
      },
      component: () => import("../views/home/home.vue"),
    },
    {
      path: "/about",
      name: "about",
      component: () => import("../views/about/about.vue"),
      meta: {
        requiresAuth: false,
        transition: "slideRight",
      },
    },
  ],
});

router.addRoute({
  path: "/about1",
  name: "about1",
  component: () => import("../views/about/about1.vue"),
});

export default router;



























 
 
 
 
 

访问:http://localhost:5173/about1open in new window

添加多个路由

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      name: "home",
      meta: {
        requiresAuth: true,
        transition: "slideLeft",
      },
      component: () => import("../views/home/home.vue"),
    },
    {
      path: "/about",
      name: "about",
      component: () => import("../views/about/about.vue"),
      meta: {
        requiresAuth: false,
        transition: "slideRight",
      },
    },
  ],
});

const currentRouter = [
  {
    path: "/about1",
    name: "about1",
    component: () => import("../views/about/about1.vue"),
  },
  {
    path: "/about2",
    name: "about2",
    component: () => import("../views/about/about2.vue"),
  },
];

for (let i = 0; i < currentRouter.length; i++) {
  router.addRoute(currentRouter[i]);
}

export default router;


























 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


访问:http://localhost:5173/about1open in new window

访问:http://localhost:5173/about2open in new window

添加嵌套路由

要将嵌套路由添加到现有的路由中,可以将路由的 name 作为第一个参数

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      name: "home",
      meta: {
        requiresAuth: true,
        transition: "slideLeft",
      },
      component: () => import("../views/home/home.vue"),
    },
    {
      path: "/about",
      name: "about",
      component: () => import("../views/about/about.vue"),
      meta: {
        requiresAuth: false,
        transition: "slideRight",
      },
    },
  ],
});

router.addRoute("about", {
  path: "about1",
  name: "about1",
  component: () => import("../views/about/about1.vue"),
});

export default router;


























 
 
 
 
 


访问:http://localhost:5173/about/about1open in new window

删除路由

通过路由名字进行删除

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      name: "home",
      meta: {
        requiresAuth: true,
        transition: "slideLeft",
      },
      component: () => import("../views/home/home.vue"),
    },
    {
      path: "/about",
      name: "about",
      component: () => import("../views/about/about.vue"),
      meta: {
        requiresAuth: false,
        transition: "slideRight",
      },
    },
  ],
});

router.removeRoute("about");

export default router;


























 


访问:http://localhost:5173/aboutopen in new window

上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7