vue-router4路由使用

阅读数:145 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、动态路由

vue3必须使用vue-router4,而router4去掉了addRoutes,只能使用addRoute

二、不匹配url跳转到404

1、首先,你需要一个 404 组件,这个组件将会被显示当路由不匹配时:

// NotFoundComponent.vue
<template>
  <div>
    <h1>404 - Page Not Found</h1>
    <p>The page you are looking for was not found.</p>
  </div>
</template>

<script>
export default {
  name: 'NotFoundComponent'
}
</script>

2、配置路由

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

const router = createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
    },
    // ...其他路由...
    {
      path: '/:pathMatch(.*)*', // Vue Router 4 中的通配符
      name: 'NotFound',
      component: NotFoundComponent,
    },
  ],
});

export default router;

在上面的代码中,path: '*' 表示匹配所有路径,因此任何不在路由表中的 URL 都会被这个路由捕获。由于这个路由是放在最后的,所以只有当其他所有路由都不匹配时,它才会被匹配。

三、重定向

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

const router = createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
    },
    {
      path: '/about',
      name: 'about',
      component: About,
    },
    // 重定向示例与 Vue Router 3 相似
    // ...其他路由...
        {
      path: '/a',
      redirect: '/about'
    },
    // 重定向使用命名路由
    {
      path: '/b',
      redirect: { name: 'about' }
    },
    // 动态重定向,使用箭头函数来返回重定向的目标字符串
    {
      path: '/c',
      redirect: () => {
        // 方法返回重定向的字符串路径
        return '/about'
      }
    },
  ],
});

export default router;

在上面的例子中,我们定义了几种不同的重定向方式:

  • 直接重定向:从 /a 到 /about
  • 使用命名路由重定向:这种方法使得重定向不依赖于目标路径的字符串,只需要路由的名字。
  • 动态重定向:使用一个函数来决定重定向的路径。这在你需要基于某些逻辑来确定重定向目标时非常有用。

 




相关推荐

缓存页面主要Jul为了防止重复渲染dom,减少加载时间及性能消耗,提高用户体验。 一、旧版的语法 <keep-alive> <router-view v-if="$route.meta.kee

一、基本使用 如果在一个模块化工程中使用它, 必须要通过Vue.use()明确地安装路由功能. const router = new VueRouter({ routes: [ { pat

1、query要用path来引入,接收参数都是this.$route.query.name。query类似于ajax中get传参,即在浏览器地址栏中显示参数。<

一、生命周期 1、vue2生命周期 beforeCreate #实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用 created #实例创建完成后被立即同步调用 beforeMount #

一、使用pnpm新建项目 可以使用npm 或yarn或pnpm来初始化Vite项目 pnpm create vite xxx(项目名称) #选择vue #选择js cd xxx (进入项目目录) #安

一、概述 <script setup> 是在单文件组件(SFC)中使用组合式API的编译时语法糖,解决Vue3.0中setup需要频繁将声明的变量、函数以及import引入的内容通过return向外

一、概述 在vue2中,data函数里返回的值直接为响应式,但在vue3中我们需要使用一些函数才能达到这个效果。 setup函数中拿不到vue的this。 二、常用函数 <template> <d

<script> export default { setup() { const func1= () => { console.log("func1");

一、在main.js挂载 import { createApp } from 'vue' import App from './App.vue' import router from './route

一、概述 在vue3中没有$refs这个对象,可以使用如下方法 <template> <div><input type="text" ref="txt1" value="hello" /></div>