自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你真的了解Canvas吗--解密五【ZRender篇】

canvas之折线图 && animation

2024-10-03 15:46:32 47

原创 你真的了解Canvas吗--解密四【ZRender篇】

主流程base_2

2024-09-18 18:01:04 163

原创 你真的了解Canvas吗--解密三【ZRender篇】

主流程base_1

2024-09-18 15:56:28 258

原创 你真的了解Canvas吗--番外篇之util【ZRender篇】

讲讲我们用到的工具类util,掌握实现原理

2024-09-13 11:53:29 97

原创 你真的了解Canvas吗--解密二【ZRender篇】

本文讲讲zrender的绘制初始化过程

2024-09-12 16:09:57 201

原创 你真的了解Canvas吗--解密一【ZRender篇】

本文讲讲zrender的初始化init过程

2024-09-09 16:36:10 96

原创 谈谈“冷门”的Blob

大家在用到文件导入导出功能基本会碰到这个,今天咱就来聊聊Blob。首先也是最主要的,就是它只能在web worker的情况下使用如何判断web worker。

2024-09-05 18:13:20 310

原创 绝对能看懂的Vue-Router之memory模式

Vue-Router之memory模式

2024-08-29 14:08:59 258

原创 绝对能看懂的Vue-Router之history模式

Vue-Router之history模式

2024-08-27 15:40:35 440

原创 绝对能看懂的Vue-Router之hash模式

Vue-Router 之 hash模式

2024-08-27 10:15:44 551

原创 前端解决问题的思路

本文旨在记录一次问题的解决过程以及最后的思考

2024-08-23 17:29:00 298

原创 JS中的时间总线EventBus

if (!return!isOnce})isOnce代表的是是否只订阅一次,filter函数return假值会返回一个空数组,那么对应的eventName中的订阅者就会清空,实现once的功能if (!if (fn) {// 只取消订阅某个订阅者= fn})} else {// 根据消息名全部取消好了,最重要的几个方法全部实现好了。主要思路就是根据一个个消息名来创建的一个无序对象,对象的value就是数组,保存订阅者的方法和isOnce。现在回过头来看就比较清晰了。

2024-08-09 11:13:56 310

原创 对replace更深层次的使用和思考

第二个参数captureGroup:这里有个捕获组的概念,我总结了一下,无论是普通还是命名捕获组,都是以一个括号对的呈现,一个括号对()代表一个捕获组即p1,p2,...,pN,这里打印的是captureGroup1 = b。看起来是不是很简单,这里正则代表的是匹配下划线加字母,如_a(这里我就不多提了,日后有正则相关的博客我会发表出来),下面我们来看我们的重点函数replace。第三个参数offset代表的是偏移量,其实就是匹配到的子字符串首的index值,如offset = 1。

2024-08-07 15:23:24 298

原创 关于npm install问题的梳理

然后前面说到的命令问题,大家看出问题了吗?但是是有坑点的,而且我看很多文章没有明确指出来,这边我就强调一下:正确的方式如果想放在dev中,那就是。问题很长很多,刚开始我也是一头雾水,后面一步步往下看找到了问题的关键。那么从今天开始,我就要整理关于一个项目,我们该如何少走坑、快速的配置好我们“前面的路”我写的文章都会不定期更新,大家有问题也可以私我也可以留言,互相学习。--save-dev之间是没有空格的,大家也可以自行尝试一下。中找到了我要的答案,这边我拷贝一下对应的图。版本问题,然后我的node版本是。

2024-05-13 10:39:05 288

原创 关于webpack和vite的环境变量配置

相同点:两者都有环境变量的概念以及相同的文件类型我们都可以创建.env.development以及.env.production的两个文件分别对应测试和生产。

2024-04-17 10:22:47 221

原创 关于VSCode的一些问题整理

后来查找了错误的方向,网上说在vscode的设置里面重新设置go to defined相关设置。背景:出现问题的时候没关注到这个报错,只是发现Go to Defined功能失效了!的版本(点击安装另一个版本后跳出来比较慢,需要耐心)使用v1.8.27就可以了。解决:最后发现是插件的bug,应该是插件间的冲突问题导致的,我这边降低了。又找了无关的vscode工具版本问题。Vue-official插件。

2024-03-28 16:10:14 318

原创 关于Float32Array的一些整理

更加节省内存:Float32Array 存储的是单精度浮点数,每个元素占据 4 个字节,而普通的 Array 存储的可以是各种类型,对于数字类型会占据更多的内存空间。总的来说,Float32Array 更适合处理大量的数值计算和与底层二进制数据打交道的场景,而普通的 Array 则更适合一般的 JavaScript 数组操作。计算性能更高:由于 Float32Array 存储的是连续的内存空间,因此在进行数学运算时,可以更高效计算,提高性能。(存储于栈的连续地址中)我这边在补充一点我思考的为什么要选择用。

2024-03-27 21:44:19 422

原创 Vue2响应式深入一

1.关于Dep.target:这个是全局的,表示同一时间只有一个watcher在执行。渲染/更新完毕后我们会立即清空 Dep.target,保证了只有在模版渲染/更新阶段的取值操作才会进行依赖收集。当响应式数据发生变化时,更新收集的所有 watcher。关于响应式里面有几个重要的构造函数,他们各司其职,我会把他们主要的方法罗列出来,咱们慢慢考虑作者设计出他们的目的。,通知 watcher 订阅 dep,然后在 watcher内部执行。,通知所有的观察者 watcher 进行 update 更新操作。

2024-03-18 22:16:38 354

原创 Vue2源码探索之响应式前篇

这样,Observe构造函数走完了。细心的你一定发现了,这套流程同样适用于定义了data的情况,只不过defineReactive$$1函数需要往下走了,而且接下来也是Vue2响应式和数据驱动视图的核心了。下次咱自己严格检查类型可用这种方法Object.prototype.toString.call(obj) === '[object object]'执行ob = new Observer(value);表示强制转化为boolean值。构造函数Observer。1.observe函数。

2024-03-17 19:06:36 347

原创 Vue2源码解读之this能直接拿到data和method

bind方法我们可以参考作者这样写(兼容性强),意思也比较明确了,就是把fn的上下文改变成了Vue实例ctx(简单来说就是ctx.fn),这样我们就可以直接使用vm.sayHello()...The End。ps:这里我们只关注主流程,如果想要知道一些细节方面的其他流程(如上面看到的hasOwn、isReserved),请关注我的别的文章,里面有详细分析!写一下对应的入参target = Vue实例,sourceKey=_data,key=咱定义的属性(这里是testMsg)。进入Vue的梦幻世界!

2024-03-17 09:48:00 429

原创 React 挖坑之旅

使用npx create-react-app xxx时报错,这是很简单的问题,创建的React项目名称不要包含大写字母,这是因为npm的命名限制。使用npx create-react-app xxx时报错,这是由于我们的镜像问题。2.npm config get registry (查看是否成功)

2024-01-28 15:20:05 651

原创 vue2 vue3挖坑之旅

Vue项目的报错集合地,让我们把vue跑起来!

2024-01-14 21:59:53 427

原创 vue2基础之事件

顺便补充两点:1.1.修饰符可以串联修饰符的前后顺序也很重要,我这边是先阻止默认事件,再阻止冒泡事件1.2.可以只有修饰符第2和3点主要针对键盘上的esc/tab/shift/ctrl/alt等等之类的键盘交互事件,用的方面还不是那么广泛。

2024-01-11 13:49:18 358

原创 https加载过程图解

1.2.申请下来的数字证书包含的内容较丰富,有兴趣的可以去查询一下。1.4.图中模拟的是浏览器验证证书通过的情况。1.1.为了防止中间人攻击,一定要到正规的CA数字证书颁发机构去购买证书,尽可能保证数据的安全。痛点:文字总是不容易让人记忆,今天来画个图,总结一下https的加载过程。2.1.非对称加密的目的是为了安全的得到浏览器生成的随机数密钥key。3.1.使用对称加密的目的是为了后续传输更高效(相比于非对称加密)ps:没有绝对安全的传输,只有不断的探索精神。步骤解析:见图中1,2,3。

2024-01-10 16:11:06 482

原创 JS中的this

this取什么值,不是在函数定义的时候确定,而是在函数执行的时候确定。this是setTimeout函数的this,作为普通函数一样执行。二、使用call、apply、bind。this的取值是取上级作用域的this。四、在class方法中调用。三、作为对象方法被调用。

2023-12-27 21:29:56 338

原创 JS中少见情况积累

关于NaN和Infinity一些不常用的积累

2023-12-24 09:31:28 350

原创 CSS相关之响应式

1.绝对长度单位2.相对长度单位

2023-12-23 15:47:28 38

原创 CSS相关之图文样式之line-height

那么子元素line-height就是font-size * line-height,如果子元素font-size: 16px;最终line-height就是48px;这里有一个坑,它会计算好父元素的font-size * line-height然后子元素继承。那么子元素line-height就是34px;那么最终子元素的line-height就是40px;line-height可以继承。

2023-12-23 15:03:08 28

原创 CSS相关之定位之居中整理

CSS相关之定位之水平居中

2023-12-21 21:31:48 43

原创 CSS相关之布局

一、margin重叠问题二、margin负值问题三、BFC

2023-12-19 21:19:50 27

原创 CSS之难缠的各种width

css布局之clientWidth、offsetWidth、scrollWidth

2023-12-17 22:04:51 318

空空如也

空空如也

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

TA关注的人

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