前端开发中如何利用里氏替换原则(Liskov Substitution Principle)
在谈论软件设计模式和原则时,我们经常提到SOLID原则,它是面向对象设计的五个基本原则中的一个,其中L代表的是里氏替换原则(LiskovSubstitutionPrinciple,LSP)。这个原则是由BarbaraLiskov提出的,它的核心思想是:“子类对象应该能够替换它们的父类对象被使用,而不破坏程序的正确性。”在前端开发中,如果我们正确地应用了这一原则,那么我们的代码将会更加灵活与可维护
前端 · 阅读 753 · 2024年5月26日 12:48

探索Opossum: 在NestJS中实现断路器模式Circuit Breaker
在构建微服务或分布式系统时,服务间通信的可靠性至关重要。然而,在网络请求中,由于多种原因,调用服务可能会失败或响应时间过长。为了防止这种情况引起的连锁反应,可能会导致整个系统瘫痪,我们可以使用断路器模式(CircuitBreakerpattern)来提高系统的弹性。什么是断路器模式断路器模式是一种自动化的保护机制,能够防止一连串的失败引发更广泛的系统问题。想象一个电路断路器:当系统检测到一定数量的
服务端 · 阅读 2544 · 2024年4月7日 23:42

分治思想在排序算法中的应用 - 快速排序&归并排序
前言排序算法在编程中是最简单最基础的算法,同时快速排序和归并排序都是通过递归调用的方式进行排序的,对于递归而言,比较不好理解。记录一下快速排序和归并排序的Javascript代码实现以及两种算法的相同点与差异性。快速排序functionquickSort(arr){if(arr.length=1){returnarr;}constmid=Math.floor(arr.length/2);const
算法 · 阅读 2552 · 2022年6月18日 12:24

如何从PNPM迁移到Bun
在近几年的前端领域,包管理工具的变化层出不穷,从npm、yarn到pnpm,每一种工具都在尝试解决前端开发中的依赖管理问题。最近,一个新的JavaScript运行环境和包管理工具——Bun,引起了广泛关注。Bun不仅仅是一个包管理器,还是一个运行环境,它的性能和效率得到了许多开发者的认可。1.Bun特性介绍在迁移之前,你需要先了解Bun的基本特性。Bun目的是提供超高性能的JavaScript
前端 · 阅读 1086 · 2024年7月17日 11:30

Redux进阶 - Redux中间件使用(redux-thunk,redux-logger)
在Redux中,中间件是对dispatch函数进行扩展的一种方式,用来处理action和store之间的通信和交互。中间件的作用可以分为两类:一类是应用领域逻辑相关的中间件,一类是通用的、与应用领域逻辑无关的中间件。Redux需要中间件的原因是:通过中间件可以实现action和store之间的断点,方便地对action进行拦截和处理,在action到达reducer之前,执行某些额外操作(如日
前端 · 阅读 3024 · 2023年7月2日 12:59

Nodejs 使用 replaceAll 方法的四种方式
在Node.js中,可以使用几种方法来实现replaceAll功能,也就是在一个字符串中替换所有出现的子串。以下是一些常用方法:使用String.prototype.replace()与正则表达式在JavaScript(因此也包括Node.js)中,你可以使用String.prototype.replace()方法结合全局(global)正则表达式来替换所有匹配的字符串。例如:letstr="he
服务端 · 阅读 2581 · 2024年2月23日 16:37

探索 @nestjs/cqrs:在 NestJS 中实现命令查询责任分离模式CQRS
在构建大型和复杂的Web应用时,维护清晰的代码结构和高效的操作是至关重要的。NestJS作为一个现代的Node.js框架,提供了多种方式来帮助开发者编写结构化和可维护的代码。其中,@nestjs/cqrs模块就是一种强大的机制,它通过实现命令查询责任分离(CQRS)模式,使得代码更加模块化,业务逻辑更清晰,同时还带来了性能和安全性的提升。在本文中,我们将详细探讨CQRS模式的好处,并通过一个创建博
服务端 · 阅读 13886 · 2024年2月23日 17:41

TailwindCSS 如何设置 placeholder 的样式
前言placeholder在前端多用于input、textarea等任何输入或者文本区域的标签,它用户在用户输入内容之前显示一些提示。浏览器自带的placeholder样式可能不符合设计规范,此时就需要通过css进行样式美化。当项目中使用TailwindCSS处理样式时,应该如何通过TailwindCSS设置placeholder的样式呢?问题将input标签的placeholder样式设置成字体
前端 · 阅读 3518 · 2023年12月7日 00:10

基于 React 封装操作浏览器剪切板的 Hook - useClipboard
在Web开发中,我们经常会遇到需要操作剪切板的场景,比如复制一段代码、一个链接或者一些文本信息。React通过自定义Hook让这个过程变得既简单又高效。本文将教你如何封装一个useClipboardHook来操作浏览器的剪切板。开始封装useClipboardHook要创建一个useClipboardHook,我们需要使用两个基础的Hook:useState和useEffect,以及浏览器提供的C
前端 · 阅读 2356 · 2024年2月23日 13:49

优化React应用性能:使用React.lazy和Suspense实现代码分割
当我们构建大型React应用时,随着功能的增加,打包后的JavaScript文件往往会变得非常庞大。这将导致用户在初次访问应用时需要等待长时间的页面加载。幸运的是,React提供了一种简洁的解决方案来优化这一问题:React.lazy和Suspense。本文将深入介绍它们的用法,并通过实际案例来演示如何应用这两个强大的特性。React.lazy简介React.lazy是React官方提供的一个内置
前端 · 阅读 901 · 2021年12月19日 22:36
