自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 关于requestAnimationFrame动画使用

​​简单动画​​ → ​​用 CSS​​(性能最好)。​​复杂动画​​ → ​​用​​(可控性强)。​​别用setTimeout做动画​​(容易卡顿)。

2025-09-23 14:31:01 129

原创 在vue项目中封装一个mytabel组件

当我们在多个模块使用同样的代码实现相同的功能时,我们可以把逻辑抽离出来进行封装,调用封装好的组件可以减少重复的代码,并且这样也更好维护。一句话总结就是:结构相似,内容不同。把可复用的结构只写一次,把可能发生变化的部分抽象成组件参数。2.封装时的注意,由于结构基本相似,我们就要考虑数据的状态变化。二,封装mytabel组件。(1)传数据props。(2)发通知emit。

2025-09-16 20:28:16 137

原创 关于vue3插槽slot的使用

通过插槽可以允许父组件向子组件传递内容,内容可以是单纯的文本,也可以是html元素或者其他vue组件等。子组件通过<slot></slot>接受内容。

2025-09-14 15:13:22 288

原创 v-model的双向数据绑定实现原理

在 Vue 3 中,v-model的双向数据绑定是通过 ​​ 实现的,它结合了 ​props​ 和 ​emit​,使得父子组件之间的数据同步更加简洁。valueinput。

2025-09-14 14:57:54 244

原创 关于vue3中的computed,watch和watchEffect

​。

2025-09-11 13:53:16 713

原创 样式穿透的使用

当我们在scoped限制的style里面修改样式的时候,会自动给我们的选择器添加属性选择器,scoped这样可以限制样式只在自己组件内生效,不影响子组件或者第三方组件。但是当我们想要修改子组件或者第三方组件时,scoped却成为了限制。以下有几种方法可以修改。一,去除scoped,但是子组件可能会产生无法控制的变化。二,通过全局组件控制。三,最主要的就是通过样式穿透去改变子组件样。

2025-08-12 20:36:27 277

原创 js判断数据类型

typeof对对象类型区分不够细(如数组和对象都返回 "object")instanceof不能用于原始值,且受原型链影响提供了最精确的类型检测。

2025-05-14 23:24:40 397

原创 vue2和vue3的区别

在通过阅读vue3官网,最直观的感受就是组合式API的写法,即使vue3还是支持选项式API,但是能够感受到组合式API对我们使用者更加友好,他不用像选项式那样数据放在data,方法放在method。当我们想要使用数据时就通过ref或者reactive去定义,使用方法直接function就是,对于我们开发者而言更加的灵活。通过这种组合式,开发者可以轻松地将组件的逻辑拆分为可复用的函数,可以不用使用mixins混入去抽离逻辑,使得代码结构更加清晰,对我们处理复杂组件时帮助很大。

2025-01-13 15:35:56 516

原创 vue2和vue3响应式原理解析

相比与vue2响应式,vue3响应式的实现有了许多优化。第一,vue3通过Proxy实现响应式,通过拦截对象的默认行为进行响应式处理,不用像vue2那样子遍历对象的每个元素进行响应式处理。第二,通过Proxy实现的响应式可以监听对象新增属性的变化。

2025-01-12 23:17:01 755

原创 闭包与内存泄露

1.变量所占的内存不再使用,不被需要2.垃圾回收机制回收不了上述内存。

2024-12-27 16:41:30 1508

原创 关于JavaScript中原型和原型链

1.对象只有__proto__属性,而函数有__proto__和prototype属性2.原型链查找靠的是__proto__属性3.不管是构造函数,普通函数,箭头函数还是Function他们的__proto__都指向Function.prototype4.原型链的顶端是Object.prototype。

2024-12-21 15:15:50 1991 1

原创 认识JavaScript中new操作符并手写一个自己的new

new。

2024-12-19 16:48:05 734

原创 浏览器URL解析过程

综上所述,URL的解析过程涉及到协议解析、主机名解析、端口解析、路径解析、查询参数解析、生成HTTP请求、服务器处理请求、浏览器解析响应和渲染页面等多个步骤。这些步骤共同协作,使得浏览器能够正确地向服务器发送请求,并获取到所需的资源或页面。

2024-12-19 11:05:39 887

原创 JavaScript防抖与节流

【代码】JavaScript防抖与节流。

2024-12-13 17:19:28 1643

原创 手写Promise

【代码】手写Promise。

2024-12-11 17:01:46 263

原创 JavaScript中this指向问题

箭头函数中的this和在哪里定义有关,与函数的调用者无关。箭头函数和定义时的环境有关系,箭头函数中的this,继承自己作用域的上一层。简单的理解就是,箭头函数的this和他的父函数的this一样,而且父函数必须是普通函数,如果没有父函数,则this指向window。箭头函数没有this,箭头函数中的this都是通过继承外界环境中的this得到的。定义一个普通函数,此时this的指向无法确定,因为,函数并没有被谁调用。2.当箭头函数的父函数是普通函数。3.当箭头函数的父函数是箭头函数。

2024-12-10 17:53:54 426

原创 JavaScript异步处理的三种方式

通过三次打印已经可以看出端倪,当打印次数很多次时,通过回调函数实现的代码嵌套很多层,也就是俗称回调地狱。promise实现的看着不怎么复杂,但是当打印次数过多时,也会向右嵌套,一直.then(),所以async await实现最佳。要求第一秒打印111,第二秒打印222,第三秒打印333(可能这种功能的实现也有其他方法比如循环等,但是这里主要体现异步处理)特别说明一下async await的实现过程。

2024-12-06 17:47:33 384

原创 JavaScript执行机制

当主线程的同步任务执行完毕后,主线程调用任务队列里面的任务1.先清空微任务队列,2.在执行宏任务队列,3.每执行一次宏任务都要检查微任务队列是否为空,如果不为空就执行微任务队列。,宏任务里面还有一个Promise2,将Promise2加入微任务队列,每一次执行一次宏任务就检查微任务队列是否为空,此时微任务队列有刚刚加入的Promise2,不为空就执行微任务。任务队列里面的同步任务也分为两类,宏任务和微任务,通过事件循坏机制控制任务队列里面任务的执行。(宏任务中也可能含有同步任务,微任务,宏任务)

2024-12-05 19:11:46 396

原创 JavaScript中的执行上下文和作用域

按照我的描述,作用域链有点像单向链表,每一个节点都是一个变量对象,头结点就是当前上下文的变量对象,下一个节点就是包含当前上下文的上下文。有一点绕,就好比此时有一个函数,当前上下文就是函数上下文,包含当前上下文的上下文就是全局上下文。通过这条作用域链,从头结点(当前变量对象)开始搜索变量和函数,直到全局上下文。这就是访问变量和函数的顺序。所以当前上下文的变量对象时最优先访问,处于这条作用域链的顶端。上下文代码执行时,会创建当前上下文的作用域链,这个作用域链决定上下文访问变量和函数的顺序。

2024-11-29 21:00:24 214 1

原创 JavaScript函数传递参数

JavaScript中函数传递参数都是按值传递,不管传递的是引用值还是原始值。注:本篇内容是笔者阅读JavaScript高程第四版个人理解,详情去看书。按值传递意味着,传递得到参数就是变量复制一样,通过复制值得到数据。

2024-11-29 15:43:18 240

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除