Vue路由 - 工作原理(深入理解)

目标: 了解hash改变, 如何显示不同的组件的过程

1.基本思路:

  1. 用户点击了页面上的a链接

  2. 导致了 URL 地址栏中的 Hash 值发生了变化

  3. 前端js监听了到 Hash 地址的变化

  4. 前端js把当前 Hash 地址对应的组件渲染都浏览器中

2.实现简单的前端路由:  

     1.src/views/创建并在App.vue里导入和注册组件

      MyHome.vue

      MyMovie.vue

      MyAbout.vue

<script>
import MyHome from '@/views/MyHome.vue'
import MyMovie from '@/views/MyMovie.vue'
import MyAbout from '@/views/MyAbout.vue'
export default {components: {MyHome,MyMovie,MyAbout,}
}
</script>

  2通过动态组件, 控制要显示的组件

<template><div><h1>App组件</h1><component :is="comName"></component></div>
</template><script>
export default {// ...省略其他data () {return {comName: 'MyHome'}}
}
</script>

   3.声明三个导航链接, 点击时修改地址栏的 hash 值

<template><div><h1>App组件</h1><a href="#/home">首页</a>&nbsp;<a href="#/movie">电影</a>&nbsp;<a href="#/about">关于</a>&nbsp;<component :is="comName"></component></div>
</template>

  4.在 created 中, 监视地址栏 hash 时的变化, 一旦变化, 动态切换展示的组件

created () {window.onhashchange = () => {switch(location.hash) {case '#/home':this.comName = 'MyHome'breakcase '#/movie':this.comName = 'MyMovie'breakcase '#/about':this.comName = 'MyAbout'break}}
},

总结: 改变浏览器url的hash值, JS监听到hash值改变, 把对应的组件显示到同一个挂载点

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

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

相关文章

springboot学生综合测评系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;学生综合测评系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;学校规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

scanf函数和printf函数

1.scanf函数 int scanf ( const char * format, ... );函数功能&#xff1a; 从键盘读取数据如果读取成功&#xff0c;返回读取到的数据个数如果读取失败&#xff0c;返回EOF 不常见的读取格式&#xff1a; %md -->读取m个宽度的数据 int main() {int n 0;scanf("%4d&…

Java里的实用类

1.枚举 语法&#xff1a; public enum 变量名{ 值一&#xff0c;值二} 某个变量的取值范围只能是有限个数的值时&#xff0c;就可以把这个变量定义成枚举类型。 2…装箱&#xff08;boxing&#xff09; 和拆箱&#xff08;unboxing&#xff09; 装箱&#xff08;boxing&…

YOLOv5改进之OTA、SimOTA

一、OTA 1.1 原理 OTA原论文链接: https://readpaper.com/paper/3148566359 此处推荐一篇博文,对OTA讲解的非常详细: https://blog.csdn.net/hymn1993/article/details/127278641 1.2 如何改进 ota代码如下: import torch.nn.functional as F from utils.metrics import…

Android 屏蔽下拉状态栏(StatusBar)

Android 屏蔽下拉状态栏&#xff08;StatusBar&#xff09; 最近收到项目需求&#xff0c;需要屏蔽设备下拉状态栏&#xff08;StatusBar&#xff09;&#xff0c;总结出两种修改方法&#xff0c;具体如下&#xff1a; 第一种&#xff1a; /vendor/mediatek/proprietary/pac…

【c++】vector模拟

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能手撕vector模拟 > 毒鸡汤&#xff1a;在等待…

MYSQL - SQL优化

插入数据优化 小批量数据 批量插入 最好插入500-1000条比较好 手动提交事务 主键顺序插入 大批量插入数据 主键优化 页分裂 页合并 主键优化设计原则 order by优化 group by优化 limit优化 count优化 count(1)里面不一定必须1&#xff0c;数字都可以 update优化 更新字…

安卓多用户管理之Userinfo

目录 前言Userinfo----用户信息1.1 属性1.2 构造器1.3 信息的判断及获取方法1.3.1 获取默认用户类型1.3.2 基础信息判断 1.4 序列化部分 总结 前言 UserManagerService内部类UserData中有一个Userinfo类型的info参数&#xff0c;在UserData中并未有所体现&#xff0c;但在后续…

基于长短期神经网络lstm的电子密度预测

目录 背影 摘要 代码和数据下载:基于长短期神经网络lstm的电子密度预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88714821 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络lstm的电子密度预测 结果分析 展望 参考论文 背影 …

arch modelsim 解决无法运行

13.0的quartus modelsim版本10.1d 是32位的 修改/etc/pacman.conf [multilib] Include /etc/pacman.d/mirrorlistpacman -Sy安装 lib32-l…

《linux就该这样学》笔记(抽空更新)

2.3常用系统工作命令 2.3.1 echo 2.3.2 date 2.3.3 timedatectl 2.3.4 redoot 2.3.5 poweroff 2.3.6 wget 2.3.7 ps 2.3.8 pstree 2.3.9 top 2.3.10 nice 2.3.11 pidof 2.3.12 kill 2.3.13 killall 2.4系统状态检测命令 2.4.1 ifconfig 2.4.2 uname 2.4.3 upt…

OSPF基础

0x00 前言 本篇简述OSPF相关知识 0x01 正文 为什么需要动态路由协议 静态路由无法适应较大的网络无法动态的随着网络的变化而自动化&#xff0c;耗费人力 动态路由协议 什么是BGP协议 基于距离矢量算法修改后的算法形成协议&#xff0c;被称为路径矢量路由协议 BGP工作…

Spring MVC中JSON数据处理方式!!!

添加json依赖 <!--spring-json依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency> 注解 RequestBody&#xff1a;作…

prometheus 监控 Hyperledger Fabric 网络

本例中使用的 fabric 版本为 2.4.1 修改 orderer , peer 节点 docker-compose 文件 orderer 节点&#xff1a; environment:- ORDERER_METRICS_PROVIDERprometheus- ORDERER_OPERATIONS_LISTENADDRESS0.0.0.0:8443 ports:- 8443:8443peer 节点&#xff1a; environment:- CO…

AGX更新Jetpack后无法SSH报错:写入管道指定不存在

AGX更新Jetpack后无法SSH报错&#xff1a;写入管道指定不存在 报错内容 > IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! > Someone could be eavesdropping on you right now (man-in-the-middle attack)! > It is also possible that a host key has ju…

Python正则表达式(python系列29)

前言&#xff1a;在实际开发中&#xff0c;正则表达式主要用在模式匹配&#xff08;检查一个字符是否符合某种格式&#xff09;和处理复杂的文本数据&#xff0c;例如查找&#xff0c;替换&#xff0c;分割。 定义&#xff1a;使用元字符&#xff08;具有特殊意义的专用字符&a…

【数据库原理】(16)关系数据理论的函数依赖

一.函数依赖的概念 函数依赖是关系数据库中核心的概念&#xff0c;它指的是在属性集之间存在的一种特定的关系。这种关系表明&#xff0c;一个属性集的值可以唯一确定另一个属性集的值。 属性子集&#xff1a;在关系模式中&#xff0c;X和Y可以是单个属性&#xff0c;也可以是…

scVI与MultiVI

scVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/scvi.html MultiVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/multivi.html 目录 scVI生成推理任务 MultiVI生成推理 scVI single cell variational inference提出了一个…

elementui dialog 回车时却刷新整个页面

到处都是坑&#xff0c;这个坑填完另一个坑还在等你。。。坑坑相连&#xff0c;坑坑不同。。。 使用el-dialog弹出一个表单&#xff0c;当我无意间敲到回车键时&#xff0c;整个页面被刷新了&#xff0c;又是一脸的懵逼。。。 经过查找文档发现解决方案为上述截图标记。。。 e…

科锐16位汇编学习笔记 03 汇编指令

指令种类 数据传送指令算数运算类指令位操作类指令串操作类指令控制转移类指令处理器控制类指令 数据传送类指令 传送类指令不影响标志位&#xff0c;**除了标志位传送指令外。** 传送指令MOV&#xff08;move&#xff09; 说明 ​ 把一个字节或字的操作数从源地址传送至…