【动态路由和导航守卫】一.动态路由;二.路由中的查询参数;三.命名路由;四.命名视图;五.声明式导航 编程式导航;六.导航守卫

news2025/1/21 0:47:18

目录

一.动态路由

1.什么是动态路由?

2.动态路由如何进行参数的传递:

(1)如何设置URL地址中的参数:'/url/:参数名'

(2)在组件中接收参数:this.$route.params.参数名

3.$route和$router的区别:

(1)$router:

(2)$route:

4.示例:

(1)创建数据文件:assets/books.js

(2)创建组件:

(3)创建路由文件:src/router/index.js

(4)在main.js文件中注册自定义的路由器

(5)在App.vue中通过超链接渲染Books.vue组件

(6)修改路由文件:src/router/index.js

(7)修改Books.vue中的和

二.路由中的查询参数

1.查询参数的格式:在URL地址中带参数,例如:'/url地址?参数名1=参数值1&参数名2=参数值2'

2.在组件中接收查询参数:this.$route.query.参数名

3.示例:通过查询参数实现动态路由的效果

(1)修改路由文件:

三.命名路由

1.什么是命名路由?

2.在中使用name进行映射

四.命名视图

1.给指定名称:在使用时如没有给设置名称,默认为default,可以定义多个路由视图,每个路由视图都指定名称

2.在路由表中给路由项添加components属性:将组件渲染到给定名称的视图中

五.声明式导航 & 编程式导航

1.声明式导航:以超链接方式实现的页面跳转,就是声明式导航

2.编程式导航:通过JavaScript提供的api方法实现页面的跳转,就是编程式导航

3.vue-router中提供的编程式导航的API

(1)this.$router.push('url'):将'url'添加到路由表中,增加了一条路由记录

(2)this.$router.replace('url'):跳转到url中,并替换掉当前的历史记录

(3)this.$router.go(number):参数是一个数值,页面跳转到指定的位置

(4)this.$router.go()的简化写法:

六.导航守卫

1.用途:在页面导航过程中实现重定向、取消路由、权限验证等业务

2.分类:全局守卫、组件内部守卫、路由独享的守卫

3.全局守卫:

(1)全局的前置守卫:使用router.beforeEach(to,from,next){}来注册

(2)next调用的情况:

4.全局前置守卫的使用:

(1)创建Login.vue组件

(2)在路由文件router / index.js中注册全局的前置守卫


一.动态路由

1.什么是动态路由?

将URL地址中可变的内容设置成参数,根据不同的参数渲染不同的组件。(组件可以复用)

2.动态路由如何进行参数的传递:

(1)如何设置URL地址中的参数:'/url/:参数名'

(2)在组件中接收参数:this.$route.params.参数名

3.$route和$router的区别:

(1)$router:

        A.是VueRouter的实例,是一个全局的路由对象。用户可以在任何地方使用

        B.包含了所有的路由对象(实际代表的路由文件---路由表、路由模式)

        C.可以通过$router进行路由跳转(push、replace)

(2)$route:

        A.代表当前正在跳转的路由对象,是一个局部对象

                <router-link to="/login/123">登录</router-link>

        B.每个路由都有一个$route

        C.用法:this.$route后面跟name、path、params、query

4.示例:

(1)创建数据文件:assets/books.js

(2)创建组件:

        Books.vue:显示图书列表(显示图书名称)

        Book.vue:显示图书的详细信息(由路由参数id)

(3)创建路由文件:src/router/index.js

(4)在main.js文件中注册自定义的路由器

(5)在App.vue中通过超链接渲染Books.vue组件

(6)修改路由文件:src/router/index.js

(7)修改Books.vue中的<router-link>和<router-view>

二.路由中的查询参数

1.查询参数的格式:在URL地址中带参数,例如:'/url地址?参数名1=参数值1&参数名2=参数值2'

2.在组件中接收查询参数:this.$route.query.参数名

3.示例:通过查询参数实现动态路由的效果

(1)修改路由文件:

三.命名路由

1.什么是命名路由?

在路由表中给路由项设置name属性

2.在<router-link>中使用name进行映射

四.命名视图

1.给<router-view>指定名称:在使用时如没有给<router-view>设置名称,默认为default,可以定义多个路由视图,每个路由视图都指定名称

2.在路由表中给路由项添加components属性:将组件渲染到给定名称的视图中

五.声明式导航 & 编程式导航

1.声明式导航:以超链接方式实现的页面跳转,就是声明式导航

        <a href='url'>链接文本或图像</a>

        <router-link to='url'>链接文本或图像</router-link>

2.编程式导航:通过JavaScript提供的api方法实现页面的跳转,就是编程式导航

        location.href = 'url'

        location.go(number)

        location.replace('url')

3.vue-router中提供的编程式导航的API

(1)this.$router.push('url'):将'url'添加到路由表中,增加了一条路由记录

(2)this.$router.replace('url'):跳转到url中,并替换掉当前的历史记录

(3)this.$router.go(number):参数是一个数值,页面跳转到指定的位置

(4)this.$router.go()的简化写法:

        A.this.$router.back():后退

        B.this.$router.forward():前进

六.导航守卫

1.用途:在页面导航过程中实现重定向、取消路由、权限验证等业务

2.分类:全局守卫、组件内部守卫、路由独享的守卫

3.全局守卫:

(1)全局的前置守卫:使用router.beforeEach(to,from,next){}来注册

        to:将要访问的路由的信息对象

        from:将要离开的路由的信息对象

        next:是一个函数,调用next()表示当前路由已经放行

(2)next调用的情况:

        A.用户拥有了权限,直接放行:next()

        B.用户没有权限,强制跳转到指定的页面:next('/login')

        C.用户没有权限,不允许访问:next(false)

4.全局前置守卫的使用:

(1)创建Login.vue组件

(2)在路由文件router / index.js中注册全局的前置守卫

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新版android-studio无法安装Lombok插件?魔改后可任意安装版本教程(附已魔改下载地址)

&#x1f935;‍♂️ 个人主页: 奇怪的守护神 &#x1f468;‍&#x1f4bb; 作者简介&#xff1a;十年全栈开发经验&#xff0c;团队负责人。喜欢钻研技术&#xff0c;争取成为编程达人 &#x1f396;️&#xff01; &#x1f5fa;️学海无涯苦作舟&#xff0c;&#x1f6e4;️…

【自学Python】Python字符串(string)

Python字符串(string) Python字符串(string)教程 字符串是一个不可改变的字节序列。字符串可以包含任意的数据&#xff0c;但是通常是用来包含可读的文本。 Python字符串(string) Python 字符串定义有五种形式&#xff0c;使用单引号、双引号、三个单引号 、三个双引号以及…

胡凡 《算法笔记》 上机实战训练指南 chap3 入门模拟: 3.2 查找元素

胡凡 《算法笔记》 上机实战训练指南 chap3 入门模拟: 3.2 查找元素 文章目录胡凡 《算法笔记》 上机实战训练指南 chap3 入门模拟: 3.2 查找元素【PAT B1041】考试座位号【PAT B1004】成绩排名【PAT B1028】人口普查解决过程(cpp)AC代码python实现AC代码pycode1pycode2未AC代码…

代码随想录算法训练营第7天 383.赎金信、454. 四数相加II、15.三数之和、18.四数之和

代码随想录算法训练营第7天 383.赎金信、454. 四数相加II、15.三数之和、18.四数之和 赎金信 力扣题目链接(opens new window) 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串&#xff0c;判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构…

ERP系统到底能做什么?

ERP是什么&#xff1f;ERP即企业资源计划&#xff0c;ERP系统主要是优化企业内部的业务流程&#xff0c;用信息化管控的方式进行采购管理、库存管理、销售管理和财务管理等板块。它可以看作是进销存系统的进阶版&#xff0c;主要针对供应链中下游。 一、ERP系统怎么产生的&…

SpringBoot(项目创建使用+配置文件+日志文件)

目录 1. Spring Boot 项目创建 2. 写一个 Hello World 并运行 3. 配置文件的作用及格式 4. properties 配置文件的基本语法 5. 读取配置文件 6. yml 配置文件说明 7. properties 和 yml 的区别 8. SpringBoot 日志文件 8.1 日志的作用 8.2 自定义日志打印 8.3 日志…

低代码:全力构筑企业数字转型新生态

数字转型企业处于数字经济大潮的风口浪尖&#xff0c;既是创新主体也是数字技术广泛运用的重要平台&#xff0c;主动调整企业发展战略以顺应数字化转型是其明智抉择。企业经营决策者应深刻认识数字化转型的发展特点及本质要求&#xff0c;看到数字化转型是企业战略的迭代升级&a…

C#,图像二值化(19)——全局阈值的香巴拉算法( Shanbhag Thresholding)及源程序

1 算法描述&#xff08;凑数&#xff09;thresholdShanbhag由Robert Haase基于G.Landini和W.Rasband的工作。自动阈值器利用ImageJ中实现的Shanbhag阈值方法&#xff0c;使用GPU上确定的直方图创建尽可能类似于ImageJ“应用阈值”方法的二进制图像。thresholdShanbhag By Rober…

「精致店主理人」:青年敢有所为,梦想掷地有声

第三期「精致店主理人」青年创业孵化营于12月16日在周大福顺德匠心智造中心&#xff0c;完美收官&#xff01;「精致店主理人」青年创业孵化营是在共青团深圳市委员会的指导下&#xff0c;由深圳市青少年发展基金会与周大福珠宝集团联合主办&#xff0c;郑家纯青年发展专项基金…

CPU基本结构和运行原理

1 CPU的基本结构 1.1 CPU是一个计算系统的核心 Control Unit&#xff0c;负责控制。如指令计数器&#xff0c;指令跳转。 Logic Unit&#xff0c;负责计算。如加减&#xff0c;比较大小等。 1.2 南北桥芯片将CPU与外设连接 北桥&#xff1a;CPU和内存、显卡等部件进行数据交…

Python解题 - CSDN周赛第22期 - 取数字

又是大放水的一期&#xff0c;连我都可以10分钟解决战斗了。得益于Python&#xff0c;前面三题5分钟内就pass了&#xff0c;而最后一题也是之前刷过类似的。。。于是相应地&#xff0c;这期的题解也会简短一些。 这次的好成绩代表不了实力&#xff0c;但也希望这样的好运气能一…

自然语言处理 概览理解 NLP specialization - Supervised ML

自然语言处理 概览理解 NLP specialization - Supervised ML Remember that understanding the data is one of the most critical steps in Data Science 自然语言处理可以实现语义识别&#xff0c;情感识别&#xff0c;文本翻译等等功能&#xff0c;当然最近情况下最火的便…

Java支付宝沙箱环境支付,官方Demo远程调试【内网穿透】

文章目录1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问在沙箱环境调试支付SDK的时候&#xff0c;往往沙箱环境部署在本地&#xff0c;局限性大&#xff0c;在沙箱环境中有多种支付…

MATLAB-一维插值运算

一维插值是指对一维函数进行插值。已知n1个结点(x,y,)&#xff0c;其中x,互不相同(j0&#xff0c;1&#xff0c;2&#xff0c;... n),求任意插值点x*处的插值y*。求解一维插值问题的主要思想是:设结点由未知的函数g(x)产生&#xff0c;函数g(x)为连续函数且g(x)y;(j0,1,...,n);…

北大硕士LeetCode算法专题课---算法复杂度介绍

算法复杂度中大O的含义 推荐教程&#xff1a;北大硕士带你手撕Leetcode算法题 大O复杂度表示法 算法面试中&#xff0c; 经常会被问到&#xff0c;你写的算法复杂度是多少&#xff0c; 或者设计一个复杂度为 O(nlogn) 的算法复杂度分析是估算算法执行效率的方法&#xff0c;…

大厂的格局在细节上是怎么被拉低的

讲几个例子&#xff0c;都是大厂&#xff0c;作为大厂小散沙客户&#xff0c;也就是平头老百姓的角度来反观一下几个问题 第一个【脉脉】 今天&#xff08;2023年1月9日&#xff09;偶尔相等一下买买查看一下信息&#xff0c;由于手机没有安装APP.想借助PC的web端登录一下 它提…

小程序中无法播放阿里云的视频点播

背景视频直接存在自己的服务器&#xff0c;视频大了会存在卡顿现象&#xff0c;只能用阿里云或其它服务商的相关服务。原来在APP中已有了视频播放的功能&#xff0c;而且已经能正常使用&#xff0c;但视频的url是 http。现在期望在小程序中也添加视频播放的功能。初期操作申请相…

css——扁平圆弧(底部弧度)

案例演示 使用伪类处理&#xff0c;先将元素自身定位为relative&#xff0c;伪类设置content:‘’&#xff0c;并相对定位为absolute&#xff0c;再设置下left ,top 值&#xff0c;然后通过改变width和和left就可以调节弧度。宽度需大于100%&#xff0c;将left设为&#xff08;…

微分方程(人口预测与传染病模型)

一、定义 微分方程&#xff1a;含导数或微分的方程 微分方程的阶数&#xff1a;所含导数或微分的最高阶数&#xff0c;如y’’’2y’’-2x0是三阶微分方程 微分方程的解&#xff1a;使得微分方程成立的函数 例如y’-2x0的解可以为x或者x1 微分方程的通解和特解&#xff1a;特…

基于Arduino Pro Micro的游戏手柄制作

基于Arduino Pro Micro的游戏手柄开发 1. Arduino IDE下载及安装 在Arduino官网Software | Arduino下载最新版Arduino IDE并安装。 或使用QQ群中提供的免安装版Arduino IDE&#xff0c;安装完成后Arduino Pro Micro的pin脚定义使用下面路径下的leonardo: 2. Arduino Pro Micr…