Vue3路由学习指南

一、Vue3路由配置

Vue3路由的配置和Vue2基本相同。在Vue3的项目中,我们需要先安装Vue-Router。可以使用npm命令进行安装:

npm i vue-router@next

接下来,在main.js中引入Vue-Router:

import { createRouter, createWebHashHistory } from 'vue-router';
import App from './App.vue';

const routes = [
  // 定义路由
  {path: '/', component: Home},
  {path: '/about', component: About},
  {path: '/contact', component: Contact}
];

// 创建路由实例
const router = createRouter({
  history: createWebHashHistory(),
  routes, // 使用`routes`配置选项定义路由
});

const app = createApp(App);
app.use(router); // 使用路由

app.mount('#app');

二、Vue2和Vue3路由区别

Vue3路由相较于Vue2来说最大的变化就是在引入路由实例的方式上。在Vue2中我们使用如下方法:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
    routes:[]
})

而在Vue3中,我们使用的是createRouter:

import { createRouter, createWebHashHistory } from 'vue-router';
import App from './App.vue';

const router = createRouter({
  history: createWebHashHistory(),
  routes, // 使用`routes`配置选项定义路由
});

其中,history的选项要注意,Vue2是通过mode来配置

三、Vue3路由参数

在Vue3中,我们可以在声明路由时使用props属性设置组件参数。例如:

const routes = [
  // 定义路由
  {path: '/user/:id', component: User, props: true}, // 传递路由参数
];

然后,在组件中,我们通过props来接受路由参数。例如:

const User = {
  props: ['id'], // 接收params传递的参数
  template: '<div>UserId: {{id}}</div>'
}

四、Vue3路由配置公共页面和跳转页面

在Vue3中,通常会有一些公共页面,例如header,footer等重复出现在多个页面中的元素,我们可以使用layout来定义。例如:

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: '/',
      name: 'Layout',
      component: Layout,
      children: [
        {
          path: '',
          name: 'Home',
          component: Home
        },
        {
          path: '/about',
          name: 'About',
          component: About
        }
      ]
    },
    {
      path: '/contact',
      name: 'Contact',
      component: Contact
    }
  ]
})

在上面的代码中,我们定义了一个Layout组件,Home和About共用这个Layout组件。Contact是独立的页面。在Layout中,我们可以定义一些公共的元素,如header和footer,同时,通过children属性可以定义子路由。

在跳转页面时,我们可以使用router-link来实现,例如:

<router-link to="/">Home</router-link>
<router-link to="/about">About</router-link>
<router-link to="/contact">Contact</router-link>

五、Vue3子路由配置

在Vue3中,子路由的定义也和Vue2基本相同。例如:

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

在上面的代码中,我们定义了一个/user路由,它包含了两个子路由。然后在User组件中,我们可以使用<router-view>来显示子路由的内容:

<div>
  <h2>User Page</h2>
  <router-link to="/user/profile">Profile</router-link>
  <router-link to="/user/posts">Posts</router-link>
  <router-view/>
</div>

六、Vue3动态路由讲解

在Vue3中,我们可以使用动态路由,例如:

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

在上面的代码中,我们使用了:id来代表了一个动态的路由,它可以匹配到任何/user/后面的路径,并将路径保存到$route.params.id中。

七、Vue3配置子路由关键字

在Vue3中,我们可以使用一个新的关键字来配置子路由,即:children。例如:

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      {
        path: '',
        component: UserHome
      },
      {
        path: 'profile',
        component: UserProfile
      },
      {
        path: 'posts',
        component: UserPosts
      }
    ]
  }
]

在上面的代码中,我们使用了children来配置/user路由的子路由,其中,”表示默认路由,也就是/user的首页。在User组件中,我们可以使用不同的子路由来使用<router-view>来显示。

八、Vue3路由缓存

在Vue3中,我们可以使用keep-alive标签来实现路由缓存。例如:

<keep-alive>
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>

在上面的代码中,我们使用$router.meta.keepAlive属性来判断当前路由是否需要缓存。如果需要缓存,就使用<keep-alive>来包装。

关于Vue3路由的更多内容可以参考Vue官方文档中的路由部分:https://v3.cn.vuejs.org/guide/routing.html

原创文章,作者:QMHQV,如若转载,请注明出处:https://www.506064.com/n/330610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QMHQVQMHQV
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相关推荐

  • MikroTik软路由的全面分析

    一、什么是MikroTik软路由 MikroTik软路由是基于MikroTik RouterOS操作系统搭建的网络路由器,能够提供广域网(WAN)和局域网(LAN)的网络连接功能,…

    编程 2025-04-25
  • 删除静态路由

    一、静态路由的定义 路由(Routing)是指在一组互联的计算机网络中,根据一定的算法规则实现两个节点之间选择合适的路径并且传送数据包的过程。简单来说,路由就是在网络中选择一条可达…

    编程 2025-04-25
  • Linux加路由详解

    一、路由介绍 路由器的作用是将数据包转发到正确的网络上。路由器是网络互联时必须的设备。路由器可以将网络划分成若干个子网络,路由器之间相互通信,将数据传递到目的网络。 二、Linux…

    编程 2025-04-24
  • 单臂路由的作用

    一、提高网络连接速度 单臂路由采用了物理隔离网路的方式,将不同的网段分开,从而减少了网络中的冲突和干扰,提高了网络的连接速度。 /* 代码示例一 */ #include int m…

    编程 2025-04-24
  • Vue嵌套路由的全面解析

    Vue 嵌套路由(Nested Routes) 是 Vue.js 的基础知识之一,非常重要。本文将从多个方面进行详细阐述,并提供代码示例,帮助开发者更好地理解 Vue 嵌套路由的原…

    编程 2025-04-23
  • NavigationDuplicated:Vue.js路由重复

    一、什么是NavigationDuplicated? NavigationDuplicated错误是Vue.js中常见的错误之一,它表示用户在激活相同路由时发生了错误。它是Vue.…

    编程 2025-04-23
  • 微信小程序路由详解

    微信小程序作为一种轻量级的应用程序,其路由功能在其中占据着重要的地位。路由功能的作用在于实现不同页面之间的跳转,用户在小程序中浏览页面的时候就是通过路由来进行页面的跳转。因此,对于…

    编程 2025-04-23
  • Vue中使用this.$router.push切换路由时页面不刷新的解决方法

    一、原因分析 在我们平时使用Vue开发项目时,经常会使用this.$router.push切换路由,从而实现页面之间的跳转。但是,有时候我们发现切换路由后,页面并没有进行刷新,这时…

    编程 2025-04-23
  • R2S软路由设置教程

    一、ROS软路由设置教程 ROS(RouterOS)是一种由拉蒂斯网络公司开发的专用路由操作系统,可以用于路由器和无线接入点,可以替代商用路由器,拥有功能强大的路由功能、防火墙等等…

    编程 2025-04-23
  • Python学习指南——从菜鸟到进阶

    一、Python介绍 Python是一种高级编程语言,由Guido van Rossum于1989年底发明。Python是一门面向对象的语言,具有简单易学、代码简洁、可读性高等特点…

    编程 2025-04-02

发表回复

登录后才能评论