0

0

聊聊Vue3中路由,浅析路由配置方式

青灯夜游

青灯夜游

发布时间:2021-12-21 10:35:02

|

4390人浏览过

|

来源于掘金社区

转载

本篇文章带大家了解一下vue3路由,聊聊路由的基本配置、动态路由的配置、路由模式、路由重定向等,希望对大家有所帮助。

聊聊Vue3中路由,浅析路由配置方式

【相关推荐:《vue.js教程》】

路由的基本配置

1、安装插件

npm install vue-router@next --save

2、创建一个routers.ts文件

立即学习前端免费学习笔记(深入)”;

3、在routers.ts中引入组件并配置路径。

import { createRouter,createWebHashHistory } from 'vue-router';
// 引入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import User from './components/User.vue';

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {path: '/', component: Home},
    {path: '/news', component: News},
    {path: '/user', component: User},
  ]
})

export default router;

4、在main.ts中将路由文件挂载到vue身上。

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

// createApp(App).mount('#app')

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

5、在用到路由的组件通过router-view组件或者router-link

挂载router-link后,只需要在组件对应的页面路径上输入指定路由即可完成跳转,router-link则实现a标签进行跳转的形式路由。

动态路由的配置

在routes.ts中按照下面的方式进行配置路由,通过/:aid的方式来进行动态路由的配置。

//配置路由
const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: '/', component: Home , alias: '/home' },
        { path: '/news', component: News },
        { path: '/user', component: User },
        { path: '/newscontent/:aid', component: NewsContent },
    ], 
})

通过router-link进行跳转的时候,需要模板字符串和冒号+to。

  • {{item}}

通过this.$route.params获取动态路由传过来的值。

mounted(){
    // this.$route.params 获取动态路由的传值
    console.log(this.$route.params)
}

如果我们想要实现类似与GET传值,我们可以通过下面的方式

1、将路由配置为普通路由。

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: '/', component: Home , alias: '/home' },
        { path: '/news', component: News },
        { path: '/user', component: User },
        { path: '/newscontent', component: NewsContent },
    ], 
})

2、router-link通过问号的形式进行跳转。

 {{item}}

3、通过this.$route.query获取到get传值。

console.log(this.$route.query);

路由编程式导航(JS跳转路由)

只需要通过this.$router.push进行指定即可。

  this.$router.push({
    path: '/home'
  })

如果想要实现get传值,可以通过下列的方式。

this.$router.push({
    path: '/home',
    query: {aid: 14}
  })
}

动态路由需要使用下面的这种方式。

  this.$router.push({
    path: '/home/123',
    // query: {aid: 14}
  })

路由模式

Hash模式

Hash模式的典型特点就是页面路由中含有一个井号。

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        ...,
    ], 
})

HTML5 history模式

  • 引入createWebHistory。

    无涯·问知
    无涯·问知

    无涯·问知,是一款基于星环大模型底座,结合个人知识库、企业知识库、法律法规、财经等多种知识源的企业级垂直领域问答产品

    下载
  • router的配置项中的history属性设置为createWebHistory()。

import { createRouter, createWebHistory } from 'vue-router'

//配置路由
const router = createRouter({
    history: createWebHistory(),
    routes: [
        ...
    ], 
})

注意:开启HTML5 History模式之后,发布到服务器需要配置伪静态。

配置伪静态的方法:

https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90

命名路由

一般情况

  • 定义路由的时候配置name属性

{ path: '/news', component: News,name:"news" }
  • 传入对象进行跳转

新闻

通过GET传值的方式

  • 定义路由的时候配置name属性

{ path: '/newscontent', component: NewsContent, name: "content" },
  • 传入包括query的对象

  • {{item}}
  • 通过动态路由的方式

    • 定义动态路由并指定name属性

    { path: '/userinfo/:id', name: "userinfo", component: UserInfo }
    • 传入包括params的对象

    跳转到用户详情

    编程式路由

    和上面的方式很类似。

    路由重定向

    { path: '', redirect: "/home" },   // 路由重定向
    { path: '/home', component: Home },

    路由别名

    下面的这个实例中,访问people这个路由和访问alias这个路由是一致的。

    { path: '/user', component: User, alias: '/people' }

    alias也可以是一个数组。

    { path: '/user', component: User, alias: ['/people','/u']}

    动态路由的形式。

    { path: '/userinfo/:id', name: "userinfo", component: UserInfo, alias: '/u/:id' }

    嵌套路由

    嵌套路由的应用场景一般在导航栏上。

    • 定义嵌套路由

    {
      path: '/user', component: User,
      children: [
        { path: '', redirect: "/user/userlist" },
        { path: 'userlist', component: UserList },
        { path: 'useradd', component: UserAdd }
      ]
    }
    • router-link和router-view配合显示内容

    • 用户列表
    • 增加用户

    更多编程相关知识,请访问:编程入门!!

    聊聊Vue3中路由,浅析路由配置方式

    相关文章

    路由优化大师
    路由优化大师

    路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    html5动画制作有哪些制作方法
    html5动画制作有哪些制作方法

    html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

    506

    2023.10.23

    HTML与HTML5的区别
    HTML与HTML5的区别

    HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

    427

    2024.03.06

    html5从入门到精通汇总
    html5从入门到精通汇总

    想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

    21

    2025.12.30

    html5新老标签汇总
    html5新老标签汇总

    HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

    18

    2025.12.30

    html5空格代码怎么写
    html5空格代码怎么写

    在HTML5中,空格不能直接通过键盘空格键实现,需使用特定代码。本合集详解常用空格写法:&nbsp;(不间断空格)、&ensp;(半个中文空格)、&emsp;(一个中文空格)及CSS的white-space属性等方法,帮助开发者精准控制页面排版,避免因空格失效导致布局错乱,适用于新手入门与实战参考。

    73

    2025.12.30

    html5怎么做网站教程
    html5怎么做网站教程

    想从零开始学做网站?这份《HTML5怎么做网站教程》合集专为新手打造!涵盖HTML5基础语法、页面结构搭建、表单与多媒体嵌入、响应式布局及与CSS3/JavaScript协同开发等核心内容。无需编程基础,手把手教你用纯HTML5创建美观、兼容、移动端友好的现代网页。附实战案例+代码模板,快速上手,轻松迈出Web开发第一步!

    153

    2025.12.31

    HTML5建模教程
    HTML5建模教程

    想快速掌握HTML5模板搭建?本合集汇集实用HTML5建模教程,从零基础入门到实战开发全覆盖!内容涵盖响应式布局、语义化标签、Canvas绘图、表单验证及移动端适配等核心技能,提供可直接复用的模板结构与代码示例。无需复杂配置,助你高效构建现代网页,轻松上手前端开发!

    25

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    35

    2025.12.31

    PS使用蒙版相关教程
    PS使用蒙版相关教程

    本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

    23

    2026.01.19

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Vue3.x 工具篇--十天技能课堂
    Vue3.x 工具篇--十天技能课堂

    共26课时 | 1.4万人学习

    Vue3.x 核心篇--十天技能课堂
    Vue3.x 核心篇--十天技能课堂

    共30课时 | 1.5万人学习

    Vue3.x新特性篇--十天基础课堂
    Vue3.x新特性篇--十天基础课堂

    共20课时 | 1.2万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号