【b站前端-小鑫】Vue Router(路由)快速掌握(入门到精通5节课)

本文主要是介绍【b站前端-小鑫】Vue Router(路由)快速掌握(入门到精通5节课),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

课程地址:【Vue Router(路由)快速掌握(入门到精通5节课)】 https://www.bilibili.com/video/BV1aP4y1W7Uz/?share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155

目录

1 Vue Router

1.1 Vue Router的安装

1.2 创建路由

1.2.1 router-index.js创建路由

1.2.2 main.js里引入路由

1.2.3 在App.vue里使用路由

1.2.4 结果

1.3 路由配置

1.3.1 路由配置

1.3.2 路由模式

1.3.3 二级路由

1.4 路由跳转

1.4.2 tag属性

1.4.3 跳转属性target

1.4.4 replace属性

1.4.5 to属性

1.4.6 其他跳转方式

1.4.7 传递参数

1 普通方式

2 参数不要在url中显示

3 页面刷新后还可以获取到参数

1.4.8 跳转新页面

1.5 路由守卫

1.5.1 什么是路由守卫

1.5.2 全局守卫

1 beforeEach

2 afterEach

1.5.3 局部守卫

1 beforeRouteEnter

2 beforeRouteUpdate

3 beforeRouteLeave

1.5.4 路由守卫

1 beforeEnter


1 Vue Router

Vue Router,路由。

当项目逐渐复杂以后,可能会进行跳转,那就要使用到Vue Router。

1.1 Vue Router的安装

使用Vue Router要进行安装。

安装 | Vue Router

npm install vue-router -d

在package.json里可以看到安装的依赖(-d命令会使vue router安装到devDependencies里)。

1.2 创建路由

1.2.1 router-index.js创建路由

src>router>index.js里,创建路由

1.2.2 main.js里引入路由

引入到main.js里

1.2.3 在App.vue里使用路由

显示组件

在App.vue里使用router-view标签使用路由

1.2.4 结果

效果

a组件

要显示b组件,那么路径是/b

c组件这里就不演示了。

1.3 路由配置

1.3.1 路由配置

输入匹配不上的路由,如何进行处理呢?

输入未匹配的路由时,

 页面默认跳转'/'对应的页面。

1.3.2 路由模式

井号 # 为什么会存在?

# 对应模式是hash。

hash表示使用路由的形式类似 a链接(本地跳转)的一种形式。相当于是一个锚点。

mode默认是history.

是一种H5方式的路由。

在hash的基础上,访问路径去掉 # 以及后面的/.

效果

可以正常运行项目。

b组件

c组件就不演示了。

注意:如果去除 # 后,正式项目在进行一些部署时,需要后端配置。因为如果没有 # ,相当于浏览器向服务器发送一次请求,对应数据库没有这种请求,就会抛出404错误。

(没看懂)

测试学习阶段可以使用hash值进行。hash值要在路径中加上 #。

1.3.3 二级路由

前面是针对一级路由,现在针对二级路由进行配置。

比如,当前a组件下还有aa子组件。

效果

在路径输入aa,aa组件不生效。

欲在何处渲染,则在何处使用router-view标签。(见App.vue)

效果

此时aa组件生效。

同理。

还可以添加其他属性

在a组件打印看下对象内容。

打印结果

1.4 路由跳转

已经可以实现对不同的路由显示不同的内容,以及显示子路由,children里还可以显示子路由。

路由跳转:router-link。

本质上是一个 a 标签。

示例

运行

就是一个a标签

效果

点击跳转到b标签可以显示b组件。

1.4.2 tag属性

改造 a 标签为其他标签。

示例:改造为 div 标签。

效果

此时跳转到a是一个 div 标签,不再是 a 标签了。

也可以变为其他标签,比如span标签。

效果

1.4.3 跳转属性target

 a标签的属性也适用于 router-link。

示例

效果

点击跳转到b,会打开一个新标签页。


 

1.4.4 replace属性

replace:当前跳转没有历史记录。

添加replace

1.4.5 to属性

to也可以是对象类型。

router的index.js

App.vue里的to的name的‘c’对应路由name的‘c’。

效果

可以实现跳转到c组件。

结论:to可以接收字符串形式,也可以接收对象形式。

1.4.6 其他跳转方式

使用方法实现路由跳转。

使用this.$router.push('/'),可以跳转到a组件。

同理,以下写法都可以实现路由跳转

② path

③ name

④ 无历史记录

1.4.7 传递参数

1 普通方式

this.$router.push方法传值,this.$router.query取传递的参数。

效果

传递的参数在url携带。

同时可以获取到参数。

(其实这种传参方式,页面刷新后还是可以获取到参数的。)

2 参数不要在url中显示

要求:参数不要在url中。

效果,此时url不再携带参数,且仍然可以获取到参数。

但是此时刷新页面,再点击query按钮,无法获取到参数。因为此时没有地方可以存value参数值。

3 页面刷新后还可以获取到参数

在router的index.js文件里,添加以下代码

push方法的name也改成b

效果

push一下跳转到b组件,然后query,可以获取到value值

刷新页面,直接点击query按钮,还是可以获取到参数的。

可以发现,如果路由上不配置/:value的话,路由就没有值。如果配置后,那么导航上与query一样带上要传递参数的值。

1.4.8 跳转新页面

效果

点击push按钮,打开到一个新标签页。

补充:传参

总结:实现跳转。

之前使用router-link实现跳转,但是书写比较麻烦。可以使用点击事件代替实现路由跳转。

包括push方法,resolve方法,replace方法(不留历史记录)

1.5 路由守卫

1.5.1 什么是路由守卫

当进入一个页面,但是没有登陆,此时该页面会提示需要登陆才可继续访问页面。相当于路由拦截。

1.5.2 全局守卫

1 beforeEach

点击跳转到c,alert提示

这里就拦截跳转c组件的动作。

2 afterEach

跳转之后

1.5.3 局部守卫

1 beforeRouteEnter

进入组件之前

多次点击“跳转到c”,控制台只会打印一次结果。

2 beforeRouteUpdate

传递一个变化的参数

结果

不知道为啥,params里没有传递的日期参数,可能有bug吧。

3 beforeRouteLeave

离开组件之前

1.5.4 路由守卫

1 beforeEnter

up说的听不清,不知道是啥守卫

这篇关于【b站前端-小鑫】Vue Router(路由)快速掌握(入门到精通5节课)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/954238

相关文章

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口