动力节点Vue笔记第七章

vue3新手快速入门 vue3新特性:组合式API(重点),更好的支持typescript(熟悉),状态存储框架pinia(重点),新组件(了解)官网地址:https://vuejs.org/。中文官网:https://cn.vuejs.org/Vue3 是 Vue2 的升级版本,在性能、语法和架构等方面都有显著改进。易学易用,性能出色,适用于场景丰富的web前端框架。9.创建并启动vue3工程项目。使用官方提供的创建vue工程。一、vue2和vue3区别。二、整体认识vue3项目。1、创建vue3工程。 阅读详情

7 Vue3

7.1 了解Vue3

  1. vue3官网地址
    1. https://cn.vuejs.org/
  2. vue3发布时间
    1. 2020年9月18日。


翻译:
今天,我们很自豪地宣布Vue.js 3.0“海贼王”正式发布。这个新的主要版本的框架提供了改进的性能、更小的捆绑包大小、更好的TypeScript集成、用于处理大规模用例的新API,以及为框架未来的长期迭代奠定了坚实的基础。
3.0版本代表了两年多的开发工作,包括30多个RFC、2600多个提交、来自99个贡献者的628个拉取请求,以及核心回购之外的大量开发和文档工作。我们要向我们的团队成员表示最深切的感谢,感谢他们接受了这一挑战,感谢我们提出的撤回请求,感谢我们的赞助商和支持者提供的财政支持,感谢广大社区参与我们的设计讨论并为预发布版本提供反馈。Vue是一个为社区创建并由社区支持的独立项目,如果没有您的持续支持,Vue 3.0是不可能实现的。

  1. 版本迭代历史
    1. https://github.com/vuejs/core/releases
  2. vue3做了哪些改动
    1. 最核心的虚拟DOM算法进行了重写。
    2. 支持tree shaking:在前端的性能优化中,es6 推出了tree shaking机制,tree shaking就是当我们在项目中引入其他模块时,他会自动将我们用不到的代码,或者永远不会执行的代码摇掉
    3. 最核心的响应式由Object.defineProperty修改为Proxy实现。
    4. 更好的支持TS(Type Script:TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。)
    5. …
  3. vue3比vue2好在哪
    1. 翻译:
      1. 与Vue 2相比,Vue 3在捆绑包大小(通过树抖动可轻41%)、初始渲染(快55%)、更新(快133%)和内存使用(少54%)方面都有了显著的性能改进。
  4. Vue3的新特性
    1. 新的生命周期钩子
    2. 键盘事件不再支持keyCode。例如:v-on:keyup.enter支持,v-on:keyup.13不支持。
    3. 组合式API(Composition API)
    4. 新增了一些内置组件
    5. data必须是一个函数。
    6. …

7.2 Vue3工程的创建

7.2.1 vue-cli创建Vue3工程

  1. 创建Vue3版本的工程,要求vue-cli最低版本4.5.0
    1. 可以使用以下命令升级你的脚手架版本
      1. npm install -g @vue-cli
  2. 创建Vue3工程
    1. vue create vue3_pro
  3. 启动工程
    1. 切换到工程根目录。
    2. npm run serve

7.2.2 vue-cli创建的vue3项目说明

  1. 目录结构以及文件和vue2相同。

  1. main.js文件说明

  1. 查看App.vue组件


vue3中template标签下可以有多个根标签了。

7.2.3 create-vue创建Vue3工程

  1. create-vue是什么?
    1. 和vue-cli一样,也是一个脚手架。
    2. vue-cli创建的是webpack+vue项目的脚手架工具。
    3. create-vue创建的是vite+vue项目的脚手架工具。
    4. webpack和vite都是前端的构建工具。
  2. vite官网
    1. https://vitejs.cn/
  3. vite是什么?(vite被翻译为:快)
    1. vite是一个构建工具,作者尤雨溪。

  1. 前端构建工具有哪些?

  1. vite和传统构建工具的区别?
    1. https://cn.vitejs.dev/guide/why.html 官方的说辞。

  1. 使用vite后,至少两方面是提升了:
    1. 服务器启动速度快。
    2. 更新速度快了。
  2. 使用create vue创建Vue3工程
    1. 官方指导:https://cn.vuejs.org/guide/quick-start.html
    2. 安装 create-vue脚手架并创建vue3项目:npm init vue@latest

执行时,如果检测到没有安装create-vue脚手架时会安装脚手架。如果检测到已经安装过脚手架,则直接创建项目。


一路选择No:

  1. cd vue3_pro
  2. npm install
  3. npm run dev

  1. 访问5173端口

7.2.4 create-vue创建的vue3工程说明

  1. 目录结构

  1. 和vue-cli脚手架创建的区别
    1. index.html文件不再放到public目录下了。
      1. vite官方的解释是:让index.html成为入口。(vue-cli脚手架生成的项目入口是:main.js)

  1. vue-cli的配置文件vue.config.js。create-vue脚手架的配置文件:vite.config.js
    1. vite.config.js 能配置什么?可以参考vite官网:https://cn.vitejs.dev/config/ 例如配置代理服务器和以前就不太一样了。

7.3 Proxy实现原理

Vue2的响应式核心:Object.defineProperty
Vue3的响应式核心:Proxy

7.3.1 Object.defineProperty

get做数据代理。set做数据劫持。在set方法中修改数据,并且渲染页面,完成响应式。
Object.defineProperty(data, ‘name’, {
get(){
// 数据代理
},
set(val){
// 数据劫持
}
})
存在的问题:

  1. 通过数组下标修改数据,这个操作是没有响应式的。
  2. 后期给对象新增属性、删除属性,这些操作都是没有响应式的。

导致以上问题最根本原因是:Object.defineProperty只能捕获到读和修改。
Vue2中怎么解决以上问题?

  1. 对于数组来说调用数组的相关API。例如:push、shift、unshift…
  2. 新增属性、删除属性等操作通过:Vue.set或者this.$set

7.3.2 Proxy

Proxy是ES6新增特性。window.Proxy
Proxy是一个构造函数,参数传递一个目标对象,可以为目标对象生成代理对象。
通过访问代理对象上的属性来间接访问目标对象上的属性。
访问代理对象上的属性时,读属性、修改属性、删除属性、新增属性。Proxy都可以捕获到。

Vue3框架底层实际上使用了ES6的Reflect对象来完成对象属性的访问:

7.4 setup

  1. setup是一个函数,vue3中新增的配置项。
  2. 组件中所用到的data、methods、computed、watch、生命周期钩子…等,都要配置到setup中。
  3. setup函数的返回值:
    1. 返回一个对象,该对象的属性、方法等均可以在模板语法中使用,例如插值语法。
    2. 返回一个渲染函数,从而执行渲染函数,渲染页面。
      1. import {h} from ‘vue’ (引入渲染函数)
      2. return ()=>{h(‘h2’, ‘欢迎大家学习Vue3’)}
  4. vue3中可以编写vue2语法,向下兼容的。但是不建议。更不建议混用。

  1. setup中的this是undefined。所以setup中this是不可用的。

7.5 ref函数(实现响应式)

7.5.1 简单数据的响应式

  1. ref是一个函数。完成响应式的。
  2. ref使用时需要import
    1. import {ref} from ‘vue’
  3. 凡是要实现响应式的data,需要使用ref函数进行包裹
    1. let name = ref(‘李四’)
    2. 输出name,你会发现,它是RefImpl对象(引用实现的实例对象,简称引用对象),在这个引用对象当中有一个value属性,value属性的实现原理是:Object.defineProperty,通过它实现了响应式处理。
  4. 修改数据的话必须这样做:name.value = ‘王五’


7.5.2 对象数据的响应式


重点:如果ref函数中是一个对象,例如:ref({}),底层会为这个对象{}生成一个Proxy代理对象。通过这个代理对象完成了响应式。
如果代码是这样写,如下,实际上没有用到Proxy,还是使用了Object.defineProperty完成的响应式:

如果代码是这样写,如下,就是使用了Proxy完成的响应式:

7.6 Vue3中专门为对象做响应式的核心函数:reactive

以上代码中的Proxy是怎么创建的?底层是通过调用reactive函数来完成的。
当然这个函数我们也可以自己使用。
注意:这个函数不能为简单类型服务,只能为对象类型服务。

注意:reactive为响应式做了递归处理。对象中的对象中的对象的属性,也是响应式的。
重点1:
并且数组如果使用reactive函数包裹的话,数组中的数据,在通过下标去修改的时候,也是支持响应式的。(这个在Vue2中是不支持的。)
重点2:
在开发中一般很少使用ref,一般会使用reactive。即使是简单类型的数据,也会将其存放到一个对象中,使用reactive函数进行包括。

7.7 Vue3中的props

给组件User传数据

User组件使用props接收数据

在setup函数中如何使用props?
setup的第一个参数就是props。可以直接拿来用。

7.8 Vue3的生命周期

vue2的生命周期图:

vue3的生命周期图:

  1. vue2中
    1. beforeDestroy
    2. destroyed
  2. vue3中
    1. beforeUnmount
    2. unmounted
  3. vue3中仍然可以使用配置项方式提供生命周期钩子函数。但也可以使用组合式API方式。如果采用组合式API方式,API名称规律如下:
    1. beforeCreate => setup
    2. created => setup
    3. beforeMount => onBeforeMount
    4. mounted => onMounted
    5. beforeUpdate => onBeforeUpdate
    6. updated => onUpdated
    7. beforeUnmount => onBeforeUnmount
    8. unmounted => onUnmounted
  4. 当然如果需要使用beforeCreate和created钩子,可以采用vue2的语法:配置项形式。vue2和vue3语法可以共存,但不建议。

7.9 Vue3中的自定义事件

绑定事件

触发事件

7.10 Vue3的全局事件总线

  1. 安装mitt
    1. npm i mitt
  2. 封装event-bus.js文件
  3. 绑定事件

  1. 触发事件

  1. 移除所有事件和指定事件

7.11 vue3的计算属性

import {computed} from ‘vue’ //computed是一个组合式的API。
setup(){
// 简写
let reversedName = computed(()=>{

})

// 完整写法
let reversedName = computed({
get(){},
set(value){}
})
}

计算属性最重要的特征是:只要计算属性关联的数据发生变化,计算属性的回调函数就会执行。所以计算属性关联的数据必须是具有响应式的。

7.12 自定义hook函数

将组合式API拿出来,封装成一个函数,在需要复用的位置,使用这个hook函数。
一般创建一个hooks目录,在hooks目录当中放hook函数。
代码复用。

在需要使用的位置导入:

7.13 vue3的监视属性

import {watch} from ‘vue’ //watch就是组合式API。

  1. 监视ref定义的一个响应式数据
    1. watch(数据, (newValue, oldValue)=>{})
  2. 监视ref定义的多个响应式数据
    1. watch(数据1, (newValue, oldValue)=>{})
    2. watch(数据2, (newValue, oldValue)=>{})

或者

  1. watch([数据1,数据2], (newValue, oldValue)=>{})
  2. immediate在哪里写?
  3. 在watch的第三个参数位置上使用一个对象:{immediate : true, deep:true}
  4. 监视reactive定义的响应式数据。注意:oldValue拿不到
    1. watch(数据, (newValue, oldValue)=>{})
  5. 如果监视的reactive定义的响应式数据。强制开启了深度监视,配置deep无效。默认就是监视对象的全部属性。
  6. 如果要监视对象中的某个属性怎么办?被监视的数据必须是一个函数,将要监视的数据返回
    1. watch(()=>user.age, (newValue,oldValue)=>{})
  7. 如果要监视对象中的某些属性怎么办?
    1. watch([()=>user.age, ()=>user.name], (newValue,oldValue)=>{})
  8. 如果要监视reactive定义的响应式数据中的某个属性,这个属性是一个对象形式,那么开启deep:true是可以的。
    1. watch(()=>user.address, (newVal, oldVal)=>{})
  9. 关于ref包裹对象时的value
    1. watch(name.value, (newVal, oldVal){}) //监视无效
    2. watch(user.value, (newVal, oldVal)=>{})//监视有效
    3. watch(user,(newVal, oldVal)=>{}, {deep:true}) // 深度监视生效

7.14 watchEffect函数

  1. watchEffect函数里面直接写一个回调
    1. 回调中用到哪个属性,当这个属性发生变化的时候,这个回调就会重新执行。
    2. watchEffect(()=>{const a = data.counter1; const b = data.counter2 逻辑代码…}) 当counter1和counter2被修改后,这个回调就会执行。
  2. computed和watchEffect的区别?
    1. computed注重返回结果。
    2. watchEffect注重逻辑处理。
  3. 示例代码

7.15 shallowReactive和shallowRef

浅层次的响应式。
shallowReactive:对象的第一层支持响应式,第二层就不再支持了。
shallowRef:只给基本数据类型添加响应式。如果是对象,则不会支持响应式。

以下是演示shallowRef


以下是演示shallowReactive

7.16 组合式API和选项式API对比

组合式API:Composition API
选项式API:Options API

选项式API:特点是 分散。

组合式API:特点是 集中 (一个hook是一个独立的功能,一个hook中有自己的data、methods、computed、watch)


7.17 深只读与浅只读

组合式API:readonly与shallowReadonly
应用场景:其它组件传递过来的数据,如果不希望你修改,你最好加上只读,以防以后不小心改了人家的数据。
深只读:


浅只读:

7.18 响应式数据的判断

isRef:检查某个值是否为 ref。
isReactive:检查一个对象是否是由 reactive() 或 shallowReactive() 创建的代理。
isProxy:检查一个对象是否是由 reactive()、readonly()、shallowReactive() 或 shallowReadonly() 创建的代理。
isReadonly:检查传入的值是否为只读对象。

7.19 toRef和toRefs


通过以上写法,可以看到模板语法中都有“data.”,这个是可以改善的。
大家可以看一下,下面的这个改善是否可以?

我们发现这样修改是不行的。丢失了响应式。什么原因?主要原因是因为以上的这种写法等同于:

显然这种写法和响应式对象data无关了。
再修改为以下这样行不行?


我们发现功能实现了。但是存在的问题是:data不会变。例如:

怎么解决这个问题:toRef,它可以让数据具有响应式,并且修改toRef生成的对象时,还能关联更新data:

测试结果:

还有一个更简单的:toRefs

运行结果:

7.20 转换为原始&标记为原始

toRaw与markRaw
toRaw:将响应式对象转换为普通对象。只适用于reactive生成的响应式对象。
markRaw:标记某个对象,让这个对象永远都不具备响应式。比如在集成一些第三方库的时候,比如有一个巨大的只读列表,不让其具备响应式是一种性能优化。

toRaw:

markRaw:

7.21 Fragment组件

fragment翻译为:碎片。片段。
在Vue2中每个组件必须有一个根标签。这样性能方面稍微有点问题,如果每一个组件必须有根标签,组件嵌套组件的时候,有很多无用的根标签。
在Vue3中每个组件不需要有根标签。实际上内部实现的时候,最终将所有组件嵌套好之后,最外层会添加一个Fragment,用这个fragment当做根标签。这是一种性能优化策略。

7.22 Teleport组件

teleport翻译为:远距离传送。用于设置组件的显示位置。




动力节点Vue笔记第七章vue3 绑定事件触发事件将组合式API拿出来,封装成一个函数,在需要复用的位置,使用这个hook函数。一般创建一个hooks目录,在hooks目录当中放hook函数。代码复用。 阅读详情

相关推荐

动力节点老杜Vue框架教程【一】Vue程序初体验

Vue.js是一个渐进式 MVVM 框架,目前被广泛使用,也成为前端中最火爆的框架Vue可以按照实际需要逐步进阶使用更多特性,也是前端的必备技能动力节点老杜的Vue2+3全家桶教程已经上线咯!学习地址:https://www.bilibili.com/video/BV17h41137i4/视频将从Vue2开始讲解,一步一个案例,知识点由浅入深,然后很自然的过度到Vue3版本。每一个Vue的知识点讲解的非常通透,不但举例告诉你怎么用,还会告诉你底层实现原理。

2301_76637473的博客 301

Vue学习记录

Vue学习笔记,方便后续查阅。

青春_奋斗不息 9628

动力节点老杜Vue笔记——Vue程序初体验

可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,这些对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使用一段时间之后,我们再回头来熟悉一下Vue框架以及它的特点。只需要知道Vue是一个基于JavaScript(JS)实现的框架。要使用它就需要先拿到Vue的js文件。

Java___interview的博客 886

Vue3中文官方文档

https://v3.cn.vuejs.org/

liuhao9999的博客 2万+

动力节点老杜Vue3视频笔记——Vue程序初体验

可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使用一段时间之后,回头来熟悉一下Vue框架以及它的特点。以上程序执行原理:Vue编译器对template进行编译,遇到胡子{{}}时从data中取数据,然后将取到的数据插到对应的位置。第二:虽然是直接写到HTML代码当中的,但以上程序中第3~6行已经不是HTML代码了,它是具有Vue语法特色的模板语句。

A_coding的博客 458

动力节点B站的Java视频路线资源,非常全面

作为动力节点的铁杆粉丝,从刚开始接触Java就跟着动力节点的路线去学,一直到去年找到了还不错的工作,我今天整理了他们的学习资源,java学习路线和相关的学习视频,如果是零基础入门java的小伙伴,跟着这个路线可以节省很多时间。 这里有所有前沿技术,从基础到项目实战,而且是最新的教程,按照这个顺序学就完了! 一、Java基础阶段 【B站排名第一的】Java零基础视频844集(适合Java 0基础,Java初学入门) https://www.bilibili.com/video/BV1Rx411.

Java_Coding1的博客 1086

vue3.0快速入门

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。2020年9月18日,vue3发布3.0版本,代号大海贼时代来临,One PieceVue3.0使用了 Typescript 进行了大规模的重构,带来了 Composition API RFC 版本,类似 React Hook 一样的写 Vue,可以自定义自己的 hooks。

promise466的博客 1万+

动力节点|Vue3实用教程,一套搞定前端框架Vue2+3

•024.Vue数据代理时对属性名的要求.avi.baiduyun.uploading。•026.手写Vue框架数据代理的实现.avi.baiduyun.uploading。•034.关于事件回调函数中的this.avi.baiduyun.uploading。•028.Vue框架源代码解读.avi.baiduyun.uploading。•022.数据代理机制的实现.avi.baiduyun.uploading。•032.Vue的事件绑定.avi.baiduyun.uploading。

java_yydsyyds的博客 459

vue Cli3官网地址

vue3.0官方文档地址 https://cli.vuejs.org/zh/

Dream_xun的专栏 4679

动力节点老杜Vue课程笔记——三、Vue组件化

click、keydown、keyup,这些事件都是内置事件。Vue也支持给组件添加自定义事件。包括两种方式:第一种方式:直接在组件标签上绑定事件第二种方式:通过代码来给组件绑定事件所有从父向子传递函数的位置,都可以修改为自定义事件方式。主要改造子向父传数据的功能。

Java_Leo12的博客 562

【动力节点】杜老师Vue笔记——Vue程序初体验

我们可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,这些对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使用一段时间之后,我们再回头来熟悉一下Vue框架以及它的特点。以上程序执行原理:Vue编译器对template进行编译,遇到胡子{{}}时从data中取数据,然后将取到的数据插到对应的位置。第二:虽然是直接写到HTML代码当中的,但以上程序中第3~6行已经不是HTML代码了,它是具有Vue语法特色的模板语句。

assdfgdfgjhtdo的博客 817

Vue笔记第七章vue3【动力节点】

绑定事件触发事件将组合式API拿出来,封装成一个函数,在需要复用的位置,使用这个hook函数。一般创建一个hooks目录,在hooks目录当中放hook函数。代码复用。

assdfgdfgjhtdo的博客 1475

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

BOLD和CSF信号有多相似CSF信号要延迟多少时间才能最匹配BOLD信号BOLD-CSF的互相关公式lag:时间延迟采样点数BOLD信号CSF信号延迟时间点对应的相关系数。

Rose9614的博客 2982

【动力节点】杜老师Vue笔记第七章vue3

绑定事件触发事件将组合式API拿出来,封装成一个函数,在需要复用的位置,使用这个hook函数。一般创建一个hooks目录,在hooks目录当中放hook函数。代码复用。

weixin_54585403的博客 1631

【LDLTS解析】从重叠峰到精准参数:拉普拉斯深能级瞬态光谱如何重塑半导体缺陷分析

本文深入解析了拉普拉斯深能级瞬态光谱(LDLTS)技术如何革新半导体缺陷分析。针对传统DLTS难以分辨重叠峰的痛点,LDLTS通过拉普拉斯逆变换对高精度电容瞬态曲线进行数学解卷积,成功分离发射率相近的缺陷信号,实现从模糊宽峰到精准独立峰的转变。该技术不仅大幅提升了缺陷激活能和捕获截面等关键参数的提取精度,更推动分析范式从经验拟合转向第一性原理,为先进半导体工艺开发与良率提升提供了强大的精准诊断工具。

weixin_29224309的博客 273

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 338

动力节点杜老师Vue笔记——2、Vue核心技术

函数式:// element 是真实dom对象(可以通过 element instanceof HTMLElement 判断)// binding 是绑定的对象函数调用时机:第一时机:模板初次解析时(元素与指令初次绑定)。第二时机:模板重新解析时。对象式:可以使用对象式完成更加细致的功能。// 元素与指令初次绑定时自动调用。// 元素已经被插入页面后自动调用。// 模板重新解析时被自动调用。自定义指令的函数中的this是window。

Java_Coding1的博客 750

3.3 数据导入与导出方法

Simulink 提供了多种数据导入与导出方法,能够满足不同场景下的需求。无论是从 MATLAB 工作区或外部文件导入数据,还是将仿真结果导出到工作区或文件,这些功能都极大地增强了模型的灵活性和实用性。掌握这些方法后,用户可以更高效地完成复杂系统的建模与分析任务。

xiaoheshang_123的博客 318

动力节点|Vue2+3全家桶教程,一套通关前端最火框架

•024.Vue数据代理时对属性名的要求.avi.baiduyun.uploading。•026.手写Vue框架数据代理的实现.avi.baiduyun.uploading。•034.关于事件回调函数中的this.avi.baiduyun.uploading。•028.Vue框架源代码解读.avi.baiduyun.uploading。•022.数据代理机制的实现.avi.baiduyun.uploading。•032.Vue的事件绑定.avi.baiduyun.uploading。

hujidedf的博客 291

RHCA ---RH442-4

这题考试中是没有的,但我做ex的判分脚本里做了,主要是lab环境swap只有512M的,这样后续改了某几个参数后会造成内存不够用导致异常.这里记得是双>,如果没自信的小伙伴可以在考试开始后第一时间把/etc/fstab先备份一个或者vi进入后手动敲一下。根据题意我们需要分2个768M的分区给swap。用free看swap大小是2.0Gi即可。留意红框中的内容即可,最后w保存退出。这个时候可以重启下机器。

Q先生 641

深入探究ASP.NET Core读取Request.Body的正确方式

前言# 相信大家在使用ASP.NET Core进行开发的时候,肯定会涉及到读取Request.Body的场景,毕竟我们大部分的POST请求都是将数据存放到Http的Body当中。因为笔者日常开发所使用的主要也是ASP.NET Core所以笔者也遇到这这种场景,关于本篇文章所套路的内容,来自于在开发过程中我遇到的关于Request.Body的读取问题。在之前的使用的时候,基本上都是借助搜索引擎搜索的答案,并没有太关注这个,发现自己理解的和正确的使用之间存在很大的误区。故有感而发,便写下此文,以作记录。学无止境

萌兔兔MMQ!! 777

动力节点Vue3笔记——Vue核心技术

函数式:// element 是真实dom对象(可以通过 element instanceof HTMLElement 判断)// binding 是绑定的对象函数调用时机:第一时机:模板初次解析时(元素与指令初次绑定)。第二时机:模板重新解析时。对象式:可以使用对象式完成更加细致的功能。// 元素与指令初次绑定时自动调用。// 元素已经被插入页面后自动调用。// 模板重新解析时被自动调用。自定义指令的函数中的this是window。

Java_Leo12的博客 487

车载以太网测试-3【Wireshark介绍】

数据包捕获支持从多种网络接口(如以太网、Wi-Fi、蓝牙等)捕获数据包。可以实时捕获或从文件中读取已捕获的数据包。协议解析支持解析数百种网络协议(如 TCP/IP、HTTP、DNS、FTP 等)。能够深入解析协议头部和负载,帮助用户理解网络通信的细节。过滤功能提供强大的显示过滤器和捕获过滤器,帮助用户快速定位和分析感兴趣的数据包。支持基于协议、IP地址、端口号等多种条件的过滤。统计和分析提供多种统计工具,如流量图、会话统计、协议分层统计等。

车载网络测试工程师的博客 1989
上一篇: 老杜Vue笔记⑥ 路由route
下一篇: 动力节点老杜java基础视频笔记第一章 学前准备 (1)
Java_Coding1
博客等级 码龄5年 9粉丝 46原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值