自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你真的了解闭包吗?,闭包是如何实现的?

为什么要把作用域与闭包联系起来,因为闭包是作用域息息相关的,作用域就是产生闭包的一部分。闭包简单来说就是:函数访问了外层作用域变量就会产生闭包。闭包在实现上是一个结构体,它存储了一个函数和一个关联的环境;一个函数和对其周围状态的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包。闭包跟函数最大的区别在于,当捕捉闭包的时候,它的自由变量会在捕捉时被确定,这样即使脱离了捕捉时的上下文,它也能照常运行。在JavaScript中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。

2023-03-03 00:09:07 595

原创 let、const 真的没有变量提升吗

ES6 新增了 let、const,就是为了弥补有时候 var 带来的缺陷,如变量提升、产生大量的全局变量占用内存、没有块级作用域。因为在有的场景下我们可能并不希望有这些特性。而 const 就是为了使得声明变量变得更加的规范、合理、优化。比如:对于有的场景我们并不希望该变量被更改,更改了可能会造成意外的错误,就如 TypeSirpt 做类型限制一样,当类型突然变了,可能代码就会出现错误。这与这三个命令的使用,需要我们自己合理运用,才能发挥它们各自的优势。

2023-02-28 00:30:11 301

原创 vue3原始值响应方案及响应丢失问题

我们了解到非原始值是使用 proxy 进行代理的,但是 proxy 无法对 原始值进行代理。vue2中 object.defineproperty 也无法直接截取原始值,但是我们是将数据放入 data 中,对 data 整个对象进行代理,自然就使得 data 中的原始值也能进行响应。但是 vue3 没有 data 选项,哪是怎么实现原始值响应的?这就要介绍我们要学的内容了。注意:下面的实现原理并非是真正的源码,可以看做是极简后的源码核心实现。

2023-02-24 16:30:04 751

原创 手动实现响应式原理

响应式大家都应该很收悉吧,国内很火的vue框架就是采用的响应式。要想熟练的掌握vue原理,响应式是必须首先掌握的。大家可能对响应式之前是有过了解,但是不太清楚具体内部是怎实现的,这篇文章将一步一步的将响应式实现出来。用到的主要知识点class类、Object.defineproperty、proxy、reflect、map、weakmap、set。如果有不清楚这些知识点的可以先了解一下,我的其它博客也有对其中的这些知识点介绍。简单来说,响应式就是当某一个变量发生改变的时候,会对应自动的执行一些代码。....

2022-07-26 14:42:37 221

原创 Proxy与Reflect详解

现在国内的两大框架vue、react。对于这两个框架,相信大家多多少少都接触过,对于vue而言,有一个很重要的特点,那就是响应式。vue2的响应式采用的是ES5的Object.defineproperty对数据进行劫持。而vue3则是采用ES6的Proxy对数据进行劫持。想要了解vue3的响应式就必须了解Proxy。Proxy除了set、get捕获器能监听对象属性,还有其它的操作符,一共有13种。......

2022-07-18 14:45:03 3471 2

原创 用户快速点击按钮发送重复请求解决方案

在平时的项目中会经常遇到用户一直不停的点击按钮发送请求,这样就可能会造成后面的请求会报错,或者在执行添加操作时,就会添加多条一模一样的数据。造成了很不好的用户体验。那怎样解决这个问题呐,首先肯定不能阻止用户不能一直快速重复点击按钮,就只能通过代码去限制一下。以下是我整理的几种方案。 总所周知,axios有取消请求的特点,我们可以利用这一点去实现。 大致思路是:在请求拦截的时候将每条请求的url、methods、参数作为唯一值进行记录保存,然后等到请求响应后再将保存的这条请求记录删除掉

2022-07-14 17:16:41 1771

原创 css常见定位、居中方案

进行定位后,top与left分别设置50%,这时元素的上边距到父元素的上边距与到子元素的下边距距离是一样的,元素的左边距到父元素的左边距与右边距距离也是一样的,这样再减去元素margin本身高度的一半与宽度的一半,这时元素就能达到垂直居中的效果。使用transformtranslate对元素进行移动,这个与第一种方式类似,第一种方法是设置margin值,而这种是定位后的位置进行移动。使用flex布局,分别设置垂直方向排列子元素的居中与水平方向子元素的居中就能达到垂直居中的效果。...

2022-06-10 00:18:15 7726

空空如也

空空如也

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

TA关注的人

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