自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 介绍一下node中的qs模块

模块是一个用于解析和格式化查询字符串的流行库,尤其在处理复杂的嵌套对象时非常有用。模块是一个强大且灵活的工具,用于处理 URL 查询字符串。它特别适合需要处理复杂对象和数组的场景。,你可以更轻松地解析和格式化查询字符串,尤其是在处理嵌套数据结构时。提供了多种选项来控制解析和字符串化的行为。:将 URL 查询字符串解析为 JavaScript 对象。:将 JavaScript 对象转化为 URL 查询字符串。模块提供了更多的功能和更强大的解析能力。:可以处理复杂的嵌套数据结构。自定义解析和格式化选项。

2025-04-15 21:28:24 31

转载 get定义的属性是否是可枚举

Getter 默认不可枚举是 JavaScript 的设计决策,旨在保持对象结构的清晰性。若需强制可枚举,需通过。:类的方法(包括 getter)通常设计为不可枚举,以避免污染属性遍历结果(如。属性,因此默认情况下无法遍历到这些 getter。关键字在类内部定义的访问器属性(getter)默认是。由于 getter 在原型上且不可枚举,实例的。:若需获取对象属性(包括不可枚举的),可用。通过类语法定义的 getter 默认具有。循环会遍历对象自身及原型链上的所有。遍历对象自身及原型链上的可枚举属性。

2025-04-14 20:18:40 19

转载 Axios 请求传 ArrayBuffer 参数

类型的数据,可以通过设置请求头和配置适当的选项来确保数据以正确的格式发送。使用 Axios 发送请求,以下是一个例子,展示如何使用 Axios 发送一个包含。不同的服务器框架可能需要不同的配置或中间件来解析二进制请求体。数据时,你需要确保请求配置正确,以便 Axios 将响应数据解析为。,你可以根据数据的内容和格式进行处理。根据数据的具体格式和你的需求,选择合适的解析和处理方法。包含二进制数据(如图像或音频),你可以创建一个。首先,确保你的 Axios 请求配置包括。通常,当发送二进制数据时,需要设置。

2025-04-12 15:55:29 55

转载 组件通讯要注意内存泄露

特别是在组件销毁时,如果没有移除监听器,组件可能无法被垃圾回收,从而导致内存泄露。事件总线是一种轻量级的发布-订阅模式,通过创建一个空的 Vue 实例作为事件中心,兄弟组件可以在事件中心上监听和触发事件。通过在组件销毁时移除事件监听器,可以有效地避免内存泄露问题。一个兄弟组件可以通过事件将数据发送到父组件,父组件再将数据传递给另一个兄弟组件。触发一个事件,将数据传递给父组件。在父组件中,监听该事件并接收数据。在父组件中,将接收到的数据通过。在另一个兄弟组件中,使用。在一个兄弟组件中,使用。

2025-04-10 19:46:28 23

转载 检查一个对象是否是 Proxy

在 JavaScript 中,没有内置的方法直接判断一个对象是否是 Proxy 对象。Proxy 对象是通过 new Proxy(target, handler) 创建的,它没有暴露任何直接的标识符来判断对象是否为 Proxy。Vue3 中提供 isProxy() 方法,检查一个对象是否是由 reactive()、readonly()、shallowReactive() 或 shallowReadonly() 创建的代理。Vue 在创建响应式 Proxy 对象时,会在对象上设置一个不可枚举的特殊标记。

2025-03-31 19:54:59 27

转载 理解 Vue3.5 的 useId 功能

每次调用 useId 时,都会取出当前的数字值,然后进行自增操作,从而确保每次生成的ID都是唯一的。https://github.com/vuejs/core/pull/11404 是否有计划在未来版本中扩展 useId 功能以在异步环境中工作?useId() 生成的每个 ID 在每个应用内都是唯一的。同一个组件的多个实例调用 useId() 也会生成不同的 ID。useId() 生成的 ID 在服务器端和客户端渲染之间是稳定的,因此可以安全地在 SSR 应用中使用,不会导致激活不匹配。

2025-03-23 17:33:29 49

转载 getCurrentInstance 原理是什么?

getCurrentInstance是 Vue 3 中的一个内部 API,主要用于在组合式 API(Composition API)中获取当前组件实例的引用。了解它的原理可以帮助你更好地理解 Vue 3 的内部工作机制。以下是关于getCurrentInstance的详细解释:工作原理1、组件实例上下文:•在 Vue 3 中,每个组件在创建时都会有一个与之关联的组件实例对象。这个对象包含了...

2025-03-09 09:03:14 73

转载 Vue3 数渲染函数API如何使用

在 Vue 3 中,渲染函数提供了一种使用 JavaScript 来构建组件模板的方式。与模板语法相比,渲染函数提供了更多的动态性和灵活性。以下是如何使用 Vue 3 渲染函数 API 的一些基本步骤和示例:基本用法在 Vue 3 中,渲染函数可以通过render选项来定义。你可以在render函数中使用h函数(也称为createElement函数)来创建虚拟 DOM 节点。示例&...

2025-03-08 19:49:59 38

转载 查看 npm 安装的全局包

要查看通过npm安装的全局包,可以使用以下方法:方法 1:使用npm list -g --depth=0运行以下命令,可以列出所有全局安装的 npm 包:npm list-g--depth=0•-g表示列出全局安装的包。•--depth=0表示只列出顶层的包(不显示依赖的嵌套结构)。输出示例:/usr/local/lib├── npm@9.8.0├── nodemon@2.0.22├...

2025-02-19 09:55:45 266

转载 @vue/compiler-core整体逻辑

@vue/compiler-core是 Vue 3 中的一个关键模块,用于将 Vue 模板编译为渲染函数。它的整体逻辑可以分为几个主要阶段:解析(Parsing)、转换(Transformation)、优化(Optimization)和代码生成(Code Generation)。下面是对这些阶段的详细介绍:1. 解析(Parsing)目标:将模板字符串解析为抽象语法树(AST)。•输入:Vue ...

2025-02-16 10:35:22 90

转载 v-exposure 元素曝光

要在 Vue 中创建一个自定义指令,用于元素曝光上报埋点,可以使用IntersectionObserverAPI 来检测元素何时进入或离开视口。以下是一个示例,展示如何实现这个功能:Vue.directive('exposure', { inserted(el, binding) { // 创建一个 IntersectionObserver 实例 const observer =...

2025-01-20 19:06:00 56

转载 Symbol(Symbol.unscopables)

在 Vue 源码中,Symbol(Symbol.unscopables)是一个与 JavaScript 的标准Symbol.unscopables相关的特殊符号。要理解它的作用,我们需要从 JavaScript 的with语句和Symbol.unscopables的功能说起。Symbol.unscopables的作用Symbol.unscopables是 ES6 引入的一个内置 ...

2025-01-14 08:00:57 57

转载 createElementVNode 底层工具函数

createElementVNode是 Vue 3 中用于创建虚拟 DOM 节点(VNode)的一个底层工具函数。它是 Vue 内部用于渲染的核心函数之一,主要在编译模板时生成的渲染函数中被调用。在 Vue 3 中,createElementVNode是从vue包导出的,通常不需要手动使用它,因为 Vue 的模板语法会自动编译成调用类似createElementVNode的渲染函数。但...

2025-01-13 19:24:11 80

转载 副作用清理 onWatcherCleanup

有时我们可能会在侦听器中执行副作用,例如异步请求:watch(id,(newId) =>{fetch(`/api/${newId}`).then(() =>{ // 回调逻辑 })})但是如果在请求完成之前 id 发生了变化怎么办?当上一个请求完成时,它仍会使用已经过时的 ID 值触发回调。理想情况下,我们希望能够在 id 变为新值时取消过时的请求。我们可以使用 on...

2025-01-10 08:00:26 61

转载 前端如何管理JS内存

在前端开发中,管理 JavaScript 内存是优化性能、减少内存泄漏、提升用户体验的重要一环。以下是一些管理 JavaScript 内存的关键方法和最佳实践:1.理解 JavaScript 内存管理机制JavaScript 的内存管理主要依赖以下两个过程:•内存分配:当创建变量、对象、函数时,JavaScript 会自动分配内存。•垃圾回收:JavaScript 引擎(如 V8)会自动回收不再...

2025-01-09 19:34:32 39

转载 prefers-color-scheme CSS 特性

prefers-color-scheme CSS 媒体特性用于检测用户是否有将系统的主题色设置为亮色或者暗色。语法1、no-preference 表示系统未得知用户在这方面的选项。在布尔值上下文中,其执行结果为 false。2、light 表示用户已告知系统他们选择使用浅色主题的界面。3、dark 表示用户已告知系统他们选择使用暗色主题的界面。示例这个例子使用了一个有黑色背景和白色文字的元素,当用...

2025-01-08 19:12:48 87

转载 onunhandledrejection 捕获 Promise

当 Promise 被 reject 且没有 reject 处理器的时候,会触发 unhandledrejection 事件;这可能发生在 window 下,但也可能发生在 Worker 中。这对于调试和为意外情况提供后备错误处理非常有用。unhandledrejection 继承自 PromiseRejectionEvent,而 PromiseRejectionEvent 又继承自 Event。...

2024-12-24 09:27:35 183

转载 什么是源代码映射?

源映射的必要性早期的 Web 应用的复杂性较低。开发者直接将 HTML、CSS 和 JavaScript 文件部署到 Web 上。在开发工作流中,更现代、更复杂的 Web 应用可能需要使用各种工具。例如:1.模板语言和 HTML 预处理器:Pug、Nunjucks、Markdown。2.CSS 预处理器:SCSS、LESS、PostCSS。3.JavaScript 框架:Angular、React...

2024-12-23 08:00:13 55

转载 分析组件的渲染时间

在 Vue 应用中分析每个组件的渲染时间可以帮助开发者找出性能瓶颈并进行优化。以下是一些方法,可以帮助你分析和测量 Vue 组件的渲染时间:1、 使用浏览器的性能工具•打开 Chrome DevTools,进入 "Performance" 面板。•点击 "Record" 按钮,然后在应用中执行一些操作。•停止记录后,你可以看到每个帧的渲染时间。通过展开相关的堆栈,你可以找到与 Vue 组件相关的渲...

2024-12-22 08:00:55 131

转载 Performance.mark创建时间戳

Performance.mark()是一个 Web API 方法,用于在浏览器的性能时间线中创建一个时间戳。这对于测量代码执行的性能非常有用,因为它允许开发者在特定的代码执行点上标记时间,然后可以通过Performance.measure()方法来计算两个标记之间的时间差。以下是如何使用Performance.mark()方法的步骤:1、创建标记: 使用performance.mar...

2024-12-21 16:45:51 59

转载 响应式对象重复赋值问题

proxy 的一个代理,对代理对象属性的更改会反映到原对象上。例如:constobj = {name:'Alice',age:30};constproxy =newProxy(obj, {});proxy.name='Bob';console.log(obj.name);// 'Bob', 原对象也被修改了在上面的例子中,我们创建了obj对象,并将其用Proxy...

2024-12-13 19:31:41 52

转载 Vue 3 编译器

在 Vue 的源码中,compiler-core、compiler-dom、compiler-sfc 和 compiler-ssr 是 Vue 3 编译器的不同部分,它们各自承担不同的角色和功能。以下是它们之间的区别和作用:1、 compiler-core:•功能: 这是 Vue 3 编译器的核心模块,包含了大部分编译器的通用逻辑。•作用: 提供了模板编译的基础功能,包括解析(parsing)、转...

2024-12-08 16:07:28 98

转载 Vue3 的 defineExpose 用法

如果一个子组件使用的是选项式 API 或没有使用 <script setup>,被引用的组件实例和该子组件的 this 完全一致,这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易,当然也因此,应该只在绝对需要时才使用组件引用。大多数情况下,你应该首先使用标准的 props 和 emit 接口来实现父子组件交互。有一个例...

2024-12-06 18:56:07 54

转载 请求都有并发数的限制

每个浏览器对同一域名的资源请求都有并发数的限制。这是为了防止服务器过载和确保良好的用户体验。不同的浏览器和版本可能会有不同的限制,但通常现代浏览器会允许每个域名同时发起 6 到 8 个请求。以下是一些常见浏览器的资源请求并发数限制的概述:1.Google Chrome: 通常允许每个域名 6 个并发请求。2.Mozilla Firefox: 通常允许每个域名 6 个并发请求。3.Microsoft...

2024-12-01 20:22:20 568

转载 vue-router 处理路由错误

等待导航结果当使用 router-link 组件时,Vue Router 会自动调用 router.push 来触发一次导航。虽然大多数链接的预期行为是将用户导航到一个新页面,但也有少数情况下用户将留在同一页面上:1、用户已经位于他们正在尝试导航到的页面2、一个导航守卫通过调用 return false 中断了这次导航3、当前的导航守卫还没有完成时,一个新的导航守卫会出现了4、一个导航守卫通过返回...

2024-11-26 10:18:25 162

转载 Workstation Pro 虚拟机对个人使用免费

VMware Workstation Pro 是行业标准桌面虚拟机软件,可以使用 VMware 桌面虚拟机管理程序针对任何平台进行开发和测试。VMware Workstation Pro - 功能强大的桌面虚拟机软件,用户可在单一的桌面上同时运行不同的操作系统,进行开发、测试、部署新的应用程序。在一台机器上同时运行两个或更多Windows、DOS、LINUX系统,在虚拟网路,实时快照,拖曳共享文件...

2024-11-24 20:40:07 151

转载 小程序中模板调用 data 里的函数

微信小程序 glass-easel 组件框架新增特性中支持在模板中调用 data 里的函数。如果 data 中的某个字段是函数,在模板里可以直接调用它:Component({ data: { getDataField() { return 'someValue' }, },})<view>{{ getDataField() }}</view...

2024-11-21 19:40:52 102

转载 date-fns 日期处理库

date-fns和Moment.js是两个流行的 JavaScript 日期处理库,各有其特点和适用场景。以下是它们之间的一些主要区别:1、模块化 vs. 单一包:•date-fns: 采用模块化设计,每个功能都是一个独立的函数模块。这意味着你可以只引入需要的功能,从而减少打包后的文件大小。•Moment.js: 是一个单一的大包,所有功能都包含在一个库中。在项目中引入时,即使只需要部分功...

2024-11-15 19:52:32 133

转载 Vue 3.5 辅助函数useTemplateRef

Vue 3.5+ 要在组合式 API 中获取引用,我们可以使用辅助函数useTemplateRef():<script setup>import { useTemplateRef, onMounted } from 'vue'// 第一个参数必须与模板中的 ref 值匹配const input = useTemplateRef('my-input')onMounte...

2024-11-10 11:20:14 350

转载 在 Vue 3 中 .native 修饰符已经被移除

你可能有很多次想要在一个组件的根元素上直接监听一个原生事件。这时,你可以使用 v-on 的 .native 修饰符:<base-input v-on:focus.native="onFocus"></base-input>在 Vue 3 中,.native修饰符已经被移除,这是因为事件绑定的方式有所改变。在 Vue 2 中,.native修饰符用于在自定义组件上绑定原生...

2024-11-06 09:59:15 503

转载 Vue 自定义的指令

除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。下面是一个自定义指令的例子,当一个 input 元素被 Vue 插入到 DOM 中后,它会被自动聚焦:<script setup>...

2024-11-05 09:29:00 52

转载 理解 Vue3 的插槽

举例来说,这里有一个组件,可以像这样使用:<FancyButton> Click me! <!-- 插槽内容 --></FancyButton>而<FancyButton>的模板是这样的:<button class="fancy-btn"> <slot></slot> <!-- 插槽出口 --...

2024-11-04 08:00:08 52

转载 WebStorm 现在对非商业用途免费

我们很激动地宣布许可模式将有所变动,我们相信这一变动将惠及开发者社区 – WebStorm 和 Rider 现在对非商业用途免费!请继续阅读,详细了解这一变动以及我们做出改变的原因,并务必查看下面的“常见问题解答”部分,以了解更多详细信息。原文:https://blog.jetbrains.com/zh-hans/blog/2024/10/24/webstorm-rider/常见问题解答下面是对一...

2024-11-03 16:15:32 398

转载 pnpm如何管理多仓库

pnpm是一个高效的 JavaScript 包管理工具,可以用于管理单个项目的依赖,也可以用于管理多仓库(monorepo)结构的项目。以下是一些使用pnpm管理多仓库的基本步骤和最佳实践:1. 初始化多仓库首先,你需要在你的项目根目录下创建一个pnpm-workspace.yaml文件,这个文件用于定义工作区的结构。以下是一个示例:packages: - 'packages/*'...

2024-11-03 10:06:51 160

转载 禁止浏览器F12调试

在不打开发者工具的情况下,debugger是不会执行将页面卡住,而恰恰是利用debugger的这一点,如果你打开开发者工具一定会被debugger卡住,那么上下文时间间隔就会增加,在对时间间隔进行判断,就能巧妙的知道绝对开了开发者工具,随后直接跳转到空白页。<!DOCTYPE html><html> <header> <title...

2024-10-27 17:07:32 202

转载 Vue3.5 响应式 Props 解构

以前我们对Props直接进行解构赋值是会失去响应式的,需要配合使用toRefs或者toRef解构才会有响应式,那么就多了toRefs或者toRef这工序,而最新Vue3.5版本已经不需要了。了解一下 toRef() 的使用:1.可以将值、refs 或 getters 规范化为 refs (3.3+)。2.也可以基于响应式对象上的一个属性,创建一个对应的 ref。这样创建的 ref 与其源属性保持同...

2024-10-20 16:47:57 211

转载 【枕头没选对,颈椎很遭罪】越早更换枕头,越早矫正体态,预防颈椎问题!...

现代人人都是“低头族”白天上班盯电脑一坐就是七八个小时晚上低头看手机也是好几个小时脖子承受的实在太多了有时候一觉醒来肩颈更是酸胀疼痛动几下就会咔嚓作响睡得时间长了还会出现头晕其实这些都是颈椎病在作怪依据世卫组织的报告全球60多亿人口当中约有9亿人患颈椎病颈椎病对我们最直观的影响就是会改变人体的体态驼背、高低肩、富贵包以及颈纹等等多种问题同时出现并且肩颈问题是不可逆转的偶发性头晕头痛以及各种肩颈酸痛...

2024-10-20 16:47:57 53

转载 input上传文件夹

带有 type="file" 的<input>元素允许用户可以从他们的设备中选择一个或多个文件。选择后,这些文件可以使用提交表单的方式上传到服务器上,或者通过 Javascript 代码和文件 API 对文件进行操作。当指定布尔类型属性 multiple 时,文件 input 允许用户选择多个文件。如果出现布尔属性 webkitdirectory,表示在文件选择器界面中用户只能选择...

2024-10-19 21:16:35 170

转载 比较版本号

版本号的的比较顺序应该是从大版本往小版本开始对比,每个版本之间用.隔开。因此我们可以将两个版本字符串以.分隔开,从第一个版本号开始往下对比,若遇到version1的当前版本号大于version2,则返回1,否则返回-1。若一方的小版本号为空,则看另外一方的小版本号是否不为0。根据上面的思路有两种做法,一种是用JavaScript自带的Array.split()函数,将其以.分割成数组。另一种是不使...

2024-10-18 19:46:08 58

转载 使用 CSS flexbox 制作时间线

基本DOM结构<body> <div class="timeline"> <div class="events"> <!-- The first `1989` event --> <div class="event life"> <!-- The circle is an svg ...

2024-10-17 13:01:13 45

空空如也

空空如也

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

TA关注的人

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