自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue2和Vue3响应式原理

通过Object.defineProperty()对每个属性进行监听,当对属性进行读取时会触发getter,对属性进行修改时会触发setter。Vue实例中data属性是一个定义的响应式数据对象,data中的每个属性都会带有__ob__属性,它是一个Observer对象(响应式的关键)。源码中是在初始注册响应式函数innitState中调用了initData函数来给data中的属性创建Observer实例;data属性分为两种处理情况:对象属性处理和数组属性处理。

2024-05-10 15:41:11 552 2

原创 vue3 + vue-pdf-embed实现放大、缩小、滚动翻页功能

起初以切都还顺利,到了将滚动条设置到顶部 / 底部时,是通过子组件的pdf内容页来获取滚动距离,但是一直没有获取到,卡了半天突然想起项目中有个地方也修改过滚动距离,查看了下代码,才发现是获取的父容器的滚动距离。后来想了想,scrollTop为什么是父容器在改变,子组件一直都是零,个人思考结论是:滚动条是父容器的滚动条,不是子组件的。滚动翻页功能是最近的优化需求,在官网没有找到直接实现的方法,翻了翻网络,都是其他依赖的帖子,而且也没有滚动翻页的功能,思来想去,决定通过监听滚动距离来实现。

2024-01-22 17:16:17 1041

原创 JS模块化

module是一个 object ,保存着当前模块的信息,exports 是一个用于导出模块变量的对象,而 require 函数用于导入模块。而使用 require([依赖模块1,依赖模块2], function(){ }) 语法定义的模块,它的依赖模块会被打包成单独的一个 chunk 并且被异步加载。缺点:同步阻塞的模块加载方式,使得在浏览器加载大模块(或依赖大量模块)脚本文件时,加载过程就可能出现白屏,无响应等问题,用户体验很不好。和 AMD 一样,它的定义接口使用一个名为 define 的函数。

2024-01-17 17:10:29 313

原创 随机生成包含大小写字母、数字的8位字符串

需求:初始化密码包含大小写字母和数字。

2024-01-10 16:00:32 608 1

原创 Promise简单记录

pending(等待状态),fulfilled(成功状态),rejected(失败状态)。状态流转只会是pending => fulfilled,或者pending => rejected;简单理解是一种为了解决回调地狱和异步问题的解决方案。从语法本质上看是一个对象,可以获取异步操作的消息。宏任务:script、setTimeout、setInterval I/O (一个独立的主流程)任务分为宏任务(macro task)、微任务(micro task),同优先步。脱离主流程的顺序单独执行的队列。

2024-01-09 16:14:01 352 1

原创 JavaScript中的对象

原型链:每个对象初始化时都会在内部生成一个属性prototype(原型),当访问对象属性时,如果对象内部不存在该属性,就去prototype里查找,而每个prototype也会有自己的prototype,按此规律一直找下去形成的连接就可以称为原型链。constructor:对象中的属性—构造函数,在被创建时自动生成,源自原型对象(构造函数),指向构造函数的引用。js实现继承:本质上是重写原型对象,将父对象属性方法作为自对象的属性方法,同时重写构造函数。原型对象:用来初始化对象的函数。**三、new **

2023-12-14 14:28:13 627

原创 原生input + vue 输入限制遇到的问题

结合其他群友的说法,event.target.value和v-model绑定变量,二者的值其实还是独立的,但vmodel绑定了,又修改了event.target.value,修改event.target.value可以成功,但却不是修改的绑定变量,导致冲突。回顾编写逻辑代码的时候,试了很多种实现途径,写代码的逻辑没有提前规划,在试错中修正,导致思路没有很清晰,忽略v-model和event.target.value的细节差异。身高体重分别最多输入3、4位数,且只能输入数字。,所以真实的值刷新出来了。

2023-08-14 10:29:36 125

原创 作用域、this指针、上下文

作用域,this指针,上下文,bind,call,apply

2023-07-26 17:32:18 42 1

空空如也

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

TA关注的人

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