- 博客(990)
- 收藏
- 关注
原创 微前端 - 以无界为例
切换页面时保留子应用状态,避免重复渲染。:主应用负责路由管理和子应用容器渲染。:适配无界生命周期,接收主应用传递的。:实现 JS 执行环境的完全隔离。传递和事件总线机制。:天然支持样式隔离。
2025-03-31 18:14:17
437
原创 【Git】前置知识
CVS和SVN都是是属于集中式版本控制系统(Centralized Version Control Systems,简称 CVCS)在git 之前,最先出现了 cvs,然后出现了 svn,最后才是 git。现在 cvs 和 svn 已经基本不再使用了。Git是属于分布式版本控制系统(Distributed Version Control System,简。安装Git后,要做的第一件事就是设置你的用户名和邮件地址。
2025-03-07 15:30:02
636
原创 【已解决】在一个网站下载pdf文件,在edge极速模式下下载报错,但是切换到兼容模式(就是使用IE的模式)可以正常下载This request has been blocked; the conten
报错:在一个网站下载pdf文件,在edge极速模式下下载报错,printExamCert:1 Mixed Content: The page at ‘https://ntcebm2.neea.edu.cn/apply/memapp/doLogin#’ was loaded over HTTPS, but requested an insecure form action ‘http://ntcebm2.neea.edu.cn/apply/common/mydown?
2025-03-07 09:34:19
429
原创 【Nest】swagger 接口文档
通过这些配置,Swagger UI 会自动在每个请求中添加 Authorization 头,并允许用户输入 JWT Token。name: ‘Authorization’:指定请求头的字段名为 Authorization。scheme: ‘bearer’:指定认证方案为 Bearer Token。in: ‘header’:指定 Token 位于 HTTP 请求头中。:在 Swagger UI 中直接测试需要 Token 的接口。:定义创建用户接口的请求体字段。:为创建用户的接口添加描述。
2025-03-06 16:49:34
375
原创 【Nest】自定义装饰器
•参数装饰器:用于从请求上下文中提取数据(如请求头、查询参数、用户信息)。•方法/类装饰器:结合元数据反射,定义路由的额外逻辑(如权限、日志记录)。目标:快速获取客户端语言偏好或设备类型。// 定义装饰器 accept-language.decorator.ts},使用方式// 根据语言返回本地化内容。
2025-03-06 16:38:57
443
原创 【Nest】守卫
这里是自定义的装饰器。身份认证:验证用户是否登录(如 JWT 校验)。权限控制:检查用户角色或权限是否满足条件。路由过滤:根据业务逻辑动态拦截请求(如 IP 黑名单)。
2025-03-06 16:27:09
316
原创 【Nest】管道
一旦注册,该管道会应用于所有的控制器和路由处理程序,而无需在每个地方单独配置。验证请求数据的有效性,确保数据符合预定义的 DTO(数据传输对象)规则。:将前端传递的可能是字符串类型的参数转换为整数,若转换失败则抛出异常。:将请求数据自动转换为目标类型(例如将字符串转换为数字)。:其他管道根据需要在特定路由或参数上使用,避免过度转换。:检查请求体中的必填字段、格式(如邮箱、密码强度等)。:验证参数是否为有效的 UUID 格式。:验证查询参数或路径参数是否合法。:将字符串参数转换为浮点数,类似。
2025-03-06 10:29:06
999
原创 【Nest】文件下载——普通下载和流式下载
或者可以直接使用 axios (里面有一个相应类型的配置),可以直接触发流式下载。,告知Axios将响应数据解析为二进制流。直接对服务端中的某个路径进行响应下载。
2025-03-06 09:04:17
355
原创 【Nest】图片(文件)上传
为避免文件名冲突,可通过以下方式生成唯一标识:•时间戳 + 随机数:如。•UUID:安装uuid${uuidv4${extnameimport {import {import {
2025-03-05 21:41:48
684
原创 【类型报错】nest11 项目中使用 __dirname, process 等报错:Corresponding file is not included in tsconfig.json
process属于 Node.js 全局变量,需通过类型声明文件(安装依赖配置在中显式声明 Node.js 类型:{此配置会加载中的全局类型定义。
2025-03-05 17:32:27
246
原创 【Nest】中间件
类型适用场景特点类中间件复杂逻辑、依赖注入支持模块化配置,可复用性高函数中间件简单逻辑、快速实现无需类结构,轻量级全局中间件跨路由统一处理(如日志)仅函数形式,需在入口文件配置第三方中间件跨域、限速等通用功能直接复用 Express 生态。
2025-03-05 16:31:36
375
原创 【Bug记录】session({ ^TypeError: (0 , express_session_1.default) is not a function
import 导入错误。
2025-03-05 10:52:07
107
原创 【JavaScript】为对象设置私有属性
需要 ES2022+ 环境支持,旧浏览器需通过 Babel 等工具编译。注意:private 关键字是 ts 中的,js 没有这个关键字。代理对象,拦截属性访问并过滤私有属性(如以下划线。:语法直观、强制封装、无内存泄漏风险。:每个实例独立存储方法,占用更多内存。:内存自动回收、无命名冲突风险。仍可遍历到 Symbol 键。:性能较低,需手动维护拦截逻辑。:属性键唯一,避免命名冲突。:无强制约束,外部仍可访问。:兼容旧环境,实现简单。:灵活控制属性可见性。
2025-02-26 13:11:35
435
原创 CDN 和 Service Worker 简介
CDN(内容分发网络)CDN是一种分布式网络架构,通过在全球多个地理位置部署缓存节点,将静态资源(如图片、视频、CSS/JS文件等)缓存到离用户最近的节点,实现快速访问。其核心目标是减少网络延迟、降低源站负载,并提升用户体验。工作原理:用户请求资源时,CDN通过全局负载均衡(GSLB)选择最优节点,若节点已缓存资源则直接返回,否则回源获取并缓存。Service Worker是运行在浏览器后台的独立脚本,可拦截网络请求、管理缓存,并支持离线功能。
2025-02-25 16:56:50
411
原创 微前端简介
微前端(Micro Frontends)是一种将大型单体前端应用拆分为多个独立模块的架构模式,旨在通过分治策略提升开发效率和可维护性。模块化:将复杂应用拆分为独立的小型子应用,每个子应用可独立开发、测试和部署。技术无关性:允许不同子应用使用不同技术栈(如React、Vue),便于团队灵活选择工具。独立性与隔离性:子应用运行时状态隔离,避免全局变量或样式污染。渐进式重构:支持逐步替换旧系统模块,降低技术升级风险。
2025-02-25 15:11:16
485
原创 对比 Vue 中的 defineAsyncComponent 和 React 中的 lazy
配置灵活性Vue 的提供更细粒度的控制(如加载延迟、超时、错误组件),适合需要复杂交互的场景;Reactlazy更依赖Suspense和生态工具,配置较为简洁。错误处理机制Vue 内置错误处理组件,React 需通过 Error Boundaries 实现,后者需要额外编码。与路由集成Vue 的异步组件可直接用于路由配置,而 React 需手动结合路由库(如 React Router)。Vue3。
2025-02-25 10:35:53
1089
原创 【React】React 性能优化
在最后插入数据有无key 意义不大。前面插入数据如果没有 key 后面的节点都需要修改,如果有key ,原节点只需要移动,不需要修改。React 在props 或者 state 发生改变时,会调用 React 的render 方法,创建一颗不同的树。:父组件渲染(父组件render 调用,所有子组件的render 都会重新调用)、(SCU) 生命周期,进行强制渲染。React 18 的更新流程基于。、Context 变化等。
2025-02-22 21:34:09
1191
原创 【React】React 基础(2)
React中 setState 的时候会调用 render(),但是 Vue 相对来说是一个看不到的操作。如果只有一个,那么children 是一个子节点的对象。所以,如果我们在代码中直接使用 babel 转换后的代码(全部改为 js 的写法),而不是 jsx 语法,一样可以正常开发。Vue 中的插槽用法完全通过 React 中的父子组件通信搞定,因此React 相较于 Vue 来说,灵活程度大大提升。为了方便阅读,我们通常在jsx的外层包裹一个小括号(),这样可以方便阅读,并且jsx可以进行换行书写;
2025-02-22 19:24:26
880
原创 Vue 和 React 响应式的区别
Vue 适合:快速开发、中小型项目,希望减少手动优化的场景。React 适合:大型复杂应用,需要高度控制更新逻辑的场景。
2025-02-21 11:45:33
677
原创 【Vue3源码解析】响应式原理
Vue3.4 版本之前最后的一层,也就是 nameDepMap 这一层是 Set 结构,但是从 3.4 版本开始,变成了 Map ,用来记录 track 的 id,然而Vue3.5对该部分又进行了重构,不再记录id,只能说学的速度永远跟不上技术更新的速度~函数定义副作用(如组件渲染、计算属性、侦听器等),并在数据变化时自动重新运行。,记录当前正在运行的副作用(如组件的渲染函数)。管理数据与副作用(如组件渲染函数)的关联。对象对原始数据进行代理,拦截对数据的。,它更高效且支持更全面的数据操作。
2025-02-15 21:02:36
408
原创 【Vue3源码解析】应用实例创建及页面渲染
因此 createRenderer 才是创建渲染器的代码实现(有2000行代码,这里不再粘代码)。在打包后的文件夹内创建一个自己用来测试的 demo 文件夹,我这里叫做 heo 文件夹。// 创建全局 app对象,调用 mount 方法挂载到页面上。// 创建全局 app对象,调用 mount 方法挂载到页面上。之后就可以编写自己的测试程序,debugger 调试代码。这里要注意 pnpm 的版本不能太低,我此时的版本为。
2025-02-13 16:20:55
1182
原创 【JavaScript】异步编程汇总
当我们需要的时候,给予调用者一个承诺返回(比如我们的fetchData就会返回一个承诺):待会儿我会给你回调数据时,就可以创建一个Promise 的对象;在早期没有 Promise 的情况下,解决回调地狱确实是比较棘手的一个问题。这种方式在处理简单异步任务时还算有效,但随着异步操作的复杂性增加,特别是在多个异步任务需要依次或并行执行时,回调函数会导致所谓的“回调地狱”问题。当然,在Promise、Generator、await、async出现之后,对于异步的处理,变得非常的简单和优雅了。
2025-02-12 23:38:42
1854
原创 【JavaScript】this 指向由入门到精通
默认绑定:① 非严格模式:全局对象(window) ② 严格模式:undefined隐式绑定:对象方法调用的this值:① 调用者使用 new 方法调用构造函数,构造函数内的 this 会绑定到新创建的对象上。箭头函数,this 指向由外层作用域决定。apply / bind / call 方法调用,函数体内的 this 绑定到指定参数的对象上。// 为整个脚本开启严格模式// 为函数开启严格模式如何改变this指向,有2类改变this调用函数时并传入具体的thiscall。
2025-02-10 23:52:56
973
原创 【React】Two output files share the same path but have different contents: node_modules\.taro\weapp\pr
【代码】【React】Two output files share the same path but have different contents: node_modules\.taro\weapp\pr。
2025-02-03 20:31:50
199
原创 【数据结构与算法】力扣 5. 最长回文子串
这个方法利用了回文串的对称性质,通过。进行扩展,找到最长的回文子串。,更新最大回文子串的范围。中最长的 回文子串。来查找最长的回文子串。
2025-02-03 10:49:01
639
原创 Echarts 封装通用组件
相关文件可以去我的 gitee 下载:https://gitee.com/hao-xiugong/management-vue-ts。
2025-02-02 12:15:02
556
原创 按钮权限控制
接上文权限控制:https://blog.youkuaiyun.com/XiugongHao/article/details/145337904?
2025-02-02 12:08:00
197
原创 根据接口规范封装网络请求和全局状态管理
axios (request)封装见:https://blog.youkuaiyun.com/XiugongHao/article/details/143449863。
2025-02-02 11:40:02
323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人