Vite配置 vite 可以说是开箱即用,不用过多配置vite 利用ESM,不像webpack构建工具取分析引入,打包构建;而是直接保持模块化,省去编译时间,代码更改后构建速度提升构建生产环境下,使用了rollup。
webpack Webpack 是一个开源的前端模块打包工具,它可以将多个模块和资源文件打包成一个或多个输出文件。Webpack 的工作方式是从一个或多个入口文件开始,递归地解析所有依赖关系,然后将这些依赖关系打包成一个或多个包。 Webpack 提供了一个丰富的插件系统,使得开发者可以根据需要自定义 Webpack 的行为。它还提供了一个命令行界面和一个配置文件,方便开发者进行配置和管理。Webpack 广泛应用于现代前端开发中,它可以帮助开发者提高开发效率,优化代码性能,并且实现复杂的前端架构。
TypeScript 类的使用 (三) 使用private修饰构造函数,让该类不能通过new实例化在 单例模式时 使用,定义一个静态属性接收实例,通过一个静态方法暴露该实例,方法内部判断这个静态属性是否为空,不为空则创建实例,有则直接返回,保证实例只存在一个if (!
TypeScript 函数类型 (二) 重载 根据不同的参数类型做不同处理,一般这个参数类型是有限的。ts中的重载是伪重载,只是类型重载,不是逻辑重载。函数返回类型可以为void,意思为不校验返回值,在某些时候函数有没有返回值是没有意义的。ts中this需要手动指定。默认是函数的第一个参数。,可以将这个入参变为可选,但是只能用在入参最后。根据上下文推导,根据位置来进行推导,也就是。函数需要定义类型的有三个地方。的类型常用于表达式定义的函数。,可以传入不指定数量的参数。
大文件分片上传-设计与实现 分片顺序索引,当把分片交给不同辅助线程时,处理结果并不清楚,为了使回传分片顺序正确,这里还需要计算每个线程开始索引和结束索引,结束索引这时候由于之前向上取整可能会大于分片数量,这时候需要将结束索引进行矫正。线程完成数,为了验证分片完成,还需要统计线程完成分片的数量,当这个值与线程数量相同时表示完成了分片,当一个线程完成时可以将该线程进行清除。线程数量和每个线程多少分片,这里可以考虑到分片时会有MD5编码,是同步完成编码,是个耗时操作,会阻塞主线程,为了避免阻塞主线程,这里用。
TypeScript 基础类型(一) 它是 JavaScript 的超集,具有静态类型检查和面向对象编程的特性。TypeScript 的出现,为开发者提供了一种更加严谨和高效的开发方式。、静态类型检查。通过静态类型检查,开发者可以在编译时发现错误,而不是在运行时。这有助于减少调试时间,提高代码质量。TypeScript 支持多种类型注解,包括基本类型(如 number、string、boolean 等)、数组、元组、枚举、接口、类等。面向对象编程支持类、接口、继承、多态等面向对象编程的核心概念。
css预编译器--sass 提供了 变量(variables)、嵌套规则(nested rules)、 混合(mixins)、 函数(functions),目前我使用最多的还是变量和嵌套规则,貌似目前css也支持嵌套了,css预编译实际上是为了简化css编写,最终编译后还是css。
请求取消(多种) 对象实例,作为一个选项传递进入请求的选项对象中,就是作为请求第二参数对象的属性,这将 signal 和 controller 与 fetch 请求相关联,并且允许我们通过调用 AbortController.abort() 去中止它,接口表示一个控制器对象,允许你根据需要中止一个或多个 Web 请求。请求,特别适用于需要及时取消请求的场景,如用户取消操作或超时处理。要完成请求取消,就必须要与异步请求进行通讯,使用。可以使用 abort() 方法来实现请求取消。内部API并不能实现请求的取消,需要借助。
浏览器事件循环 (event loop) JS是一门单线程的语言,因为JS执行在渲染主线程中,为了防止渲染主线程的阻塞,采用异步的方式,碰到耗时任务时交给其他线程处理,自生立即结束当前任务,执行后续任务,而耗时任务的回调函数包装成任务,加到任务队列中末尾,等待调度执行
Node.JS---npm相关 node.js 是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能、可扩展的网络应用程序。node的出现使JavaScript也能编写服务端应用程序。npx是npm5.2.0版本新增的命令, 用于执行依赖包中的命令, 例如: npx webpack, npx jest等npm私服是一个npm仓库,用于存放npm包,类似于maven私服
网络-HTTPS Http 存在不安全、无状态、性能低、可伪造等问题,为了解决Http的这些缺点,发展出了HTTPS协议,它在HTTP的基础上增加了安全性,通过使用SSL/TLS协议对数据进行加密和认证,提供了更安全的数据传输方式。HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP协议的安全传输协议。它通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对数据进行加密和认证,提供了更安全的数据传输方式。
网络-WebSocket demoWebSocket是一种通信协议,它通过单个TCP连接提供全双工的通信通道。它允许客户端和服务器之间进行实时的双向通信。与传统的HTTP请求不同,WebSocket建立了客户端和服务器之间的持久连接,从而实现了高效和低延迟的通信。要建立WebSocket连接,客户端向服务器发送WebSocket握手请求,服务器则以WebSocket握手响应进行回应。一旦连接建立,客户端和服务器都可以异步地发送消息。
网络-SSE 本文主要记录SSE通讯的简介、使用、以及原理和一个ChatGPT返回数据的demo。SSE(Server-Sent Events,服务器推送事件)是一种用于在浏览器和服务器之间实现实时、单向通信的Web技术。它允许服务器向客户端推送数据,而无需客户端发起请求。与传统的HTTP请求-响应模式不同,SSE建立了一种持久的连接,通过这个连接,服务器可以随时向客户端发送更新的数据。这种实时通信的方式非常适用于需要实时更新数据的应用,如聊天应用、股票行情、实时监控等。
网络-fetch 本文主要记录浏览器与服务端网络通讯 fetch 的介绍与使用,将完成get、post、进度、取消请求、和超时请求的功能实现。fetch作为继XMLHttpRequest的网络通讯手段,在使用方面极大的简化了使用方法,通过直观的语义化调用方式让代码更具有可读性,但是它对于一些复杂问题确实有待提高,也有一些实验性的更新还在尝试,如获取请求进度、设置超时时间、中断请求等,他自身都不能完成,需要借助外界的力量。fetch请求目前来说处理简单请求,日后等fetch API完善吧。其他复杂的请求还是使用ajax。