动力节点Vue笔记 六、路由route

【Vue知识点】路由router详解 路由router详解 阅读详情

路由route

6.1 传统web应用vs单页面web应用

传统web应用
传统web应用,又叫做多页面web应用:核心是一个web站点由多个HTML页面组成,点击时完成页面的切换,因为是切换到新的HTML页面上,所以当前页面会全部刷新。

单页面web应用(SPA:Single Page web Application)
整个网站只有一个HTM页面,点击时只是完成当前页面中组件的切换。属于页面局部刷新。


单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。单页面的跳转仅刷新局部资源。因此,对单页应用来说模块化的开发和设计显得相当重要。
单页面应用的优点:
1、提供了更加吸引人的用户体验:具有桌面应用的即时性、网站的可移植性和可访问性。
2、单页应用的内容的改变不需要重新加载整个页面,web应用更具响应性和更令人着迷。
3、单页应用没有页面之间的切换,就不会出现“白屏现象”,也不会出现假死并有“闪烁”现象
4、单页应用相对服务器压力小,服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍。
5、良好的前后端分离。后端不再负责模板渲染、输出页面工作,后端API通用化,即同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端
单页面应用的缺点:
1、首次加载耗时比较多。
2、[SEO](https://so.youkuaiyun.com/so/search?q=SEO&spm=1001.2101.3001.7020" \t "https://blog.youkuaiyun.com/weixin_66557048/article/details/_blank)问题,不利于百度,360等搜索引擎收录。
3、容易造成CSS命名冲突。
4、前进、后退、地址栏、书签等,都需要程序进行管理,页面的复杂度很高,需要一定的技能水平和开发成本高。
单页面和多页面的对比

目前较为流行的是单页面应用的开发。
如果想使用Vue去完成单页面应用的开发,需要借助Vue当中的路由机制。

6.2 路由route与路由器router

路由:route
路由器:router
每一个路由都由key和value组成。
key1+value1===>路由route1
key2+value2===>路由route2
key3+value3===>路由route3
…
路由的本质:一个路由表达了一组对应关系。
路由器的本质:管理多组对应关系。
Vue中路由的工作原理:

6.3 使用路由

  1. 实现功能描述


  1. 根据静态页面提取两个组件:Tea.vue和Fruit.vue



  1. vue-router也是一个插件,安装vue-router
    1. vue2要安装vue-router3
      1. npm i vue-router@3
    2. vu3要安装vue-router4
      1. npm i vue-router@4
  2. main.js中引入并使用vue-router
    1. 导入:import VueRouter from ‘vue-router’
    2. 使用:Vue.use(VueRouter)
    3. new Vue时添加新的配置项:一旦使用了vue-router插件,在new Vue的时候可以添加一个全新的配置项:router

  1. router路由器的创建一般放在一个独立的js文件中,例如:router/index.js
    1. 创建router目录
    2. 创建index.js,在index.js中创建路由器对象,并且将其暴露。然后在main.js文件中引入该路由器即可。

  1. 使用router-link标签代替a标签(App.vue中)


router-link标签最终编译之后的还是a标签。vue-router库帮助我们完成的。

  1. 添加激活样式

使用active-class属性,在激活时添加样式:selected

  1. 指定组件的最终显示位置。

  1. 测试




注意事项:

  1. 路由组件一般会和普通组件分开存放,路由组件放到pages目录,普通组件放到components目录下。
  2. 路由组件在进行切换的时候,切掉的组件会被销毁。
  3. 路由组件实例比普通组件实例多两个属性: r o u t e 和 route和 route和router
    1. $route:属于自己的路由对象。
    2. $router:多组件共享的路由器对象。

6.4 多级路由

  1. 要实现的效果


  1. 主要实现



6.5 路由query传参

为了提高组件的复用性,可以给路由组件传参。
怎么传?


怎么接?

6.6 路由起名字

可以给路由起一个名字,这样可以简化to的编写。
怎么起名?

怎么使用?必须使用 :to=”{}” 的方式

6.7 路由params传参

怎么接?


怎么传?

需要注意的是,如果采用params传参,使用:to的时候,只能用name,不能用path。

6.8 路由的props

props配置主要是为了简化query和params参数的接收。让插值语法更加简洁。
第一种实现方式:


第二种实现方式:函数式


第三种实现方式:直接将params方式收到的数据转化为props

6.9 router-link的replace属性

  1. 栈数据结构:先进后出,后进先出原则。

  1. 浏览器的历史记录是存储在栈这种数据结构当中的。包括两种模式:
    1. push模式(默认的)
    2. replace模式

  1. 如何开启replace模式:

6.10 编程式路由导航

需求中可能不是通过点击超链接的方式切换路由,也就是说不使用如何实现路由切换。可以通过相关API来完成:

  1. push模式:
    1. this.$router.push({

name : ‘’,
query : {}
})

  1. replace模式:
    1. this.$router.replace({

name : ‘’,
query : {}
})

  1. 前进:
    1. this.$router.forward()
  2. 后退:
    1. this.$router.back()
  3. 前进或后退几步:
    1. this.$router.go(2) 前进两步
    2. this.$router.go(-2) 后退两步
  4. 使用编程式路由导航的时候,需要注意:重复执行push或者replace的API时,会出现以下错误:


这个问题是因为push方法返回一个Promise对象,期望你在调用push方法的时候传递两个回调函数,一个是成功的回调,一个是失败的回调,如果不传就会出以上的错误。所以解决以上问题只需要给push和replace方法在参数上添加两个回调即可。

6.11 缓存路由组件

默认情况下路由切换时,路由组件会被销毁。有时需要在切换路由组件时保留组件(缓存起来)。



这里的组件名称指的是:

不写include时:包含的所有路由组件全部缓存。
如何指定多个缓存路由,可以使用数组形式:

6.12 activated和deactivated

这是两个生命周期钩子函数。
只有“路由组件”才有的两个生命周期钩子函数。
路由组件被切换到的时候,activated被调用。
路由组件被切走的时候,deactivated被调用。
这两个钩子函数的作用是捕获路由组件的激活状态。

6.13 路由守卫

6.13.1 全局前置守卫

router/index.js文件中拿到router对象。
router.beforeEach((to, from, next)=>{ // 翻译为:每次前(寓意:每一次切换路由之前执行。)
// to 去哪里(to.path、to.name)
// from 从哪来
// next 继续:调用next( )
})

这种路由守卫称为全局前置路由守卫。
初始化时执行一次,以后每一次切换路由之前调用一次。

如果路由组件较多。to.path会比较繁琐,可以考虑给需要鉴权的路由扩展一个布尔值属性,可以通过路由元来定义属性:meta:{isAuth : true}

6.13.2 全局后置守卫

router/index.js文件中拿到router对象。
router.afterEach((to, from)=>{ // 翻译为:每次后(寓意:每一次切换路由后执行。)
// 没有 next
document.title = to.meta.title // 通常使用后置守卫完成路由切换时title的切换。
})
这种路由守卫称为全局后置路由守卫。
初始化时执行一次,以后每一次切换路由之后调用一次。
该功能也可以使用前置守卫实现:

该功能使用后置守卫实现更好:

解决闪烁问题:

6.13.3 局部路由守卫之path守卫


注意:没有afterEnter

6.13.4 局部路由守卫之component守卫


注意:只有路由组件才有这两个钩子。

6.13.5 前端项目上线

  1. 路径中#后面的路径称为hash。这个hash不会作为路径的一部分发送给服务器:
    1. http://localhost:8080/vue/bugs/#/a/b/c/d/e (真实请求的路径是:http://localhost:8080/vue/bugs)
  2. 路由的两种路径模式:
    1. hash模式
    2. history模式
  3. 默认是hash模式,如何开启history模式
    1. router/index.js文件中,在创建路由器对象router时添加一个mode配置项:

  1. 项目打包
    1. 将Xxx.vue全部编译打包为HTML CSS JS文件。
    2. npm run build


  1. 这里服务器端选择使用Java服务器:Tomcat,接下来教大家配置Tomcat服务器:
    1. 下载JDK
    2. 安装JDK
    3. 配置环境变量:JAVA_HOME
      1. 注意:如果你安装的路径和我安装的不一样,只要能够找到JDK bin目录的上一级目录即可。
    4. 下载Tomcat
    5. 安装Tomcat
      1. 解压就是安装。我这里直接解压到C盘的根目录下
    6. 配置环境变量:CATALINA_HOME
    7. 配置环境变量:PATH
    8. 启动Tomcat
      1. 打开dos命令窗口,输入startup.bat,看到以下窗口表示tomcat启动成功(注意Tomcat服务器的端口号是8080,启动Tomcat服务时最好先关闭vue脚手架,因为vue cli使用的端口也是8080,如果启动了Tomcat服务器,再启动vue脚手架的话,脚手架会另外开启一个其他的端口。)
        1. 如果你启动tomcat控制台有乱码也无所谓,如果实在看不下去,可以修改以下配置文件内容:
    9. 关闭Tomcat
      1. ctrl + c 或者:dos命令窗口中输入:shutdown.bat
    10. 将前端项目部署到Tomcat。
    11. 找到tomcat服务器的webapps目录,并找到webapps目录下的ROOT目录,清空ROOT目录
    12. 将前端项目直接拷贝放到ROOT目录下即可。
    13. 访问项目。
    14. 重启tomcat,并访问。
    15. http://localhost:8080
  2. hash模式和history模式的区别与选择
    1. hash模式
      1. 路径中带有#,不美观。
      2. 兼容性好,低版本浏览器也能用。
      3. 项目上线刷新地址不会出现404。
      4. 第三方app校验严格,可能会导致地址失效。
    2. history模式
      1. 路径中没有#,美观。
      2. 兼容性稍微差一些。
      3. 项目上线后,刷新地址的话会出现404问题。需要后端人员配合可以解决该问题。
  3. 对于tomcat服务器来说,如何解决history带来的404问题,这需要后端人员写一段代码:
    1. 在ROOT目录下新建WEB-INF目录。
    2. 在WEB-INF目录下新建web.xml文件。
    3. 在web.xml文件中做如下配置:
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns=“https://jakarta.ee/xml/ns/jakartaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
version=“6.0”
metadata-complete=“true”>

404 /index.html
vue-route路由详解 配置路由格式:/router/:id传递方式:在path后面跟上对应的值传递后形成的路径:/router/1; 阅读详情

相关推荐

Vue笔记第六章路由route【动力节点】

传统web应用,又叫做多页面web应用:核心是一个web站点由多个HTML页面组成,点击时完成页面的切换,因为是切换到新的HTML页面上,所以当前页面会全部刷新。整个网站只有一个HTM页面,点击时只是完成当前页面中的切换。属于页面局部刷新。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。单页面的跳转。

A_coding的博客 681

vue-router 路由超详细教程

路由(英文: router)就是对应关系Hash 地址与组件之间的对应关系。vue-router是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装和配置的步骤① 安装 vue-router 包② 创建路由模块③ 导入并挂载路由模块④ 声明路由链接和占位符2.1在项目中安装 vue-router。

weixin_47124112的博客 4万+

老杜Vue笔记⑥ 路由route

动力节点vue2+3视频课程。

Java_Coding1的博客 997

vue系列 —— vue-route详细使用方法

说到路由, 我们最熟悉的路由是什么呢? 那就是路由器了。 其实路由器有两个重要的功能: 路由和传送 路由: 路由决定数据包从哪里来, 到哪里去。 也有是来源和目的地的路径。 路由中有一个路由表,路由表本质上就是一个映射表,决定了数据包的传输方向。 传送: 传送是将输入端的数据传送给输出端 下面我们先来搭建一个项目, 然后一边学习一遍在项目里实战 创建vue-cli2项目 vue init webpacek vueroute 然后一路向下就可以了, 如果本地创建项目很慢, 可以采用离线创建项目的

七月 3万+

Vue笔记【动力节点】第六章路由route

传统web应用,又叫做多页面web应用:核心是一个web站点由多个HTML页面组成,点击时完成页面的切换,因为是切换到新的HTML页面上,所以当前页面会全部刷新。整个网站只有一个HTM页面,点击时只是完成当前页面中的切换。属于页面局部刷新。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。单页面的跳转。

assdfgdfgjhtdo的博客 964

电商项目功能简述

1.电商行业的技术特点 1.技术性 2.技术范围广 3.分布式 4.高并发,集群,负载均衡,高可用 5.海量数据 6.业务复杂 7.系统安全 2.电商行业的模式 B2B:企业到企业,商家到商家.代表:阿里巴巴 B2C:商家到客户.代表:京东.淘宝商城 C2C:客户到客户.淘宝集市 O2O:线上到线下 3.B2C电商系统架构功能模块 4.B2C电商系统架构功能描述 后台管理系统:管理商品、订单、类...

weixin_45116848的博客 9744

动力节点Vue笔记第六章路由route

传统web应用,又叫做多页面web应用:核心是一个web站点由多个HTML页面组成,点击时完成页面的切换,因为是切换到新的HTML页面上,所以当前页面会全部刷新。整个网站只有一个HTM页面,点击时只是完成当前页面中的切换。属于页面局部刷新。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。单页面的跳转。

weixin_54585403的博客 553

Win10本地账户密码遗忘?巧用指纹/PIN快速重置(家庭版/专业版通用指南)

本文提供了一份详细的Win10本地账户密码遗忘自救指南,适用于家庭版和专业版用户。核心方法是利用已登录的指纹或PIN码权限,通过创建新的管理员账户或使用系统工具,安全重置遗忘的本地账户密码,无需第三方工具或重装系统,有效保护个人数据。

e6f7g8h9i的博客 577

Vue-route核心知识整理

Vue-route核心知识整理:1 相关理解;2 几个注意点;3 路由的基本使用;4 嵌套 (多级) 路由;5 路由传参;6 路由的replace属性;7 路由的编程式导航;8 缓存路由组件;9 两个新的生命周期钩子;10 全局路由守卫(前置和后置路由守卫);11独享路由守卫;12 组件内守卫;13 路由的两种工作模式

xiaoxie_life_study 2619

基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战(附完整代码与训练策略)

本文详细介绍了基于Isaac Gym与PPO算法的机械臂抓取任务仿真与强化学习实战。通过环境搭建、PPO算法实现、奖励函数设计等核心环节的优化,结合完整代码与训练策略,显著提升机械臂抓取效率与成功率。特别适合开发者快速掌握强化学习在机器人控制领域的应用。

weixin_29256771的博客 599

SAP-ABAP:FI财务会计模块常用BAPI及核心用途实例说明

SAP FI模块的BAPI覆盖了从主数据管理、凭证过账到财务关账的全流程操作,是系统集成与自动化的重要工具。实际应用中需结合业务场景选择合适的BAPI,并严格遵循事务控制与校验规则。如需扩展功能,可通过BAdI或用户出口增强标准逻辑。

baidu_35680696的博客 1601

【Vue】高级系列(九)路由 - vue-router - SPA - 基本路由 - 嵌套路由 - 编程式路由导航

学习Vue-router

YK菌的博客 3396

7、布尔网络的基础定义

本文介绍了布尔网络的基础定义及其在系统生物学中的应用。布尔网络是一种描述复杂系统动态行为的数学模型,由布尔变量和布尔函数组成,能够模拟生物系统中基因调控、信号传导和细胞代谢等过程。文章详细阐述了布尔网络的基本结构、动力学特征(如状态转移图和吸引子),以及其在生物建模中的重要价值,并探讨了优化和简化技术(如Backward Boolean Equivalence)如何提升其计算效率。

yhn45678901的博客 262

Vue的router详解

vue-router参数配置,vue-router的相对路径和绝对路径,带/和不带/的区别,vue-router路由的嵌套使用,vue-router的路由传参,keep-alive的使用,vue-router动态添加路由,删除路由,vue-router导航守卫的使用

Litt_White的博客 1万+

HQChart实战教程54:Renko砖形K线图实现详解

Renko图(砖形图)起源于日本,只关注价格变动而忽略时间和成交量因素: 2.2 算法说明 初始化:使用第一根K线的收盘价创建第一个砖块 变动检测:计算当前价格与最后一个砖块的差值 砖块生成: 当价格变动≥砖块大小时,生成新砖块 当价格变动不足时,更新当前砖块的高低价 方向判断:根据价格变动方向确定砖块颜色 三、完整实现代码 四、Renko图的高级应用 4.1 动态砖块大小调整 4.2 Renko交易策略 三砖反转策略:趋势跟踪策略:本文详细介绍了Renko图的实现原理和在HQChart中的应

QQ_778132974的博客 872

基于STM32L4XX、HAL库的TESEO-LIV4FTR定位模块驱动程序设计

支持多星座系统:GPS、GLONASS、Galileo和北斗。支持NMEA 0183协议和ST专有协议。高灵敏度:-167dBm跟踪灵敏度。低功耗设计,适合物联网和便携设备。内置LNA和SAW滤波器。

zhusl6688的博客 237

路由vue-route的使用

{访问路由:http://localhost:8080/#/user/666UserView.vue组件。

python全栈 4271

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Vue路由(vue-router)详细讲解指南

酷的同时也会给我们带来一些问题,因为使用路由参数时,从/user/xianyu导航到/user/mengxiang,原来的组件实例会被复用,两个路由都渲染同个组件,比起销毁再创建,显示复用显得效率更高,带来的的只管问题就是生命周期钩子函数不会再被调用,也就是不会再被触发;就这样,我们的页面就可以进行路由跳转和切换了,路由的基本使用就完成了;重定向实际上是当匹配到路径符合条件的时候去执行对应的路由,当然这个时候的url上面的地址显示的是对应的路由,页面也是对应的路由页面;

精选资讯文章 6939

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Vue】Vue-route路由

vue 路由总结

Sheldon74的博客 973

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Vue:路由route

导入:import VueRouter from 'vue-router',使用:Vue.use(VueRouter),路由对象中有一个query属性,这个query属性可以接收query方式传递过来的数据。默认情况下路由切换时,路由组件会被销毁。不停的监视路径的变化,只要路径变化,路由器就会找到相应的路由,完成切换。路由组件被切走的时候,deactivated 被调用。进入路由组件之前,必须是路由组件才能触发,普通组件不触发。离开路由组件之后,必须是路由组件才能触发,普通组件不触发。

islunatic的博客 890

Vue-Router详解

介绍了Vue-Router的相关知识点

凉茶铺的博客 8464

Vue 路由 (vue-router) 详细总结

根据 Vue 版本选择合适的 vue-router 版本,Vue 2 使用 vue-router@3,Vue 3 使用 vue-router@4,安装时若报错可加。配置路由器对象,导入 Vue、VueRouter,注册 VueRouter,导入路由组件,创建 VueRouter 实例并配置。为了简化 query 和 params 参数的接收,让插值语法更简洁,在接收参数的组件路由中配置 props。路由器用于管理多个路由,负责调度和管理应用中的所有路由规则,决定不同路径下显示的组件。

奋斗的小前端 1255

VUE路由的介绍与基础用法(写给小白的理解笔记)

vue路由的基础使用 params传参 query传参 props配置项传参

qq_41162375的博客 833

vue.router和vue.route

Vue Router 和 Vue Route 是 Vue.js 中用于构建单页面应用(SPA)路由系统的两个核心概念。Vue Router 是 Vue.js 的官方路由管理器,而 Vue Route 则是在 Vue 组件内部通过$route对象来访问当前路由的信息。

geng1025的博客 782
上一篇: 动力节点Vue笔记第五章vuex
下一篇: 动力节点Vue笔记第七章vue3
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值