自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 盘点广州哪个公园里最多猫咪

以上公园中,黄花岗公园和越秀公园似乎是公认的猫咪密度最高的两个地方。不过,由于猫咪是野生动物,它们的数量和位置可能会随时间和季节的变化而变化。- 被誉为广州猫咪最多的公园之一,这里有许多不同种类和颜色的猫咪,尤其是橘色的猫咪。- 同样以拥有大量猫咪而著称,这里的猫咪品种多样,从小猫到成年猫,从黑色到白色,甚至狸花猫都有。- 根据2018年的记录,东湖公园及其附近的区域也是猫咪频繁出现的地方,尤其是在地铁站附近。- 作为宠物友好的公园,这里也是猫咪和其他宠物的热门地点。等地方也被提及为有猫咪出没的公园。

2024-07-22 17:35:28 199

原创 vue keep-alive用法

是 Vue.js 中的一个内置组件,用于缓存不活动的组件实例,而不是销毁它们。当一个组件被切换出来时,它的和destroyed生命周期钩子不会被调用,而是会被暂停,并在重新激活时恢复。使用的基本语法如下:</</这里,可以是一个动态组件名或组件引用,当的值改变时,组件会被切换,但它们的状态会被组件保持。

2024-07-22 14:39:14 273

原创 js 判断一个数组 var arr = [{c:1},{c:4}] 中c的数字哪个是最大 并返回这个数字

在JavaScript中,你可以使用方法或者Math.max()结合和apply()来找出数组中对象的某个属性的最大值。

2024-07-10 17:50:26 209

原创 javascript Reflect.has作用

运算符,但是作为函数形式提供,更适合在某些需要函数调用的上下文中使用,尤其是在函数式编程风格中。此方法的一个特点是它遵循了 Proxy 对象的陷阱机制,如果你通过 Proxy 使用。,你可以自定义属性查找的行为。这使得它在设计复杂对象操作逻辑时更为灵活。方法用于检查一个属性是否存在于对象中。JavaScript中的。对象自身或其原型链上,如果指定的属性存在于。

2024-07-02 17:06:45 366

原创 el-tree-transfer插件 入参说明

请注意,具体参数可能会随着插件版本更新而有所变化,建议查阅最新的官方文档或npm包的README文件以获取最准确的信息。如果需要更详细的参数说明或示例代码,可以尝试访问插件的GitHub仓库或通过npm安装后查看其自带的文档。是一个基于 Vue 和 Element-UI 的树形穿梭框组件,用于实现左右两侧树形结构数据的选择与移动功能。

2024-07-02 17:06:03 586

原创 vue2 项目,一个方法还原data里所有的属性

中的所有属性重置为它们最初的状态。注意,这种方法对于引用类型的数据(如数组或对象)会进行浅拷贝,如果。中有嵌套的复杂结构且需要深拷贝重置,你可能需要额外的逻辑来处理这些情况。方法来重新分配初始数据。对象里所有的属性到它们初始状态,可以利用。在 Vue 2 中,如果你想要还原。方法时,它会将当前组件。

2024-06-29 17:12:40 351

原创 git 打tag

【代码】git 打tag。

2024-06-26 15:49:42 236

原创 js 回收机制 标记-清除

标记-清除(Mark-and-Sweep)是垃圾回收(Garbage Collection, GC)算法中的一种基本方法,用于自动管理内存,尤其是在一些高级编程语言如Java、Python中应用广泛。该算法分为两个主要阶段来确定和回收不再使用的内存空间,即不再被任何变量引用的对象所占用的内存。

2024-06-21 10:31:27 281

原创 javascript的回收机制有哪些

JavaScript 的垃圾回收机制主要目的是自动管理内存,确保不再使用的变量和对象所占用的内存能够被释放,从而避免内存泄漏。:为了减少标记-清除算法导致的长时间暂停,垃圾回收器可以分步骤进行标记过程,每次只处理一部分工作,让垃圾回收与JavaScript代码的执行交替进行。:垃圾回收器会在浏览器空闲时(比如没有JavaScript代码执行或用户交互)执行回收任务,以减少对用户体验的影响。通过这些机制的组合运用,JavaScript引擎能够在保持高效执行的同时,有效地管理内存资源。

2024-06-21 09:44:07 254

原创 半画幅和中画幅的区别

综上所述,选择半画幅还是中画幅相机,取决于个人的摄影需求、预算以及对画质的追求程度。

2024-06-21 09:29:05 813

原创 尼康z30 各个档位的作用介绍

相机仍然会自动调整光圈和快门以获得正确曝光,但用户可以自由调整其他设置(如ISO、白平衡等),并且可以通过旋转指令拨盘来选择不同的光圈和快门组合,从而对曝光结果进行一定干预。用户可以手动设定快门速度,这对于拍摄运动场景非常有用,可以冻结动作或创造动态模糊效果。专门设计用于捕捉快速移动的主体,通常会设置较快的快门速度以冻结动作,并可能采用连续自动对焦追踪,适合体育赛事或动物摄影等。在这个模式下,相机将自动控制所有的设置,包括光圈、快门速度、ISO感光度和白平衡等,非常适合初学者或需要快速抓拍的场合。

2024-06-20 10:46:52 1070

原创 尼康 尼克尔18-140mm镜头的光圈范围

尼康18-140mm镜头的光圈范围是随着焦距的变化而变化的。在广角端(18mm)时,最大光圈为F3.5,最小光圈为F22;而在长焦端(140mm)时,最大光圈为F5.6,最小光圈为F38。因此,该镜头的光圈范围可以从F3.5调节到F22(在广角端)和从F5.6调节到F38(在长焦端)。

2024-06-20 10:41:42 474

原创 nacos是什么

Nacos与Spring Cloud等框架高度集成,特别适合Spring Boot和Spring Cloud微服务生态的开发者使用,能够替代Spring Cloud Netflix中的Eureka(服务发现)和Spring Cloud Config(配置管理)等组件,为微服务架构提供统一的服务发现与配置管理解决方案。:Nacos提供了一个中心化的配置管理服务,使得开发人员可以在微服务架构中集中管理所有服务的配置,支持实时推送配置更新,无需重启服务即可使新配置生效。这有助于实现服务的自动发现和负载均衡。

2024-06-19 17:29:23 207

原创 经济学中的经典言论

“创新应当是企业家的主要特征,企业家不是投机商,也不是只知道赚钱存钱的守财奴,而应该是一个大胆创新敢于冒险,善于开拓的创造型人才。” ——这句话虽然是讽刺性质的,但也揭示了经济学分析可以被用于不同目的,包括不公正的政策制定。” ——这反映了他的行为经济学观点,即道德和社会规范在经济决策中的作用。:“在任何一组东西中,最重要的、决定着其它一切的,是它们的经济关系。:“劳动生产力最大的增进,以及运用劳动时所表现的更大的熟练、技巧和判断力,似乎都是分工的结果。” ——指出了预期在经济决策和市场动态中的重要性。

2024-06-19 17:17:36 663

原创 为什么半画幅相机的焦段需要乘以1.5才是全画幅的焦段

例如,如果你在半画幅相机上使用50mm镜头,为了知道这相当于全画幅相机上的视角,你需要将50mm乘以1.5(假设是尼康或索尼的APS-C相机),得到75mm。由于半画幅传感器的对角线长度约为全画幅的三分之二,所以它捕捉的视场比全画幅在同一焦距下要窄。乘以1.5(或特定品牌的其他系数)是为了将半画幅的实际焦距转换为在全画幅相机上能够获得相同视角的焦距。半画幅相机(也称为APS-C画幅)的焦段需要乘以一个系数(通常是1.5,但在某些品牌如佳能则是1.6)来等效于全画幅相机的焦段,原因在于传感器尺寸的差异。

2024-06-19 17:14:55 1575

原创 echart设置pie饼图飞线长度

的数值来改变飞线的长度。记得将上述代码片段融入到你的整体 ECharts 配置中,并根据实际情况调整其他配置项。在 ECharts 中,设置饼图(pie)中指示线(通常称为飞线)的长度可以通过配置。

2024-06-18 16:52:05 703

原创 前端html文字差异比较插件 diff使用教程

jsdiff库以其灵活性和易用性,成为了许多文本差异处理需求的首选工具。无论是开发代码对比工具、文本编辑器的修订历史功能,还是简单的字符串对比展示,jsdiff都能提供强大且高效的支持。

2024-06-14 17:21:38 978

原创 typescript中 interface接口和type类型别名的区别

它支持多种类型组合,如对象类型、函数类型,但不能直接定义基本类型别名、元组、联合类型或交叉类型。则提供了更广泛的类型操作能力,适合创建复杂的类型表达式,如工具类型(Partial、Required、Pick 等),以及对现有类型进行改写或增强。是一种更底层、更灵活的类型系统工具,能够创建更复杂的类型定义。不支持声明合并,且不能直接用来定义类或接口本身,但它可以基于接口定义新的类型,或者通过。关键字定义,更加灵活,可以用来定义任何类型,包括但不限于基本类型、联合类型 (定义的类型,但反过来则不行,即。

2024-06-14 10:17:06 297

原创 setTimeout和setInterval的区别

主要取决于具体需求,是否需要一次性执行还是持续周期性的执行任务。在JavaScript 中,

2024-06-14 10:09:59 439

原创 vite和webpack打包工具的区别

综上所述,Vite 在开发速度和热更新效率上表现出色,适合追求快速开发反馈的场景;而 Webpack 因其强大的定制能力和丰富的生态系统,更适合大型项目或有特定打包需求的应用。开发者可以根据项目特点和个人偏好来选择合适的工具。Vite 和 Webpack 是两个流行的前端资源打包工具,它们各自具有独特的特性和优势。

2024-06-14 10:02:18 721

原创 文件转base64有哪些前缀格式

这个格式常用于将文件内容直接嵌入HTML、CSS或JavaScript中,以便在网络传输时无需额外的HTTP请求,或者在某些API交互中作为文件内容的携带形式。参数可以在某些情况下附加到数据URI中以指定建议的文件名,但这不是标准Base64编码格式的一部分,且浏览器可能不会直接使用此参数保存文件时。文件转换为Base64编码时,通常会包含一个前缀,用来指示数据的MIME类型以及可能的文件名。部分是文件内容经过Base64编码后的字符串。是文件内容经过Base64编码后的字符串。注意,在上述示例中,

2024-06-13 11:17:58 1341 1

原创 vue项目 this.$router.resolve作用

是一个强大的工具,它帮助开发者在不实际执行导航操作的前提下,根据Vue Router的配置动态生成目标路由的URL信息,适用于需要灵活控制导航流程或处理URL相关逻辑的场景。方法是一个非常有用的API,主要用于生成一个URL对象,这个对象包含了导航到指定路由所需的所有信息。比如,你可以指定路由名称、传递参数、查询字符串等,使得生成的URL能够满足复杂的导航需求。:该方法接受一个参数,通常是通往另一个路由的路径、名称或者一个描述目标位置的对象。(目标路由的信息对象)等属性的对象。(生成的URL字符串)、

2024-06-13 11:09:32 1287

原创 javascript html片段转换为纯文本

在JavaScript中,要从HTML字符串中提取纯文本内容,可以使用DOMParser API来解析HTML,然后遍历DOM元素获取文本节点。函数首先使用DOMParser将输入的HTML字符串解析成一个文档对象,然后通过递归函数。遍历文档中的所有节点,收集并拼接文本节点的内容,最终返回这段HTML的纯文本形式。

2024-06-13 10:09:08 689

原创 vue-demi是什么插件

VueDemi是一个开发工具库,旨在帮助开发者创建能够同时兼容Vue 2和Vue 3的组件库或插件,而不需要维护两个独立的代码库。VueDemi由Anthony Fu创建,它的核心价值在于简化了跨Vue版本开发的复杂性,使得开发者可以专注于编写代码,而不必过多考虑底层框架的具体版本差异。VueDemi的工作原理是抽象出Vue 2和Vue 3之间的共性API,提供一套统一的接口,使得开发者编写的代码能够无缝运行在两个版本的Vue上。它通过动态地检测项目中安装的Vue版本,智能地返回对应版本。

2024-06-12 17:21:21 702 1

原创 vue项目,分页懒加载时候loading的小组件封装

在Vue中创建一个简单的懒加载时的Loading小组件,可以利用Vue的组件化特性来封装一个可复用的Loading指示器。

2024-06-12 14:27:39 619

原创 vue项目,封装一个websocket工具

在 Vue.js 项目中封装一个 WebSocket 工具是一个很好的实践,这样可以让你的代码更加模块化和易于维护。

2024-06-11 18:09:50 725

原创 前端聊天机器人 流式输出

在聊天应用中,当后端接收到或生成了新的聊天消息部分时,它立即通过SSE连接推送给前端,前端则即时显示这些新内容,从而实现了消息的“流式”呈现。在与诸如ChatGPT这样的大型语言模型交互时,流式输出能够让用户几乎即时地看到AI的回答,即使这个回答还在生成过程中,也能先看到部分结果,增加了互动的实时性和连贯性。前端聊天窗口界面使用流式输出,是指在用户与AI助手或其他用户进行聊天时,聊天内容不是一次性全部加载显示,而是随着消息的产生实时、逐步地显示在聊天界面上。

2024-06-11 18:01:25 412

原创 css 除了float:right能使得a、b两个元素展示为b、a的顺序,还有其他样式能实现

在现代网页设计中,Flexbox 和 Grid 布局因为其灵活性和对复杂布局的良好支持,成为了首选方案。,CSS 提供了多种方法来改变元素的布局顺序,从而实现元素的视觉重新排序。虽然这个方法本身不直接用于交换元素位置,但在某些特定布局结构调整中,通过让父元素“消失”间接影响子元素的排列,可能有帮助。如果是处理文本或简单的块级元素流,可以使用多列布局,但这通常不直接用于单个元素的顺序调整。Flexbox 是一种现代的、灵活的布局模式,可以很容易地改变项目顺序。属性来改变元素的排列顺序。

2024-06-11 16:59:44 358

原创 不同操作系统浏览器强制刷新 快捷键是什么

请注意,不同版本的浏览器和操作系统可能会有细微差别,但上述快捷键是目前普遍适用的标准。

2024-06-07 17:49:50 1751

原创 package.json中 “vue“: “^2.7.14“,这个^的作用

表示安装 Vue.js 的 2.7 版本系列的最新补丁或次要版本,但会限制在 2.x 的范围内,不会自动升级到 3.x 版本。这种方式帮助你保持项目的依赖相对最新,同时避免了可能引入重大不兼容变更的主要版本升级,从而减少了因依赖更新而导致的破坏性问题。是语义化版本控制(Semantic Versioning,简称 SemVer)中用于指定依赖包版本范围的一个前缀。

2024-06-07 16:21:32 216

原创 20个人月,大约是多少开发时间

"20个人月"是一个项目管理或软件开发中常用的概念,用来估算工作量。它表示的是如果一个人全职工作,每个月工作标准时间(通常是160小时,即假设每月工作20天,每天8小时),那么20个人月相当于这个人连续工作20个月的总工时。这意味着,如果是团队合作,20个人月的工作量可以是由20个人每人工作1个月完成,或者是10个人每人工作2个月,依此类推,根据团队规模和分配的时间灵活调整。[20 , \text{人月} \times 160 , \text{小时/人月} = 3200 , \text{小时}]

2024-06-07 15:32:18 232

原创 为什么vue 项目内node_module的.cache文件这么大,能有90个G

例如,旧的、不再适用的缓存文件可能不会被自动删除,尤其是如果项目依赖的某些工具或插件没有很好地处理其缓存策略时。文件夹之所以会变得非常大,主要是因为随着项目开发过程中的频繁构建和重新编译,Webpack 和其他构建工具(如 babel-loader、vue-loader、eslint 等)会在。这样做原本是为了加速后续的构建过程,避免每次构建都重新进行耗时的操作,比如解析和转换代码。文件夹变大是因为构建过程中的缓存累积,合理管理和清理这些缓存对于保持项目文件结构的整洁和优化磁盘使用至关重要。

2024-06-07 10:52:08 532

原创 vue 项目 node_module下的.cache作用

通常情况下,这些缓存文件对项目运行是可选的,也就是说,即使删除了它们,项目也能正常运行,只不过下一次构建或启动时,构建速度可能会变慢,因为所有缓存都需要重新生成。:除 Webpack 和 Babel 外,项目的构建过程中可能还会用到 ESLint、TypeScript 编译器、以及各种加载器和插件,它们也可能在。但请注意,在执行删除操作前,确保你的项目源代码是处于正常状态,并且没有正在进行的构建任务。目录中包含了 Webpack 的编译缓存,帮助在不做任何源码变动的情况下,快速重新打包应用。

2024-06-07 09:36:25 729

原创 createAsyncThunk完整用法介绍

是 Redux Toolkit 库中的一个功能,它用于创建处理异步逻辑的 thunk action creator。Redux Toolkit 是一个官方推荐的库,用于简化 Redux 开发过程,特别是处理常见的 Redux 模式,如异步数据流。自动处理了诸如派发不同阶段的 action(如 pending、fulfilled、rejected)、取消正在运行的异步操作等功能,使得编写异步 Redux 逻辑变得更加简洁和高效。

2024-06-04 17:43:27 459

原创 React useCallback用法

是 React 中的一个 Hook,它用于优化性能,通过缓存函数的引用来避免在组件的每次渲染时都创建新的函数实例。这对于避免不必要的子组件重新渲染特别有用,因为如果传递给子组件的回调函数在每次渲染时都不同,即使子组件自身没有状态变化,也会导致它们重新渲染。

2024-06-04 16:55:16 410

原创 window.top和window.self 分别是什么

此属性指向浏览器窗口的最顶层窗口,即没有任何框架包含它的窗口。是等价的,都是对当前上下文窗口的一个引用。在没有特殊框架结构的情况下,则总是指向执行当前脚本的窗口实例,提供了一种明确引用当前上下文的方式。引用的是同一个对象,但如果存在嵌套框架,即使当前窗口不是顶层窗口,总是指向当前正在执行JavaScript代码的窗口对象。: 此属性是对当前窗口自身的引用。不论当前窗口是不是顶层窗口,,因为它本身就是顶层窗口。会穿透所有嵌套的层次,指向最外层的窗口。帮助你获取或操作最顶级的浏览器窗口,而。

2024-06-04 09:37:08 640

原创 globalThis在各个环境下是什么

特性是在 ECMAScript 2019 (ES10) 中标准化的,因此在现代浏览器和Node.js版本中都应得到支持。总是指向当前环境的全局对象。值的属性,它提供了一个在所有JavaScript执行环境中都能稳定访问全局对象的标准方法。可以避免因环境差异而导致的代码编写复杂性,提高代码的可移植性。无论代码在什么环境下运行,是一个在JavaScript中用于访问全局作用域中的。

2024-06-04 09:34:39 382

原创 简要说明下.umd.js文件的作用

它的设计目的是为了让一个JavaScript模块能够在各种环境中无缝运行,无论是浏览器环境、Node.js环境,还是其他支持AMD(异步模块定义)、CommonJS或直接在全局作用域中使用的环境。文件,就能确保模块在不同平台和项目中都能正确工作,无需为每个环境单独提供不同版本的代码,大大提高了代码的复用性和维护性。UMD通过在代码中包裹一层兼容性逻辑,自动检测当前环境的模块加载机制,然后相应地导出或定义模块。这样,开发者只需要维护一个。

2024-06-04 09:20:45 361 1

原创 javascript,什么是ESM

ESM是ECMAScript Modules(ECMAScript模块)的缩写,它是JavaScript语言规范的一部分,正式引入于ECMAScript 2015(也称为ES6)标准中。ESM代表了一种官方的、标准化的模块化编程方式,旨在解决JavaScript长期以来在模块组织和加载方面的问题。

2024-06-04 09:09:57 321 1

原创 javascript的AMD模式

AMD(Asynchronous Module Definition,异步模块定义)是一种JavaScript模块化开发的规范,它主要应用于浏览器环境,用于解决浏览器端的模块化和异步加载问题。AMD规范由James Burke等人在开发Dojo Toolkit的过程中提出,后来通过RequireJS这样的库得到了广泛推广和应用。

2024-06-04 09:02:59 671

空空如也

空空如也

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

TA关注的人

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