自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 forEach不能用return中断循环,还是会走循环外的逻辑

【摘要】在forEach循环中直接使用return无法中断整个循环的执行,导致后续逻辑仍会被执行。正确的处理方式是在循环中设置标志位(如flag.value=true),然后在循环结束后根据标志位统一处理错误提示和返回。示例代码展示了如何通过flag.value标记不符合条件的项,最终在循环外统一进行错误提示和返回操作,确保逻辑正确执行。

2025-06-03 17:36:54 150

原创 vue3 ElMessage提示语换行渲染

ElMessage.error默认忽略换行符\n,要实现换行需使用<br>标签并开启dangerouslyUseHTMLString选项。例如:ElMessage.error({message:'发布失败!<br>'+data.msg,dangerouslyUseHTMLString:true})。这样就能显示多行错误提示信息。

2025-05-30 11:15:27 149

原创 vue3文本超出三行显示省略号,点击查看更多显示全部文本

摘要 本文实现了一个可折叠的文本显示组件,主要功能包括: 默认显示3行文本,超出部分显示"查看更多"按钮 点击按钮可展开/收起全文 通过计算元素高度和行高判断是否需要显示展开按钮 在弹窗打开和数据加载完成后才进行溢出检查 关闭弹窗时自动重置为收起状态 使用CSS实现文本省略和展开样式 该组件通过Vue3的composition API实现,封装了文本展示的常见交互需求。

2025-05-26 17:28:50 320

原创 Chrome安装最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本,兼容性好、功能齐全且稳定。

2025-05-14 11:38:29 364

原创 git 报错:error: cannot lock ref ‘refs/remotes/origin/dev/cib‘: ‘refs/remotes/origin/dev‘ exists; canno

在使用 Git 时遇到 "cannot lock ref 'refs/remotes/origin/dev/cib': 'refs/remotes/origin/d" 这样的错误,通常是因为在尝试推送或拉取远程分支时,本地分支的名称与远程分支的名称冲突或不正确。这里我是用了git remote prune origin后,再git pull 就可以正常拉取了。将同时获取最新的远程仓库数据并删除任何过时的远程跟踪分支。只专注于删除过时的分支,不会获取新的远程仓库数据。

2025-05-06 15:53:16 379

原创 el-dialog弹窗关闭时调了两次刷新数据的接口

弹窗是父组件通过dialog调用子组件的方式,然后在弹窗里面修改完内容,点击关闭按钮时,需要刷新父组件列表数据。但是调了两次刷新列表的接口。建议关闭的时候不要调取刷新数据的接口,因为如果在弹窗里面啥操作都不做,关闭时还刷新数据就不太友好。建议在保存或者提交的时候刷新数据。通过函数防抖就能防止关闭弹窗时调取两次刷新数据的接口。子组件通知父组件刷新数据。

2025-04-28 18:53:07 370

原创 父组件弹窗调用子组件时,无法通过ref、provide、inject等方法调用子组件的方法

方法2简单有效。

2025-04-23 16:56:48 647

原创 父组件弹窗关闭时更新子组件的某个属性改为false

父组件弹窗关闭时更新子组件的某个属性改为false(子组件里面表单的展开/收起按钮),以及父组件的dialog的关闭按钮2、定义showPerformanceList 3、父组件关闭弹窗时修改showPerformanceList 的状态为false 子组件:4、子组件defineProps接收showPerformance5、子组件挂载完成时更新showPerformanceList.value的值为父组件传过来的值6、子组件监听OBJECT_ID变化时,

2025-04-23 09:47:11 207

原创 vue3 el-dialog新增弹窗,不希望一进去就校验名称没有填写

/ 清空表单校验}, 0)

2025-04-17 17:33:12 413

原创 vscode 编辑器代码块展开收起不见了

编辑器找到设置 ——> 输入框查找folding ——> 找到 Editor: Folding Strategy ——> 下拉框选择 indentation。

2025-04-17 17:15:33 356

原创 vscode使用Linux的vi命令改错怎么回退

使用撤销命令:在插入模式下,按下`Esc`键返回命令模式,然后按下'u'键,每按一次u键,就能撤销一次编辑,直到回到最初修改之前。(正常模式下,按下`Ctrl + r`键,即可恢复被撤销的操作,每按下一次Ctrl + r键,就可以恢复一次被撤销的操作。`后按下回车,即可退出vi而不保存对文件的修改。2、使用恢复命令:在插入模式下,按下`Esc`键返回命令模式,然后输入`Ctrl + r`命令,即可恢复被撤销的操作。(正常模式下,直接按下u键,即可撤销上一次的编辑操作,每按一次撤销一次修改)

2025-04-15 09:27:58 301

原创 vue3开发问题解决:[Vue warn]: Invalid prop: type check failed for prop “menuWidth“. Expected N

如果menuWidth本身可以接受带单位的字符串(如"124px"),你可以直接修改propsprops: {然后在组件内部根据需要处理这个字符串值。这个警告的根本原因是传递给menuWidth的值类型不符合组件的期望。解决方法包括:确保传递的值是数字类型。在父组件中解析字符串为数字。在子组件中处理字符串值并解析为数字。调整props的定义以接受字符串类型。根据你的具体需求选择合适的方法。这里我用了方法1去解决。

2025-03-13 09:54:30 603 1

原创 git报错:“fatal:refusing to merge unrelated histories“

拒绝合并无关的历史” 是 Git 在合并无共同祖先的分支时的保护机制。根据你的需求,可以选择强制合并、重新初始化仓库、创建新分支或使用变基等方法解决问题。如果不确定操作的后果,建议先备份重要代码,避免数据丢失。

2025-03-12 10:08:55 4087

原创 前端页面报警告:runtime-core.esm-bundler.js:40 [Vue warn]: injection “Symbol(pinia)“ not found.

完整示例'app',sidebar: {...},...}),actions: {...})

2025-03-07 16:33:40 664

原创 前端页面报错: [Vue warn] Set operation on key “eventCallBks“ failed: target is readonly.

这表明你在尝试修改一个被标记为只读(readonly)的属性。

2025-03-07 16:08:05 605

原创 前端页面报 [Vue warn]: Invalid prop: custom validator check failed for prop “pagerCount”.

如果在某些情况下(例如组件重新渲染时)值被错误地覆盖或解析为其他类型,仍可能触发警告。所以全局搜索 pager-count,盲猜一定是有赋值不在5-21之间的奇数的范围的。即使 pager-count="7"写死为7,还是报那错误;Element Plus 的。:必须是大于等于 5 的奇数。

2025-03-07 15:35:46 872

原创 vue3问题警告解决:传递给组件的某些非 props 属性(例如 class、id 等)无法被自动继承,因为该组件渲染的是片段(fragment)或文本根节点

一些开发工具(如 Vue Devtools)可能会使用组件的名称来提供更好的调试支持。:Vue 3 允许组件返回多个根节点(即片段),但片段无法自动继承父组件传递的非。等)无法被自动继承,因为该组件渲染的是片段(fragment)或文本根节点。:如果你的组件需要递归调用自身,Vue 需要知道组件的名称。如果可能,确保组件的模板只有一个根节点。中不是必需的,但它可以帮助你更好地组织代码,尤其是在大型项目中。在 Vue 3 中,当组件的模板有多个根节点(例如使用了。如果可能,确保组件的模板只有一个根节点。

2025-03-06 09:15:16 2297 3

原创 git cherry-pick - 从另一个分支中选取特定的提交(commit),并将它们应用到当前分支

命令,它允许你从另一个分支中选取特定的提交(commit),并将它们应用到当前分支。这个命令在多个场景下都非常有用,比如当你想要将一个特性分支上的某个特定更改应用到主分支,但又不想合并整个分支时。

2025-03-04 10:11:32 1551

原创 vue3代码解读:列表拖拽排序

返回值类型返回的是被删除的单个元素。返回的是一个包含被删除元素的数组。使用场景如果你需要直接操作被删除的单个元素,使用。如果你需要处理多个被删除的元素,或者需要保留返回的数组形式,使用。

2025-02-10 11:25:46 1162

原创 splice()方法全部用法,好理解

splice()方法用于添加或删除数组中的元素注意:该方法会改变原数组,且返回删除的元素数组。

2025-02-10 11:03:54 573 2

原创 vue代码片段解读

函数是一个有效的实现,用于生成一个 16 字节的随机盐值,并将其转换为 32 位的十六进制字符串。这个盐值可以用于密码哈希等安全相关的操作。如果你在 Node.js 环境中运行代码,可以使用 Node.js 的crypto模块来生成随机字节。希望这些信息对你有所帮助!

2025-02-07 16:34:03 305

原创 git撤销上一次的提交

这个操作可以保留之前的提交和当前的修改。最近一次的提交到本地的修改的提交会回到暂存区,而当前的修改不会动。撤销最近修改(不保留修改)

2025-02-07 14:25:09 1210

原创 vue3表格数据分2个表格序号连续展示

this.tableData.slice(0, Math.ceil(this.tableData.length / 2)),也就是slice(0, 1),也就是切割到唯一一条数据。包含 6 条数据,第一个表格显示前 3 条,第二个表格显示后 3 条。,我们希望在第一个表格中展示前半部分的数据,第二个表格中展示后半部分的数据。当数据为单数时,第一条数据会切割到了右边表格,左边表格无数据。当数据为单数时,第一条数据会切割到了右边表格,左边表格无数据。所以有且仅有一条数据时,就跑到了右边表格,左边表格没数据。

2025-01-24 17:14:27 1581

原创 vue3阻止事件冒泡到父元素

使用.stop修饰符:最简单直接的方式。在事件处理函数中调用:提供更灵活的控制。使用.self修饰符:限制事件仅在元素本身触发。使用.capture和.stop组合:适用于复杂场景。选择哪种方法取决于你的具体需求和场景。

2025-01-24 16:18:46 1214

原创 点击事件,通过点击传进来的key去匹配dataInfo对象的key的值

总结:匹配对象的key值:

2025-01-21 15:40:29 127

原创 vue3实际开发bug解决

问题出在 componentName 的解构和赋值操作上。你尝试将一个字符串赋值给 ref 的 .value 属性,这导致了错误。ref 是 Vue 3 中用于响应式引用的工具,它返回一个对象,该对象的 .value 属性用于存储实际的值。不要对componentName解构赋值,直接赋值。

2025-01-21 15:33:05 347

原创 vue3代码优化:工厂函数优化

在这个案例中,使用了一个对象来存储每个type对应的构造函数。这样,就不需要使用switch语句,而是直接通过type来获取对应的构造函数。如果type不存在于对象中,就抛出一个错误。注意,这个示例假设cardType是一个枚举或对象,包含了所有可能的类型。如果你的代码中cardType是以不同的方式定义的,你可能需要相应地调整这个示例以适应你的代码基础。此外,如果你使用的是 TypeScript,你可以通过类型注解来进一步优化这个工厂函数。

2024-12-12 17:14:20 167

原创 动静分离具体是怎么实现的?

动静分离是指将网站的静态资源(如图片、CSS、JavaScript 文件)与动态内容(如 PHP、Python 等服务器端脚本生成的内容)分开处理。这样做可以使得静态资源被更快地加载,因为它们不需要经过后端服务器处理。在 Nginx 中实现动静分离是一种常见的优化手段,用于提高网站的性能和可扩展性。动静分离是提高网站性能和可维护性的重要策略,通过合理配置 Nginx,可以有效地实现这一目标。在这个配置中,静态资源被放置在。目录下,而动态请求被转发到。

2024-11-27 11:10:25 471

原创 10个高级JavaScript技巧

这可以极大地简化高度可重用实用函数的创建,使您的代码库更整洁且更易于维护。提供了一种强大的机制来控制和自定义模板字面量的输出,实现更安全和更灵活的模板创建。这可以显著提高具有繁重计算的函数的性能,特别是那些频繁使用相同参数调用的函数。通过使用别名,您可以避免名称冲突,并提高代码的清晰度,使其更易于处理复杂的数据结构。通过确保函数以受控的间隔调用,防止性能问题,减少浏览器的负载并提供更好的用户体验。如果没有记忆化,对斐波那契函数的每次调用都会多次冗余地计算相同的值,导致指数级的时间复杂度。

2024-11-26 16:58:30 933

原创 前端code review:代码报错捕获、兼容错误、代码规范处理

当你访问基本类型的属性或方法时,JavaScript 会自动将基本类型装箱为其对应的对象类型。这个临时的对象允许你访问属性和方法,但它是短暂的,一旦属性或方法访问完成,这个对象就会被销毁。同样道理,只要变量能被转成对象,就可以使用对象的方法,但是 undefined 和 null 无法转换成对象。null 是一个特殊的基本类型,当尝试访问其属性时会报错,因为 null 不能被装箱为对象。解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象(装箱)。第二种情况,虽然给了默认值,但是依然会报错。

2024-11-26 15:58:33 790

原创 为什么要用 ??=

这种精确性能够有效避免使用更宽泛检查带来的潜在问题。在构建用户界面或处理表单数据时,我们通常希望保留这些“假值”而不是将它们替换为默认值。),它才会赋予默认值,因此适用于保留有效的 0、空字符串或。仅当变量真的是“没有值”时(即。时才会赋予它一个默认值。

2024-11-26 09:26:28 149

原创 JS常见的问题-面试题-实际开发问题:可变性,var 和 变量提升,偶然性全局变量,闭包,对象,this,强制转换, 异步,函数,原型

,这些都是不可变的。这意味着一旦分配了一个值,我们就无法修改它们,我们可以做的是将它重新分配给一个不同的值(不同的内存指针)。另一方面,其他数据类型(如 Object 和 Function)是可变的,这意味着我们可以修改同一内存指针中的值。函数总是同步的,不管每个循环是同步的还是异步的,这意味着每个循环都不会等待另一个。字符串是不可变的,因此一旦分配给一个值,就不能将其更改为不同的值,您可以做的是重新分配它。关键字声明的函数可以提升函数语句,但是不能提升箭头函数,即使它是使用。

2024-11-22 11:21:00 607

原创 JS新功能之:全新 Set 方法

目前,这些新方法已被主流浏览器普遍支持。:判断第一个集合是否是第二个集合的子集。:判断第一个集合是否是第二个集合的超集。:返回第一个集合与第二个集合的差集。JavaScript 的内置。:判断两个集合是否不相交。:返回两个集合的对称差。:返回两个集合的交集。:返回两个集合的并集。

2024-10-28 16:26:49 319

原创 JS新功能:Promise.try

如果f是同步函数并返回一个值,则Promise.try会返回一个解析为该值的Promise。如果f是异步函数并返回一个Promise,则Promise.try会返回该Promise并保持其状态。::在实际编程中,经常遇到需要处理一个函数f,这个函数可能是同步的,也可能是异步的(即返回Promise)。在这个示例中,函数asyncF是异步的,并返回一个在1秒后解析的Promise。不同的是,使用Promise.try时,如果f是同步函数,它会在当前事件循环中立即执行,而不是在下一个事件循环中。

2024-10-28 16:24:22 683

原创 判断数组arr1中是否包含和数组arr2的FieldName名称一样的,包含返回true,不包含返回false

判断数组arr1中是否包含和数组arr2的FieldName名称一样的,包含返回true,不包含返回false为了判断数组arr1中是否至少有一个元素的与数组arr2中的任意一个FieldName相同,你可以使用方法结合方法来实现。

2024-10-11 16:27:15 687

原创 vue3中,拦截双击事件的第一次点击,写一些逻辑

开发案例中,到目前为止,可以成功拦截第一次点击,但是需要注意的是,需要双击的频率在合适(双击频率要在300ms内点击第二次)的情况下才会拦截第一次点击,在里面写你要的TODO逻辑即可。如果需要每次双击都拦截到第一次点击,可以调一下定时器的时间即可,可以调到500ms,一般人双击的频率都可以在500ms点击第二次。在 Vue 3 中,如果想要拦截双击事件的第一次点击并执行一些逻辑,你可以使用一个状态变量来跟踪第一次点击事件,并在第二次点击时阻止第一次点击逻辑的执行。

2024-10-11 10:19:58 721

原创 Object.values() 、 Object.keys()

只能获取对象自身的可枚举属性值,不会获取继承的属性值。如果你的对象中包含了嵌套对象,那么返回的数组将只包含嵌套对象的引用,而不是嵌套对象的值。如果你需要递归地获取所有嵌套对象的值,你可能需要编写一个递归函数来实现这一点。这样,如果对象中有多个相同的值,你就能获取到所有对应的键。在 Vue 3 的组合式 API 中,如果你有一个响应式对象,例如。如果你需要在 Vue 组件中获取响应式对象的值,你可以使用同样的。的所有键,并检查每个键对应的值是否等于我们想要找的值。一旦找到匹配的值,我们就得到了对应的键。

2024-09-30 17:05:29 846 1

原创 自定义验证器函数

组件,来确保用户输入的数据符合特定的要求。例如,你可能不希望用户在某些输入字段中使用特定的关键字,因为这些关键字可能是保留字或有特殊意义。这个验证规则对象通常用在表单组件中,例如 Element Plus 的。

2024-09-30 16:58:30 704

原创 已知有一个对象,通过对象的值拿到对象的键

函数返回一个数组,包含所有与目标值相匹配的键。这样,如果对象中有多个相同的值,你就能获取到所有对应的键。函数遍历对象的键,并检查每个键对应的值是否等于目标值。如果找到匹配的值,函数返回对应的键。函数接受两个参数:一个对象。

2024-09-30 16:52:00 257

原创 修改ID不能用关键字作为ID校验器-elementPlus

以上就是实现关键字校验器的具体步骤。通过校验才能关闭弹窗。

2024-09-30 16:11:43 741

Chrome安装最新vue-devtool插件

Chrome安装最新vue-devtool插件

2025-05-14

Vue.js devtools 6.0.0 beta 21

Vue.js devtools, 用于调试 Vue.js 应用程序的浏览器 DevTools 扩展。 用于调试 Vue.js 应用程序的 Chrome 开发工具扩展。 开发者工具 插件 前端开发利器 这是 Beta 频道——带来初始 Vue 3 支持的主要重构。 注意 beta 通道可能会导致与 Vue devtools 的稳定版本冲突。如果 Vue 图标点亮但 Vue 选项卡没有出现在 devtools 中,请暂时禁用稳定版并重新打开页面。

2024-07-04

Cookie-Editor 1.12.2

简单但功能强大的 Cookie 编辑器,让您无需离开选项卡即可快速创建、编辑和删除 Cookie。 Cookie-Editor 的设计具有简单易用的界面,可让您执行大多数标准 cookie 操作。它非常适合开发和测试网页,甚至手动管理 cookie 以保护您的隐私。 当心!不要与您不信任的任何人分享您的 cookie! Cookie 可能包含非常敏感的信息,例如您的登录信息。如果您与某人分享您的 cookie,他们可能会获得对您帐户的完全访问权限并危及您的帐户。 功能列表: - 列出当前选项卡的所有 cookie。 - 搜索您的cookie。 - 创建、编辑和删除您的 cookie。 - 以多种格式导入和导出 cookie(JSON、Netscape、标头字符串) - 快速删除当前选项卡的所有cookie。 - 可定制:选择要查看的额外数据、使用的主题(浅色或深色)、要查看的细节量(高级模式)。 Cookie-编辑器可以帮助您: - 开发网页。 - 改善您的 SEO 工作。 - 管理您的 cookie 以保护隐私。 - 改善您的浏览体验。

2024-07-04

2024前端面试八股文

内容概要:根据最近的面试情况,以及一些小伙伴面试的反馈,以及总结一些文档知识,组合了这篇2024最新前端面试八股文,里面包含了css, js, vue2, vue3, 以及webpack相关的知识。 适合人群:适合具备有一定前端基础,即将找工作或准备跳槽的同学们,也适合工作1-3年的前端开发同学们。 能学到什么:css, js, vue2, vue3, 以及webpack相关的知识和原理,也有些实际工作过程中会遇到的问题,面试中常被问到的面试题,希望对有需要的人有帮助,谢谢!!!!

2024-04-23

2024年前端工程师面试题

根据最近的前端面试情况,总结的2024年最新的前端面试题,知识包含js, html, css, vue, react, vue3等知识点,适合目前找工作或者即将找工作或者有跳槽想法的前端小伙伴,多刷刷面试题,提高面试通过率,找到神仙公司,拿到理想的offer,希望能帮到大家,谢谢!!!

2024-04-23

空空如也

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

TA关注的人

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