当前位置: 首页 > news >正文

Vue2 —— 学习(一)

目录

一、了解 Vue

(一)介绍

(二)Vue 特点

(三)Vue 网站

1.学习:

2.生态系统:

3.团队

二、搭建 Vue 开发环境

(一)安装与引入 Vue

1.直接引入

2.NPM 安装

(二)简单案例

小知识:

1.实现过程

容器设置

Vue 实例设置 

2.实现结果 

3.注意事项

(三)Vue 插件

​三、Vue 模板语法 

(一)插值语法 {{ }}:

(二)指令语法 v-

四、Vue 数据绑定  

(一)单向数据绑定:

(二)双向数据绑定: 

五、el 和 data 的两种写法

(一)查看实例

(二)el:

1.第一种写法:直接写

2.第一种写法:原型对象方法

(三)data:

1.第一种写法:对象式

2.第一种写法:函数式

六、 理解 MVVM 模型

(一)与 Vue 的联系

(二)两条流程:

(三)注意:

七、 Vue 数据代理 

(一)Object.defineproperty 方法

1.语法

2.实例

 (二)数据代理应用


一、了解 Vue

(一)介绍

一套用于 构建用户界面 的渐进式 JavaScript 框架

构建用户界面:把手中的数据变成用户看见的界面

渐进式:自底向上逐层的应用,就是如果是简单的程序 只需要一个轻量小型的核心库;复杂应用需要引入各式各样的 Vue 插件。所以就是由小型的库逐步递进到复杂的库,看程序的复杂程度 逐层递进。

(二)Vue 特点

1.采用组件化 提高代码复用率 代码好维护

组件化:把网页中有特定功能的一部分(比如说任务栏)的html css js 文件封装到一个全新的文件类型 .vue 里面去,形成一个组件

复用率:如果有别人也想设计一个类似的任务栏就可以使用这个 .vue 文件提高复用率

2.声明式编码,编码人员无需直接操作 DOM 提高开发效率

比如 有一个对象里面有几个属性我们想挨个属性输出

我们用之前循环输出结果的那种语句叫命令式编码,必须一步一步进行

声明式相对很简洁

3.使用虚拟 DOM + 优秀的Diff 算法 尽量复用 DOM节点

就是 原生 DOM 如果在对象中又增加了一个属性,原本的三个数据就会被四个数据替换,然后再重新渲染到网页上,有点麻烦

 虚拟 DOM 又在数据和真实 DOM 之间增加了一个虚拟 DOM,它会缓存数据,如果对象中的数据发生了变化,有了这个就不是像之前一样又重新赋值一遍,虚拟 DOM 会将新数据 和原本的数据进行 Diff 比较 如果有之前的数据就保留,有新的变化就直接在原来的基础上改变数据,对过程进行了优化。

(三)Vue 网站

中文 Vue 官网  cn.vuejs.org

1.学习:

vuejs 中学习下面的教程 和 API 是最重要的两个部分,还有其它的

教程 :学习 Vue 缩进代表层级,红色感叹号表示注意项

API:Vue 的字典,不会的方法就查看 API

风格指南:就是代码风格 能合理优雅一点 尽量符合 Vue 代码风格

示例:把左边的栏往右拖一下 有源代码

Cookbook:技巧 进阶

2.生态系统:

工具和核心插件很重要,暂时用不到

3.团队

Awesome Vue 是作者推荐的一些好的 Vue 周边库,往下滑

浏览和 Vue 相关的包:和前一个差不多 好看一点

二、搭建 Vue 开发环境

(一)安装与引入 Vue

1.直接引入

使用<script>

开发版本:有详细的警告 vue.js,开发时使用,有利于改错

生产版本:删除了所有警告 vue.min.js (经过了压缩),产品上线前使用,缩小代码大小

我们下载开发版开发版引入,如下代码,全局多了一个 vue 函数

<script type="text/javascript" src="../js/vue.js"></script>

运行一下看一下控制台 有两个警告 引入成功 ,但是提示得安装 Vue 应用工具

在谷歌浏览器中 引入 Vue 应用插件 

然后插件中点击详情 然后允许访问 

然后刷新界面发现第一个警告消失

vue.config 是一个对象 包含 Vue 的全局配置 可以在应用启动之前 修改下列 property

API 全局变量里面 有属性介绍自己看看

  在 html 里面加一句  Vue.config.productionTip = false 能取消第二个警告

<script type="text/javascript">Vue.config.productionTip = false</script>
2.NPM 安装

需要配合脚手架 所以先学习前面的 script 引入访问文件地址

(二)简单案例

利用 Vue 的相关知识写一个可以变化文字内容 文字片段

小知识:

在 vscode 使用 Live Srever 插件,打开当前页面,会在本机5500 的端口开一台小服务器,把整个工程中的文件文件夹作为这台服务器中的根资源使用

1.实现过程
容器设置

root 容器中的代码被称为 Vue 模板

首先外面得有一个容器,然后创建 Vue 实例,传入配置对象

容器中首先有 插值语法就是和 Vue 相关的变化的量

{{用两个大括号里面放变化的变量}} 然后去 vue 中设置 变量具体的值

 <div id="root"><h1>hello {{name}}</h1></div>
Vue 实例设置 

括号里面大括号一般是配置对象({ })

常见的参数:

el:指定当前Vue 实例为哪个容器服务 里面是 css 选择器字符串形式(.name/#name)

data:传入数据 最好是数组类型

new Vue({el: '#root',data: {name: '一个人'}
2.实现结果 

Vue 实例解析 容器 看是否有变化的值 (name),检查到具体插值语法,最后 root 容器中的内容被替换成 Vue 模板内容

<body><div id="root"><h1>hello {{name}}</h1></div><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el: '#root',data: {name: '一个人'}})</script>
</body>
3.注意事项

多个相同类名的容器 不能都被 Vue 实例操作,只控制第一个,同样多个实例对同一个容器操作也不行,容器、实例是一对一的。但是也不能一个实例里面太多内容 可以往下分发内容 就是我们要使用的组件

{{ }} 里面究竟能放什么内容: js 表达式 就是有具体的 返回值 的语句,有变化的值,改变 Vue 实例的 data 里面的的值 相应页面用到该值的地方也会发生改变

真实开发中只有一个 Vue 实例,和组件一块儿使用

(三)Vue 插件

使用我们导入的 Vue 插件 

观察组件结构 有点像 DOM 结构

<Root> 不是容器 它是根 就是我们的 Vue 实例 以后里面有 儿子 就是组件

可以改变下面 Root 的内容来测试

三、Vue 模板语法 

root 容器中的代码被称为 Vue 模板

(一)插值语法 {{ }}:

就是把指定的值放到指定的地方,插值常用于标签体内部,就是<>123<>里面的内容

<body><div id="root"><h1>插值语法</h1><h3>你好{{name}}</h3></div><script type="text/javascript">new Vue({el: '#root',data: {name: '一个人'}})</script>
</body>

(二)指令语法 v-

指令语法常用于 标签属性中 就是<123> 里面的属性

v 是使用 Vue 的意思

v-bind: 动态的绑定值 

v-bind 能简写为 : 只有 v-bind 后面写的还是 js 表达式 

v-bind:'url' 会把里面的 url 当成表达式使用 就是从 url 变成 url = ... 的形式就能把 Vue 实例中的 url 数据读出来了 不能用{{url}}

加上:就能执行后面的语句否则就是普通的字符串形式

<body><div id="root"><h1>指令语法</h1><a v-bind:href="url">一个链接</a></div><script type="text/javascript">new Vue({el: '#root',data: {name: '一个人',url:'http://www.baidu.com'}})</script>
</body>

如果 Vue实例中的属性名字冲突 可以设置多个层级,再用别的对象包括一下

四、Vue 数据绑定  

v-bind 就是一种数据绑定 href 的内容就是 url 的内容

(一)单向数据绑定:

v-bind:  或 :

文本框输入改变了 value 但是不改变 Vue 实例中 value 属性

就是改变 Vue 实例中的数据时,对应容器中用到该数据的地方也会相应发生变化,但是如果对容器中可变化的数据进行变化 Vue 实例中的数据不会发生变化,因此是单向的。

<body><div id="root">单向数据绑定:<input type="text" :value="name"></div><script type="text/javascript">new Vue({el: '#root',data: {name: '一个人'}})</script>
</body>

(二)双向数据绑定: 

v-model:只能用在 表单类型元素中 就是有 value 的标签

v-model:value 可以简写为 v-model

文本框输入改变了 value 也改变 Vue 实例中 value 属性

就是改变 Vue 实例中的数据时,对应容器中用到该数据的地方会相应发生变化,对容器中可变化的数据进行变化 Vue 实例中的数据也会发生变化,因此是双向的。

五、el 和 data 的两种写法

(一)查看实例

查看 Vue 实例对象 发现以 $ 开头的属性和方法 都是给我们程序员用的,在下面的截图中,不带的就不是给我们用的,是底层用的,我们先不用这些

我们现在用的方法在这里,在原型对象中 ,就是 js 高级中学的原型对象 实例都能看见原型对象中的方法 

(二)el:

1.第一种写法:直接写

直接写在配置对象里面,

特点:设置完立即和容器相连,容器内部立即变成 Vue 实例中的内容

 new Vue({el: '#root',data: {name: '一个人'}})
2.第一种写法:原型对象方法

利用原型对象中的方法  $mount('css中的标签名') mount 是挂载的意思

特点:可以随时和容器相连,可以设置延时几秒后再和容器相连然后 容器显示内容

  const v = new Vue({data: {name: '一个人'}})console.log(v)v.$mount('#root')

(三)data:

1.第一种写法:对象式

普通写法 不建议使用

 data: {name: '一个人'}
2.第一种写法:函数式

尽量用函数式,后面组件必须用函数式,对象式会报错

是 Vue实例对象调用这个函数 所以 this 指向 Vue 实例对象

注意函数不能用箭头函数写不然会让 this 指向外层的 window,因为箭头函数没有 this,this就层层外指

  data:function(){return{name: '一个人'}}

六、 理解 MVVM 模型

(一)与 Vue 的联系

Vue 作者参考 MVVM 模型设计出了 Vue 模型

M:模型 model 对应 data 中的数据

V:视图 view 对应 DOM 就是对应 Vue 中的模板

VM:视图模型 ViewModel 对应 Vue 的实例对象

(二)两条流程:

数据通过数据绑定 将数据显示到页面上

数据通过 DOM 监听页面事件观测页面中数据的变化从而 对 Vue 对象中的数据进行更改

(三)注意:

在文档中经常用 vm 这个变量名来 代表 Vue 实例

data 中的属性都出现在 vm 身上

vm 身上所有的属性 和 vm 原型上所有的属性都能在 Vue 模板中直接使用

七、 Vue 数据代理 

(一)Object.defineproperty 方法

给对象添加属性的方法 es6 中的新语法

1.语法

Object.defineproperty 有三个参数

第一参数 对象名

第二参数 添加的属性名

第三参数 配置项 里面能加很多配置

最常用 value 就是给属性名添加属性值

2.实例

下面给 person 添加了一个 sex 属性 值是男

但是在浏览器中查看对象中的属性 发现 新添加的 sex 属性颜色比其他的淡

这意味着它不可枚举,就是不能遍历

用Object.keys(person) 或 for(key in person)检测一下发现没有 sex 属性 

let person = {name: '张三',age: 18}Object.defineProperty(person, 'sex', {value: '男'})

可以通过添加一个 enumerable:true 来解除这种现象  默认是false

能添加的属性如下:

value:属性值

enumerable:true 属性能枚举

writable:true 属性就能修改了

configurable:true 属性可以删除

get(){

return 'hello'

} :当有人读取 person 中 sex 的值时 get 就会被调用 返回值就是 sex 的值,这整个函数也被称为getter,设置完这个函数 sex 属性后面的值就会变成省略号因为,它是随用随调用,不调用时不显示,调用就返回 return 的值 给 sex 属性

同理 set(value){

console.log('有人修改sex 值 值是value')

number = value

}检测是否有人修改 value 值 整个函数也叫 setter 值

前四种属性设置:

  Object.defineProperty(person, 'sex', {value: '男',enumerable: true,writable: true,configurable:true})

 get 方法设置:

 <script type="text/javascript">let person = {name: '张三',age: 18}let number = 13Object.defineProperty(person, 'sex', {get() {return number}})console.log(person)</script>

set 方法设置: 

 Object.defineProperty(person, 'sex', {get: function () {return number},set(value) {number = value}})

 (二)数据代理应用

通过一个对象代理另一个对象中属性的操作(读和写)就叫数据代理

下面可以通过 obj1.x = 300 来改变 obj 中 x 的值也变成 300

  Object.defineProperty(obj1, 'x', {get() {return obj.x},set(value) {obj.x = value}})

我们检测一下 vm 中的属性发现里面多了两个属性一个是 name address 我们发现浏览器中查看这两个属性他们后面的值是省略号 这证明 他们使用了数据代理,通过调用我们设置的data.name 和

data.address 来查看和修改 name address 的值,分别利用了getter 和 setter 方法

<body><div id="root"><h1>学校名称:{{name}}</h1><h1>学校地址:{{address}}</h1></div><script type="text/javascript">const vm = new Vue({el:'#root',data:{name: '普通学校',address: '地上'}})</script>
</body>

查看 vm 对象

初始我们定义的 data 和 _data 是一个东西,我们改变 vm 中 name address 属性的值 data.name data.address 的值也会变化. 但是我们查看不到 代码只是最开始的代码

_data.name 和 name 本质是一个东西 但是有了数据代理 我们能简化代码写个 name 就行

原理;通过Object.defineProperty() 把 data 对象中所有属性添加到 vm 上

为每一个添加到 vm 的属性添加一个 getter 和 setter

在 getter setter 内部去操作data 中对应的属性

相关文章:

Vue2 —— 学习(一)

目录 一、了解 Vue &#xff08;一&#xff09;介绍 &#xff08;二&#xff09;Vue 特点 &#xff08;三&#xff09;Vue 网站 1.学习&#xff1a; 2.生态系统&#xff1a; 3.团队 二、搭建 Vue 开发环境 &#xff08;一&#xff09;安装与引入 Vue 1.直接引入 2.N…...

Windows Server 2008添加Web服务器(IIS)、WebDAV服务、网络负载均衡

一、Windows Server 2008添加Web服务器&#xff08;IIS&#xff09; &#xff08;1&#xff09;添加角色&#xff0c;搭建web服务器&#xff08;IIS&#xff09; &#xff08;2&#xff09;添加网站&#xff0c;关闭默认网页&#xff0c;添加默认文档 在客户端浏览器输入服务器…...

SpringMVC转发和重定向

转发和重定向 1. View Resolver Spring MVC 中的视图解析器&#xff08;View Resolver&#xff09;负责解析视图。可以通过在配置文件中定义一个 View Resolver 来配置视图解析器&#xff1a; 配置文件版&#xff1a;spring-web.xml <!-- for jsp --> <bean class&q…...

勒索病毒最新变种.rmallox勒索病毒来袭,如何恢复受感染的数据?

导言&#xff1a; 随着信息技术的飞速发展&#xff0c;网络安全问题日益突出&#xff0c;其中勒索病毒便是近年来备受关注的网络安全威胁之一。在众多勒索病毒中&#xff0c;.rmallox勒索病毒以其独特的传播方式和强大的加密能力&#xff0c;给广大用户带来了极大的困扰。本文…...

复试专业课问题

1、数据结构&#xff1a;详细描述归并排序的过程 归并排序是用分治思想&#xff0c;分治模式在每一层递归上有三个步骤&#xff1a; 分解&#xff08;Divide&#xff09;&#xff1a;将n个元素分成个含n/2个元素的子序列。解决&#xff08;Conquer&#xff09;&#xff1a;用…...

比特币革命:刚刚开始

作者&#xff1a;Marius Farashi Tasooji 编译&#xff1a;秦晋 要充分理解比特币及其含义&#xff0c;首先必须理解什么是价值&#xff0c;什么是货币。以及是什么赋予资产价值&#xff1f; 这个问题看似愚蠢&#xff0c;但实际上非常有趣。我们的生活是由我们消费或出售的物品…...

淘宝店商家电话提取软件操作经验

淘宝爬虫工具是一种用于自动化获取淘宝网站数据的程序。以下是一个简单的淘宝爬虫工具的代码示例&#xff1a; import requests from bs4 import BeautifulSoupdef get_taobao_data(keyword):url fhttps://s.taobao.com/search?q{keyword}headers {User-Agent: Mozilla/5.0…...

【进阶六】Python实现SDVRPTW常见求解算法——遗传算法(GA)

基于python语言&#xff0c;采用经典蚁群算法&#xff08;ACO&#xff09;对 带硬时间窗的需求拆分车辆路径规划问题&#xff08;SDVRPTW&#xff09; 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整2.1 需求拆分2.2 需求拆分后的服务时长取值问题 3. 求解结果4. 代码片段…...

【Android】App通信基础架构相关类源码解析

应用通信基础架构相关类源码解析 这里主要对Android App开发时&#xff0c;常用到的一些通信基础类进行一下源码的简单分析&#xff0c;包括&#xff1a; Handler&#xff1a;处理器&#xff0c;与某个Looper&#xff08;一个线程对应一个Looper&#xff09;进行关联。用于接…...

06-kafka配置

生产者配置 NAMEDESCRIPTIONTYPEDEFAULTVALID VALUESIMPORTANCEbootstrap.servershost/port列表&#xff0c;用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,…&#xff0c;无需添加所有的集群地址&#xff0c;kafka会根据提供的地址发现其他的地址&…...

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别 &#xff08;一&#xff09;Git&#xff08;分布式版本控制系统&#xff09;:&#xff08;二&#xff09;SVN&#xff08;集中式版本控制系统&#xff09;&#xff08;三&#xff09;TortoiseGit一、下载安装 git二、安装过程…...

4月5日排序算法总结(1)

冒泡排序 利用每趟都确定出一个最大值或者最小值 如果需要排一个从小到大的数组&#xff0c;那么我们每一趟都要确定一个最大值放在最后&#xff0c;一共有n个数&#xff0c;我们最多需要排列n-1趟就可以了&#xff0c;我们可以改进自己的代码&#xff0c;利用一个flag标记&a…...

Pandas追加写入文件的时候写入到了第一行

# 原代码 def find_money(file_path, account, b_account, money, type_word, time):file pd.read_excel(file_path)with open(money.csv, a, newline, encodingutf-8) as f:for i in file.index:省略中间的代码if 省略中间的代码:file.loc[[i]].to_csv(f,indexFalse)find_sam…...

04---webpack编写可维护的构建配置

01 构建配置抽离成npm包&#xff1b; 意义&#xff1a;通用性&#xff1a; 业务开发者无需关注构建配置 统一团队构建脚本可维护性&#xff1a;构建配置合理的拆分 质量&#xff1a;冒烟测试 单元测试 持续集成构建配置管理的可选方案&#xff1a;1 通过多个配置文件管理不同…...

【云计算】云数据中心网络(一):VPC

云数据中心网络&#xff08;一&#xff09;&#xff1a;VPC 1.什么是 VPC2.VPC 的组成2.1 虚拟交换机2.2 虚拟路由器 3.VPC 网络规划3.1 VPC 数量规划3.2 交换机数量规划3.3 地址空间规划3.4 不同规模企业地址空间规划实践 4.VPC 网络高可靠设计4.1 单地域单可用区部署4.2 单地…...

自动驾驶中的多目标跟踪_第一篇

自动驾驶中的多目标跟踪:第一篇 多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置&#xff08;状态&#xff09;或其他属性&#xff0c;最关键的是需要在一段时间内持续地进行估计。 附赠自动驾驶学习资料和量产经验&#xff1a;链接 应…...

AI爆款文案 巧用AI大模型让文案变现插上翅膀

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…...

Python入门的60个基础练习(一)

01-Hello World python的语法逻辑完全靠缩进&#xff0c;建议缩进4个空格。如果是顶级代码&#xff0c;那么必须顶格书写&#xff0c;哪怕只有一个空格也会有语法错误。下面示例中&#xff0c;满足if条件要输出两行内容&#xff0c;这两行内容必须都缩进&#xff0c;而且具有相…...

微软云学习环境

微软公有云 - Microsoft Azure 本文介绍通过微软学习中心Microsoft Learn来免费试用Azure上的服务&#xff0c;也不需要绑定信用卡。不过每天只有几个小时的时间。 官网 https://docs.microsoft.com/zh-cn/learn/ 实践 比如创建虚拟机&#xff0c;看到自己的账号下多了Learn的…...

大厂面试:找出数组中第k大的数的最佳算法

一.前置条件 假如数组为a,大小为n&#xff0c;要找到数组a中第k大的数。 二.解决方案 1.使用任意一种排序算法&#xff08;例如快速排序&#xff09;将数组a进行从大到小的排序&#xff0c;则第n-k个数即为答案。 2.构造一个长度为k的数组&#xff0c;将前k个数复制过来并降序…...

爬取高校专业信息的Python爬虫简介与实践

1. 介绍 在当前高校专业信息繁多的情况下&#xff0c;选择适合自己的专业成为了许多学生面临的挑战。为了帮助学生更好地了解各高校专业情况&#xff0c;我们开发了一个Python爬虫程序&#xff0c;用于爬取高校专业信息并保存到Excel文件中。本文将详细介绍该爬虫的实现过程以…...

redis 集群模式(redis cluster)介绍

目录 一 redis cluster 相关定义 1&#xff0c; redis cluster 是什么 2&#xff0c;redis 集群的组成 3&#xff0c;集群的作用 4&#xff0c;集群架构图 二 Redis集群的数据分片 1&#xff0c;哈希槽是什么 2&#xff0c;哈希槽如何排布 3&#xff0c;Redis集…...

python实现网络爬虫

网络爬虫是一个自动从互联网上抓取数据的程序。Python有很多库可以帮助我们实现网络爬虫&#xff0c;其中最常用的是requests&#xff08;用于发送HTTP请求&#xff09;和BeautifulSoup&#xff08;用于解析HTML或XML文档&#xff09;。 以下是一个简单的Python网络爬虫示例&a…...

LeetCode 836. 矩形重叠

解题思路 相关代码 class Solution {public boolean isRectangleOverlap(int[] rec1, int[] rec2) {int x1 rec1[0];int y1 rec1[1];int x2 rec1[2];int y2 rec1[3];int a1 rec2[0];int b1 rec2[1];int a2 rec2[2];int b2 rec2[3];return Math.min(y2,b2)>Math.max…...

为说阿拉伯语的国家进行游戏本地化

阿拉伯语是由超过4亿人使用的语言&#xff0c;并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言&#xff0c;但每个国家都有自己独特的文化&#xff0c;有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…...

【Python系列】读取 Excel 第一列数据并赋值到指定列

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

二叉树——存储结构

二叉树的存储结构 二叉树一般可以使用两种结构存储&#xff0c;一种是顺序结构&#xff0c;另一种是链式结构。 一、顺序存储 二叉树的顺序存储是指用一组连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素&#xff0c;即将完全二叉树上编号为i的结点元素存储…...

LangChain - OpenGPTs

文章目录 MessageGraph 消息图认知架构AssistantsRAGChatBot 持久化配置新模型新工具astream_events总结 关键链接&#xff1a; OpenGPT GitHub 存储库YouTube 上的 OpenGPT 演练LangGraph&#xff1a;Python、JS 两个多月前&#xff0c;在 OpenAI 开发日之后&#xff0c;我们…...

pe格式从入门到图形化显示(四)-节表

文章目录 前言一、什么是Windows PE格式节表&#xff1f;二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式&#xff0c;并使用qt进行图形化显示 一、什么是Windows PE格式节表&#xff1f; PE格式的节表&#xff08…...

路由策略与路由控制之双点双向重发布(OSPF-ISIS)实验

双点双向重发布在路由协议中&#xff0c;特别是在OSPF&#xff08;开放式最短路径优先&#xff09;与IS-IS&#xff08;中间系统到中间系统&#xff09;等协议之间&#xff0c;指的是在两个协议间或者两个进程间进行路由信息共享的机制。这种机制涉及到在两个不同的协议区域使用…...