首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue-router 的基本使用

vue-router 的基本使用

作者头像
很酷的站长
发布于 2022-12-28 07:52:01
发布于 2022-12-28 07:52:01
76900
代码可运行
举报
运行总次数:0
代码可运行
1. vue-router 介绍

vue-router 官方文档: https://router.vuejs.org/zh

vue-router 是 vue 官方的路由插件,它和 vue 是深度集成的,适合用于构建单页面应用

2. vue-router 的使用

安装 vue-router

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install vue-router --save

在模块化工程中使用 (因为它是一个插件,所以可以通过 Vue.use() 来安装路由功能)

第一步: 导入路由对象,并且调用 Vue.use(VueRouter)

第二步: 创建路由实例,并且传入路由映射配置,导出路由实例

第三步: 在 vue 实例中挂载创建的路由实例

3. 路由映射配置的写法

方案一: 导入组件实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Home from '@/components/Home';import About from '@/components/About';const routes = [    {        path: '/home',        component: Home    },    {        path: '/about',        component: About    },]
4. 路由的默认值、history 模式

刚进入页面路由是 /, 可通过路由重定向实现默认路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{    path: "",    redirect: '/home'},

路由模式默认是 hash 模式,在创建路由实例时只需添加 mode: 'history' 即可改为 history 模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const router = new VueRouter({    routes,    mode: 'history'})
5. router-link 和 router-view 组件

router-link 组件用于生成路由跳转链接,to 属性用于指定路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link to="/home">首页</router-link><router-link to="/about">关于</router-link>

router-link 组件属性: tag

router-link 组件默认会被渲染成一个 a 标签,但有些时候我们想要渲染为 li、button 标签等,此时可以使用 tag 属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link to="/home" tag="li">首页</router-link><router-link to="/about" tag="button">关于</router-link>

router-link 组件属性: replace

设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link to="/home" replace>首页</router-link>

router-link 组件属性: active-class

用于设置路由激活时的 CSS 类名。默认值: “router-link-active”,默认值可以通过路由的构造选项 linkActiveClass 来全局配置

默认值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link to="/home">首页</router-link><a href="/home" class="router-link-exact-active router-link-active" aria-current="page">首页</a>

通过 active-class 属性指定类名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link to="/home" active-class="active">首页</router-link><a href="/home" class="router-link-exact-active active" aria-current="page">首页</a>

通过创建路由实例时的 linkActiveClass 属性指定类名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const router = new VueRouter({    routes,    linkActiveClass: "actived"})
6. 通过代码跳转路由 this.$router.push()

replace 不会留下 history 记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.$router.push('/home')this.$router.replace('/home')
7. 动态路由的使用

路由映射配置: 定义一个动态参数 userId

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{    path: '/user/:userId',    component: User}

进行路由跳转时 userId 是动态获取的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link :to="'/user/' + userId">档案</router-link>

在 User 组件中获取动态参数 userId ($route: 当前处于活跃状态的路由)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p>{{ $route.params.userId }}</p>
8. 路由组件的懒加载

执行打包命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run build

当前应用程序开发的所有业务代码都在一个文件中(前缀为 app 的 js 文件)

第三方插件的东西都会打包到 vendor 前缀的 js 文件中

manifest 前缀的 js 文件是为我们打包的代码做底层支撑的 (commonjs、ES6 语法)

因为业务代码都在一个文件中,当打包构建应用时,JavaScript 包会变得非常大,影响页面加载,那么用户就会出现短暂空白的情况,所以我们应该想个办法将存放业务代码的 app.*.js 文件进行分离

如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了

路由懒加载的主要作用就是将路由对应的组件打包成一个个的 js 代码块,只有在这个路由被访问到时,才加载对应的组件

路由懒加载的写法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{    path: '/home',    component: () => import('@/components/Home')}

如下图所示,三个路由映射使用了懒加载生成了三个对应的 js 文件

9. 嵌套路由的使用

Home 组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>    <div>        <h2>我是首页</h2>        <p>首页内容,哈哈哈</p>        <router-link to="/home/news">新闻</router-link>        <router-link to="/home/message">消息</router-link>        <router-view></router-view>    </div></template>

路由映射配置 (嵌套路由: /home/news、/home/message):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{    path: '/home',    component: Home,    children: [        {            path: '',            redirect: 'news'        },        {            path: 'news',            component: HomeNews        },        {            path: 'message',            component: HomeMessage        },    ]},
10. vue-router 参数传递

传递参数主要有两种方式: params 和 query

类型

配置路由

传递方式

使用示例

params

/router/:id

在 path 后面跟上对应的值

/router/10

query

/router

对象中使用 query 的 key 作为传递方式

/router?id=10

router-link 组件 query 方式传递参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<router-link :to="{path: '/profile', query: {id: 10, name: 'liang'}}">档案</router-link>

js 代码以 query 方式传递参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.$router.push({    path: "/profile",    query: {        id: 10,        name: "liang",    },});

在 Profile 组件中获取 query 方式传递的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template><span
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue路由vue-router
步骤二:在模块化工程中使用它(因为是一个插件,所以可以通过Vue.use()来安装路由功能)
有勇气的牛排
2023/06/25
2490
一文让你彻底搞懂 vue-Router
路由是网络工程里面的专业术语,就是通过互联把信息从源地址传输到目的地址的活动。本质上就是一种对应关系。分为前端路由和后端路由。
呆呆
2021/12/01
1.1K0
17. vue-route详细介绍
说道路由, 我们最熟悉的路由是什么呢? 那就是路由器了。 其实路由器有两个重要的功能: 路由和传送
用户7798898
2021/04/09
5.7K0
17. vue-route详细介绍
Vue Router详细教程
1.什么是路由 1.1路由简介 说起路由你想起了什么?路由是一个网络工程里面的术语。 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。 --- 维基百科 额,啥玩意?
说故事的五公子
2020/08/10
3.8K0
Vue Router详细教程
Vue-router 学习笔记
在以前,前后端是不分离的,这个阶段通常是由服务端渲染好页面(SSR),再发送页面给前端去展示;接着到了前后端分离的阶段,前端向静态资源服务器拿资源,再通过 js 渲染页面,此时仍然是一个 url 对应一份 html+css+js。再后来出现了 SPA 单页面应用的概念,实际上它只有一个页面,但给我们的体验是多页面之间的切换。
Chor
2019/11/18
7220
Vue之Router(二)
  为什么会有动态路由呢?因为在一般的项目中,都会涉及到用户登陆的操作,我们希望某某用户登陆某个网页的时候,能够在该网页的UURL地址上显示用户的登录名或者用户ID等的信息。 动态路由就是根据不同的用户将在网页的URL中动态追加登录名或者ID等信息。 比如:
yuanshuai
2022/08/22
8150
Vue之Router(二)
vue-router 详解
vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。 我们可以访问其官方网站对其进行学习:https://router.vuejs.org/zh/
全栈程序员站长
2022/09/14
1.9K0
vue-router 详解
vue-router 用法详解
将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们。
青梅煮码
2023/01/31
2.8K0
Vue学习-Vue router
在配置Vue-router时有两种模式,分别为:hash模式(默认)、history模式。
花猪
2022/02/17
4.7K0
Vue学习-Vue router
Vue路由
什么是单页应用程序: 单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现
用户11097514
2024/05/31
3810
Vue路由
我所知道的 vue-router
vue-router : 简称路由,简单说就是根据不同的 url 地址,显示不同的效果
sunseekers
2023/06/10
3830
我所知道的 vue-router
Vue之Router(一)
路由:我们仨都算是负责运输行业的,但是我只是负责运输线路的确定 路由表:为了避免“转送”送错货物到码头,我就负责指定运输的码头 转送: 我负责具体的货物运输,将货物运输到指定的码头。要是没有“路由表”大哥的帮忙,我肯定一天要在十多个码头来来回回的瞎折腾呢。
yuanshuai
2022/08/22
1K0
Vue之Router(一)
vue路由详解(知识点重温)
  在router文件夹的index.js文件的new VueRouter({routers:[{ path..}]})里的配置
隔壁老陈
2023/03/09
8450
【vue】12.0 vue路由:vue-router
Vue Router官网: https://router.vuejs.org/zh/installation.html
conanma
2021/11/03
8320
Vue3 路由
通过 Vue 可以实现多视图的单页 Web 应用(single page web application,SPA)。
陈不成i
2021/07/28
7140
vue-router(路由)详细教程
如果你用vue-cli脚手架来搭建项目,配置过程会选择是否用到路由(详细见vue-cli 脚手架),如果选择y,后面下载依赖会自动下载vue-router。 这里还是说一下安装:npm install vue-router
全栈程序员站长
2022/09/08
3.4K0
vue-router(路由)详细教程
Vue-Router
路由是一个网络工程里面的术语。路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动. --- 维基百科
名字是乱打的
2021/12/23
2.6K0
Vue-Router
vue-router源码分析
这是一篇集合了从如何查看 vue-router源码(v3.1.3),到 vue-router源码解析,以及扩展了相关涉及的知识点,科普了完整的导航解析流程图,一时读不完,建议收藏。
conanma
2021/11/03
1.2K0
vue-router详解——小白速会
一、概述 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。 vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。 而传统的多页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 路由中有三个基本的概念 route, routes, router。 1. route,它是一条路由,由这个英文单词也可以看出来,它是单数, Home按钮  => home内容
柴小智
2018/04/16
1.7K0
vue-router详解——小白速会
vue2进阶篇:vue-router之缓存路由组件
<font color='red'>\<keep-alive></font>用于路由缓存,其中inclue用于指定只缓存指定名称的组件,<font color='red'>其中News指代一定是“组件名”,指代一定是“组件名”,指代一定是“组件名”,重要的事情说3遍</font>。
刘大猫
2024/10/10
3600
相关推荐
vue路由vue-router
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档