自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stay hungry, stay foolish

记录前端学习

  • 博客(134)
  • 收藏
  • 关注

原创 前端实现base64编码图片的导出、图片添加描述文字导出

传入图片的base64编码,将图片进行导出保存。图片添加描述文字导出

2024-04-24 14:16:41 445

原创 vscode中设置自定义代码模板

vscode中设置自定义代码模板

2024-04-09 14:28:21 2622 4

原创 函数式编程之组合函数、pointfree风格

组合函数是一种函数式编程中的概念,用于将多个函数组合成一个单一的函数,其中每个函数的输出是下一个函数的输入。如果要组合多个函数来创建一个更强大的组合函数,可以使用函数的方法来组合。方法对累加器(accumulator)和数组的每个值(按从右到左的顺序)应用一个函数,并使其成为单个值。另外,组合函数运用到了,只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。每次调用函数时,它只接受一部分参数,并返回一个函数,直到传递所有参数为止。

2024-04-07 14:02:04 246

原创 编译器重排是什么?

编译器重排(Compiler Reordering)是编译器在编译程序代码时进行的一种**优化操作,目的是提高程序的执行效率。在不违反代码的原有语义(即不改变程序执行结果)的前提下,编译器会对源代码中的指令顺序进行调整。

2024-03-29 16:55:47 431

原创 vue3使用vuedraggable实现拖拽(有过渡)

vue3使用vuedraggable实现拖拽

2024-03-29 15:52:30 11350 4

原创 JavaScript中的行为委托和面向类的区别?

行为委托意味着:在访问某个对象上不存在的属性或方法时,让这个对象为属性或方法引用提供一个委托。可以多级委托,但是不能相互委托,不能在两个或多个对象间相互地委托(双向地)对方来创建一个 循环 。比如使 B 链接到 A,然后试着让 A 链接到 B。

2024-03-26 09:18:00 311

原创 表格列内容过长显示省略号,并悬浮展示信息

使用自定义指令,并判断超长的文字,悬浮提示展示信息。// 表格内容过长,显示悬浮信息。// 判断该行内容是否全部显示。

2024-03-22 09:19:05 700

原创 什么是多重继承中的钻石问题?如何解决?

如果“A”提供了方法 drive(),而“B”和“C”都覆盖(多态地)了这个方法,那么当“D”引用 drive() 时,它应当使用那个版本呢(B:drive() 还是 C:drive())?使用虚继承,开发者必须显式地解决多重继承带来的任何歧义。在Python中,如果类D没有定义drive()方法,那么调用d.drive()会根据MRO来决定使用哪个父类的drive()方法。的方法来解决这类问题。”(Diamond Problem),是多重继承中的一个典型问题,它出现在使用多重继承的编程语言中,如C++。

2024-03-19 09:21:49 646

原创 vue中json格式化显示(vue-json-viewer)

添加到JsonViewer的组件属性上复制粘贴下面的模板并且根据自定义的theme名称做对应调整。

2024-03-12 16:22:07 6075 2

原创 【webpack】和【vite】中获取本地文件夹目录下的所有图片

webpack 和 vite 中获取本地文件夹目录下的所有图片

2024-03-11 11:02:04 1630

原创 [vite] Internal Server Error: Cannot read properties of null (reading ‘split‘)

[vite] Internal Server Error: Cannot read properties of null (reading 'split')报错原因及解决方法

2024-02-29 15:13:10 2326

原创 什么是稀疏数组和密集数组?

稀疏数组(Sparse Array):稀疏数组是指数组中包含未定义的元素,或者说其中某些位置没有被分配值。

2024-02-22 13:44:18 1088

原创 【git】本地项目推送到github、合并分支的使用

将本地项目推送到github远程仓库、合并分支的使用

2024-02-04 17:22:56 1623

原创 pina持久化的安装与使用(pinia-plugin-persistedstate)

pinia可以实现跨组件之间的通信,但是有时会面临的情况。而使用或者需要对不同字段做处理,也很麻烦。所以选择pinia-plugin-persistedstate来对Store进行c持久化存储。

2024-02-04 14:11:31 2075

原创 Transition内置组件设置无效的原因

包裹的组件是否有显示隐藏状态的切换,或者是绑定的key值是否发生改变。要放在发生变化的组件外层,如果中间有其他元素或组件会不生效

2024-02-02 16:10:17 910

原创 拖拽按钮: 如何区分点击和拖拽事件 (vueuse实现)

问题:使用vueuse的去拽按钮时会触发点击事件,即使设置阻止默认事件还是没用。

2024-02-02 15:59:17 1517 1

原创 【css】设置渐变阴影

css设置渐变阴影,css的属性中没有直接设置渐变阴影的,但是可以通过伪元素去实现。

2024-01-30 17:25:46 881

原创 【css】自定义列表项标记(图片、符号、表情)

将图片、符号、表情自定义为列表项标记

2024-01-30 16:13:15 1171

原创 【vue】defineModel在vue3.4中的最新用法和详解

尤大发布了vue3.4版本,这个版本主要对一些实验性特性的改进(比如),大量重写了模板编译器并重构了响应式系统,可以说是大大提升了运行速度和效率。

2024-01-29 17:04:39 11843

原创 输入框内容和占位符过长悬浮提示

输入框内容过长,内容悬浮提示;输入框占位符过长,以省略号代替,并悬浮提示

2024-01-26 15:54:27 836

原创 【vite】找不到模块“vite”或其相应的类型声明

用vite搭建项目时,在vite.config.ts文件中 ts报错【找不到模块@vitejs/plugin-vue或其相应的类型声明】

2024-01-19 17:36:32 7132

原创 【dayjs】类型“Dayjs”上不存在属性“isSameOrAfter”

dayjs中有一些方法是需要使用插件后才能使用,默认情况下,Day.js只提供核心代码,没有安装插件。

2024-01-16 09:56:40 1359

原创 通过ip地址和掩码位数,计算ip起始地址

【代码】通过ip地址和掩码位数,计算ip起始地址

2024-01-09 16:08:41 495

原创 判断一个数是NaN和Infinity的方法

isNaN()只要不是数字都会返回true, Number.isNaN()只有NaN才 返回 true.所以,想严格检查一个值是否是 NaN,就选择 Number.isNaN()

2024-01-09 16:00:23 928

原创 【echarts】雷达图参数详细介绍

echarts雷达图参数详细介绍

2024-01-08 17:13:47 5399 2

原创 【IP地址】输入小数点,自动移到下一输入框

输入框最多只能输入三位数字(0-255),按下小数点(.) 光标会自动跳转到下一个输入框。

2024-01-02 11:16:54 1093

原创 工作中能帮你偷懒的lodash函数!提高开发效率!

Lodash`是一个一致性、模块化、高性能的 JavaScript 实用工具库。在实际的开发中会经常用到,可以很大程度上提高我们的开发效率,在lodash中有哪些高频使用的函数呢?

2023-12-18 21:32:36 469

原创 什么是幂等操作?

在数学和计算机科学中,是指。换句话说,重复多次相同的操作不会产生不同的效果。这个概念通常用于描述函数、操作或系统的性质。在具体应用中,

2023-12-17 17:35:34 586

原创 什么是Symbol?在实际开发中怎么用?

Symbol 是 ECMAScript 6(ES6)引入的一种新的基本数据类型。Symbol 类型的值是唯一且不可变的。目的是确保对象属性使用唯一标识符,不会发生属性冲突的危险。

2023-12-17 17:14:03 798

原创 ts中type和interface类型声明的区别

interface具有可合并性,允许在同一作用域内多次声明同名的接口,这些声明将会合并为一个接口。type不具有可合并性,如果多次声明同名的类型,会报错。

2023-12-10 19:06:43 699

原创 ts类型操作符& 和 | 的区别

&用于创建交叉类型,合并多个类型的属性。如果一个值的类型是交叉类型 A & B,那么该值必须同时满足类型 A 和类型 B的要求。

2023-12-10 11:30:45 2690

原创 Array.from()的6种常见用法

Array.from() 是一个用于从类数组对象或可迭代对象创建新数组的静态方法。arrayLike: 类数组对象或可迭代对象,用于。mapFunction (可选): 对数组中的进行。thisArg (可选): 执行 mapFunction 时,用作的值。

2023-12-02 11:22:54 2628

原创 类数组对象是什么?

类数组对象是指具有和(通常是 length 属性)的对象,但它不具备数组的方法,比如push、pop、forEach等。常见的类数组对象有哪些?让我们来看看~

2023-12-02 11:19:47 589

原创 检查对象为空、对象所有属性值为空 (超简单!!)

检查对象、数组、字符串是否为空🔸检查对象🔸检查数组🔸检查字符串不能用于检查对象的所有属性是否为空。对于对象而言,只有当对象没有可枚举的属性时,才被认为是空的。

2023-11-28 09:18:53 2475

原创 什么是proxy代理?

代理(Proxy)是 JavaScript 中一种非常强大而灵活的功能。代理允许你,提供了一种拦截、定制和扩展对象操作的机制。代理通过使用Proxy对象来创建。Proxy(被代理的对象)和一个(handler)。处理程序对象又分为了和。先看一个简单的栗子,创建一个空代理,不会做任何的额外操作。要想定义额外的操作,要在handler中定义捕获器。通过代理对象访问属性,会触发get()捕获器;通过代理对象给属性赋值。会触发set()捕获器。${

2023-11-26 16:08:13 1190

原创 什么是闭包和作用域链?

闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。举个栗子,createCounter 接受一个参数 n,然后返回一个匿名函数,这个匿名函数是闭包,它可以访问外部函数 createCounter 的局部变量 n。因为这个内部函数在外部有被引用,该函数会不会被销毁,n的值也会被保存。

2023-11-26 15:53:05 1244

原创 什么是arguments对象?

`arguments` 对象是 JavaScript 中的一个特殊对象,它包含了函数被调用时传入的所有参数。`arguments` 对象是一个类数组对象,它有一个 `length` 属性和按数字索引的元素。每个函数在执行时都会自动创建一个 `arguments` 对象。我们可以通过arguments去访问参数。

2023-11-23 22:05:51 782

原创 为什么vue中数组和对象的props默认值要写成函数形式?

假如在一个地方引用了同一个组件,并给他们都绑定了单独的值。如果只声明为一个对象或数组,可能会导致在某一个实例中修改数据,影响到其他实例中的数据,因为数组和对象是引用类型的数据。为了在多次引用组件时,让他们的数据不相互干涉,在vue2中定义data也是定义成一个函数的形式

2023-11-23 17:55:14 442

原创 【vue】使用computed时ts报错:Unexpected side effect in computed function.

函数副作用是指函数在执行过程中对外部环境产生的影响。修改全局变量:函数在执行过程中修改了全局变量的值,会对程序的其他部分产生影响。修改函数参数:函数在执行过程中修改了函数的参数,会对调用函数的部分产生影响。修改内部对象:函数在执行过程中修改了内部对象的值,会对后续对这个对象的访问产生影响。输入/输出操作:函数在执行过程中产生了输入/输出操作,会对外部环境产生影响。

2023-11-20 17:26:28 2197

原创 【pinia】Store的两种声明方式:Option和Setup声明

state: 存放共享数据getters: 相当于计算属性actions:异步操作使用时:importfrom'./store'const

2023-11-03 16:47:42 503

空空如也

空空如也

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

TA关注的人

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