自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue3自定义指令实现输入框值范围大小限制

组件,在其他ui库使用,需更改自定义指令里面的代码,找到input输入框就行了。组件上使用,这里用的是element-plus里面的。

2025-03-11 19:22:03 327

原创 AST抽象语法树

一个在线的,支持多种格式${${

2025-01-16 23:32:44 757

原创 vue-router查漏补缺

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。类似,因为它在每次导航时都会触发,不同的是,解析守卫刚好会在导航被确认之前、所有组件内守卫和异步路由组件被解析之后调用。,所以会重复使用,并不会销毁,这就会导致页面不会重新创建,不会触发生命周期钩子,也获取不到最新的。默认情况下,所有路由是不区分大小写的,并且能匹配带有或不带有尾部斜线的路由。如果放在父级路由上,路由在具有相同父级的子路由之间移动时,它不会被触发。如果我们想匹配任意路径,我们可以使用自定义的。

2024-12-09 15:34:25 1000

原创 常用web API

一、MutationObserverMutationObserver接口提供了监视对DOM树所做更改的能力<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docume

2024-11-22 10:48:10 754

原创 vue3二次封装UI组件

直接上代码</</</</importfrom"vue";importfrom;</</通过useAttrs()获取组件上所有的属性,使用和vue3的透传将其绑定在组件上,通过useSlots()方法来获取所传入的所有插槽,通过动态生成的方式,来实现二次组件的插槽系统。

2024-10-31 14:22:55 484

原创 Blob详解

Blob对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成来用于数据操作。

2024-10-16 21:53:29 1594

原创 svg学习

SVG(Scalable Vector Graphics)是一种描述二维图形的语言。作为独立格式或与其他XML混合使用时,它使用XML语法,它和pngjpg等位图不同,它是一种矢量图,就算放大任意倍数,也不会出现失真的情况。

2024-09-30 09:17:51 1740

原创 vue scoped解析

从上面的图可以看出,给style加上scoped之后,会给这个模块的所有元素都加上一个自定义属性data-v-xxxx,这个xxxx就是这个文件的相对路径加上文件名生成的hash值,这样就能保证自定义属性独一无二。给所有元素加上自定义属于以后,会给每个类名后面都加上这个属性选择器,因为自定义属性是独一无二的,所以就实现了样式隔绝。从上面的图可以看出,因为开始了scoped,会给所有的类目加上自定义属性,但是呢,因为使用的是第三方库。之后,就不会给当前类目加自定义属性了,而是给上一级加,这样就能正常选中了。

2024-09-18 17:15:50 682

原创 页面切换时销毁three占用的内存

清除监听、定时器啥的,自己往里面加。

2024-09-12 17:07:17 356

原创 vue3项目,本地页面正常显示,打包后页面空白

通过浏览器的页面元素选择定位到问题是因为路由没有正确加载,但是排查了路由文件,入口文件,vite.config.js文件,都没有发现任何问题,直到将路由文件里面的按需加载页面文件改成直接加载,才正确渲染出了页面,才发现按需加载写错了。

2024-09-11 16:05:00 1133

原创 react学习

这意味着,如果 React 正在重新渲染一个大型列表,但用户进行了另一次键盘输入,React 会放弃该重新渲染,先处理键盘输入,然后再次开始在后台渲染。相比之下,防抖和节流仍会产生不顺畅的体验,因为它们是阻塞的:它们仅仅是将渲染阻塞键盘输入的时刻推迟了。例如用户点击一个选项卡并且这个选项卡的内容需要大量时间渲染,但改变了主意并点击另一个选项卡,他们可以在不等待第一个重新渲染完成的情况下完成操作。如果用户的设备较慢,那么列表会相应地“滞后”于输入,滞后的程度与设备的速度有关。你也可以同时使用这些技术。

2024-08-31 13:07:26 968

原创 webpack学习

chunk 的格式(formats 默认包含 ‘array-push’ (web/WebWorker)、‘commonjs’ (node.js)、‘module’ (ESM),还有其他情况可由插件添加)文件,这个是webpack的默认配置文件,会自动读取这个文件,当然也可以指定某个文件来读取,只需要在命令行中指定文件。前缀,将禁用所有已配置的 loader(preLoader, loader, postLoader)前缀,将禁用所有已配置的 normal loader(普通 loader)

2024-08-15 10:01:17 664

原创 nuxt3学习

nuxt3基础学习

2024-08-08 22:41:48 523

原创 h5界面切换皮肤

实现原理是应用css3新特性。

2024-08-06 16:05:45 185

原创 vite查漏补缺

【代码】vite查漏补缺。

2024-07-29 23:39:45 426

原创 axios传递application/x-www-form-urlencoded格式的参数

【代码】axios传递application/x-www-form-urlencoded格式的参数。

2024-07-24 17:13:42 615

原创 获取后端返回的图形验证码

如果后端返回的直接就是一个图形,有以下几种方式展示。

2024-07-24 17:07:27 562

原创 electron踩坑

这个报错是创建符号链接也叫软链接的时候没有权限,需要你首先用管理员身法打开cmd,一步一步的找到你的项目目录进行打包,之后就可以直接在vscode打包了。,很多配置都已经给你弄好了,而且还可以选择框架,并且直接使用electron,下载预编译二进制的时候,会超时。一定要开启这个下载代理,不然你不搭梯子,根本下不了一些文件。如果再执行打包命令的时候,出现以下报错。用啥electron,直接。

2024-07-12 16:49:41 367

原创 前端杂七杂八

只能退出内层循环,一般的做法都是如下,添加一个flag标记。这种方式确实也能实现功能,但是不优雅,推荐使用下面这种写法。的时候,需要直接退出循环,但是这样添加。如上面的代码,双层循环,满足。

2024-07-01 20:37:44 245

原创 css持续学习

当一个css样式发生冲突时,比如多处给一个字体设置了不同的颜色,这个时候就需要样式层叠了,它会进行三种比较。

2024-06-27 11:19:51 271

原创 关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法

渲染器时,发现localhost以及127.0.0.1才能访问到navigator.gpu,直接使用ip会变成undefined,原因是为了用户的隐私安全,只能在。的情况,所以说ip地址就别想了,http的域名需要去配置为安全来源,方法是浏览器输入。中使用,非安全的上下文就会是undefined,安全上下文就是使用。这个配置默认是禁用的,配置好了还需要手动设置为启用。方案加载的页面,或者是开发者本地测试使用。,然后把http域名配置进去。在使用threejs的。

2024-06-25 16:20:05 915

原创 webcomponents学习

【代码】webcomponents学习。

2024-06-22 14:57:34 398

原创 vite中使用scss技巧

上面的混入不可能每个文件都写一份吧,而且你直接在main.ts文件引入一个scss文件,是没法使用里面的混合器以及变量的,必须在vite里面配置。2.传递参数,参数后面的值为默认值。3.类似于vue插槽用法。

2024-06-21 22:51:51 1290

原创 闭包、内存泄漏、垃圾回收详解

那什么是内存泄漏呢,就是我们不再需要使用的内存空间依旧能够触达,导致垃圾回收器并不能将其回收,也就是上面例子中的nums,当内存泄漏过多的时候,就会影响代码的运行,因此需要手动将其变成无法触达的内存空间,操作很简单,在代码最后将nums赋值为null,那么数组[1,2,3]的内存空间将变成无法触达,也就会被垃圾回收器回收了。上面的nums是不是垃圾呢,不是垃圾,虽然看起来这三行代码运行结束后,没有再需要nums的地方了,按道理是不再需要的东西了,但是可以在浏览器的控制台打印这个nums,所以它不是垃圾。

2024-06-14 00:43:18 867

原创 node学习之常用内置模块

这里只列举一些常用的,具体使用方法请查看。

2024-06-08 16:05:11 307

原创 typescript记录

【代码】typescript记录。

2024-05-20 23:35:33 138

原创 在nodejs中使用esmodule获取__dirname

【代码】在nodejs中使用esmodule获取__dirname。

2024-05-20 14:32:27 280

原创 自定义类似vite的命令行

命令,然后随便找个地方打开终端执行你自定义的命令,就能执行了。新建一个js文件,在其顶部加入这串代码。就是告诉系统这个是可执行脚本,随便新建一个文件夹,终端执行。就是用node来执行这个脚本。

2024-05-15 23:17:45 429

原创 vue3查漏补缺

在中,任何以 v 开头的驼峰式命名的变量都可以被用作一个自定义指令。在上面的例子中,vFocus即可以在模板中以v-focus的形式使用// 在模板中启用 v-focus</script><template>在没有使用的情况下,自定义指令需要通过directivessetup() {/*...*/},// 在模板中启用 v-focusfocus: {/* ... */

2024-05-11 15:48:24 845

原创 nodejs之log4js日志管理

很简陋,就一些简单配置,其余的看官网。

2024-05-08 22:32:22 494

原创 关于vue3在ts文件中使用vue-router的问题

在ts文件中,使用了useRouter来进行页面跳转,但是结果却是undifend根本原因是这种写法只能用于setup,不能用于hooks里面,所以报错。

2024-05-07 17:40:35 1493 2

原创 浏览器跨域详解

浏览器跨域是指当一个Web应用程序试图访问另一个协议、主机或端口不同的资源时,所发生的情况。这主要是由于浏览器的同源策略造成的,它是为了网站的安全而设置的安全限制,防止一个网站恶意访问另一个网站的资源。当然这是比较简单的回答,其实跨域请求也分为简单请求,预检请求。

2024-05-06 22:37:33 536

原创 js开启子线程及其使用

众所周知,js是单线程,但是可以开启子线程来帮忙处理一些数据,但是这个子线程是有限制的1.必须是同源2.完全受主线程控制3.不能在子线程中操作dom节点4.子线程没有window,可以使用self5.等等具体的查看进程切换是要耗时间的,所以进程不宜开太多,一般等于CPU内核数最好,可以通过来获取。

2024-05-05 23:18:41 551

原创 http和https的区别

但是这种方式也有一个弊端,那就是被篡改,就是在服务端第一次给客户端公钥key1的时候,第三方把公钥key1保存起来,然后第三方生成一个公钥key3和私钥key3,然后将公钥key3给客户端,客户端并不知道这个公钥key3是被篡改的,也用公钥key3来加密公钥key2,然后第三方窃取到这个加密后的公钥key2,通过私钥key3进行解密就可以拿到公钥key2,进行保存,然后再用之前保存的公钥key1来加密给服务端,这样第三方也能获取到公钥key2。不能理解的话就画图来表示,整个逻辑很简单的。

2024-04-27 23:04:19 7352 1

原创 node的事件循环

事件循环会先检查有无nextTick以及Promise,如果没有首先进入timers队列,然后再进入poll队列,在这个队列的时候,会有特殊操作,会去检查timers和check队列有没有需要执行的,如果没有,就会在poll队列等待,因为啥都没有,不可能事件循环一直空转吧,而且poll队列是I/O操作队列,node更想优先处理,当其他队列有任务的时候,事件循环会再次启动。将代码优化,加入一个300ms的阻塞不同版本的node会有不同的结果,然后当场破防,白写这么多。最新的事件循环等我找到了再写。

2024-04-21 22:48:26 253

原创 js for..of实现async await

【代码】js for..of实现async await。

2024-04-20 21:49:25 254

原创 vue3自定义多个v-model以及自定义修饰符

)</script><template>vue3官方文档。

2024-04-15 11:41:53 750

原创 手写vite插件之将vue文件里style里面的px转换为rem

【代码】手写vite插件之将vue文件里style里面的px转换为rem。

2024-04-09 17:42:00 526

原创 手写vite插件之在index.html中根据不同的环境来使用不同的值

在index.html文件中使用。

2024-04-09 14:56:51 967 2

原创 webpack-plugin详解

plugin其实就是一个类,类里面有一个apply方法,这个方法接收一个参数compiler,这个参数保存着webpack完整的配置,可以对其进行操作,来实现自定义的plugin了。webpack还提供了一系列的钩子函数,类似于vue的生命周期,可以在不同的钩子函数中进行操作。上面的entryOption就是一个钩子函数,可以通过同步tap来操作。操作分为三种,同步、异步、异步promis。

2024-04-09 14:40:24 237

空空如也

空空如也

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

TA关注的人

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