自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 09 - 鉴权与权限及状态码

会把「不存在的 id」误报成 403,还会泄露「这条 id 是否存在」的信息。单条资源接口(GET/PUT/DELETE。,不写死在代码里,不提交 Git。放 password。

2026-06-26 21:21:31 18

原创 拓展-01-Express 类型扩展笔记

故意留了一个「可扩展的口子」。在 里大致是这样:关键关系:所以:不是直接改 的定义,而是扩展全局的 。扩展成功后,所有 的地方都会自动带上你的字段。TypeScript 允许同名 自动合并: + 也支持合并:3. 为什么需要 你的增强写在自己的文件里,不是在 包内部。文件有两种身份: 命名空间定义在全局里。你的 如果是模块,里面的 默认只是模块局部的,合并不了全局那个。下面两种写法二选一,不要两种都写。模块写法(推荐) — 文件里会有 /(例如配合 )时使用:含义:「虽然这个文

2026-06-26 16:54:40 65

原创 08 - Prisma API

当前用的是,下面按「从 Schema 到 API 调用」的顺序讲清楚。

2026-06-23 19:33:36 285

原创 07 - Prisma 入门配置指南

本文档记录 Node.js 项目中安装、初始化、首次迁移 Prisma,以及生成 Client 与配置数据库连接的完整步骤。

2026-06-23 17:44:34 253

原创 06 - Prisma Schema

是 Prisma 自己的 DSL(领域语言)。它描述「数据库里有哪些表、字段、关系」,Prisma 会据此:生成/迁移真实数据库表(migration SQL)生成 TypeScript 客户端类型和查询 API。

2026-06-23 10:54:16 252

原创 05- SQL 增删改查与核心语法讲解

北京 11 人、上海 2 人、广州 1 人,便于演示。后面写关联条件(通常是外键 = 主键);按某一列(或多列)分组,再对每组做。对一列或多列做统计,通常配合。或单独用在整表/筛选结果上。只计该列非 NULL 的行。当数据分布在多张表时,用。按关联键把行拼在一起。

2026-06-22 17:40:32 193

原创 04-PostgreSQL 学习笔记

开始菜单打开左侧,输入安装时设的postgres密码右键→。

2026-06-22 15:48:28 238

原创 Node.js + Express 入门实战笔记-03-CORS

浏览器会发请求,但若响应里没有合适的 CORS 头,浏览器会拦截 JS 读取响应,控制台才报 CORS 错。允许跨域请求携带 Cookie、 TLS 客户端证书(很少见)、HTTP 基本认证(浏览器弹窗那种,很少见)等凭证。预检通过后,浏览器才发真正的 POST(带 Authorization)是服务器通过响应头告诉浏览器「这个跨域请求我允许」的机制。所以 React(10086)请求 API(8080)属于。预检时声明客户端(浏览器)可以带哪些非简单请求头。浏览器缓存预检结果,减少重复 OPTIONS。

2026-06-18 15:17:38 274

原创 Node.js + Express 入门实战笔记-02-中间件详解

path 可选middleware 可多个Router 本质也是中间件。

2026-06-17 14:30:32 285

原创 Node.js + Express 入门实战笔记-01-基础

只做一件事:把请求 Body 里的 JSON 字符串解析成 JavaScript 对象,挂到。与 query string 相同,只是位置不同(放在 body 里))就可以导入同一个 Express 实例,并继续挂载业务路由。),区别在于参数所在位置:URL 查询字符串 vs 请求体。Query String(GET):参数在 URL 中。HTTP 请求报文发出(Body 此时为原始字符串)Form Body(POST):参数在请求体中。调试接口时,经常需要给请求添加 Body。

2026-06-16 18:32:17 312

原创 Taro-05-分包策略

antd、echarts、富文本编辑器等重库不要在入口文件、app.ts 或公共 layout 里引入。这是微信小程序特有的「物理分包」,和 H5 的 code splitting 是两套机制。没有 sideEffects 标记,打包器可能不敢 tree-shake。顶级前端不会一上来就改配置,而是先建立一套可复用的思维框架。适合:编辑器、地图、PDF 预览、复杂图表等「低频重功能」。不是把包拆小,而是把「用户现在不需要的代码」推迟加载。分包是「推迟加载」;越小越好,通常 < 100KB。

2026-06-13 22:24:31 177

原创 Taro-04-网络请求

boolean;params?// 定义一个新类型 HttpExtraConfig,它等于 RequestConfig 去掉 url、method、data 这三个属性之后剩下的部分。// TypeScript 内置工具类型,含义是:// Omit<某个类型, 要排除的键>// 第一个参数 T:源类型// 第二个参数 K:要从 T 里排除的属性名。

2026-06-13 19:47:32 271

原创 Taro-03-页面生命周期

组件挂载组件卸载所以 Taro 提供页面生命周期。

2026-06-13 19:47:00 198

原创 Taro-02-页面路由

不会把 Tab 页「压栈」,而是切换 Tab + 清理非 Tab 页。栈里最多只会剩 TabBar 页面,只会出现。是最彻底的重置,不管目标是 Tab 还是普通页,结果都是单页栈。2. 页面加载完成时(useLoad)——更常用于副作用。3. 页面再次显示时(useDidShow)路由配置在 app.config.ts。

2026-06-13 19:46:58 199

原创 Taro-01-基础

(当前规则可能随平台版本调整,但核心思想没变:主包要尽量小。Taro 是京东开源的跨端开发框架。直接写px,taro自动转换单位。是Taro开发必学技能。

2026-06-13 19:46:57 232

原创 canvas踩坑日记01

坑1:坐标系混用设置了后,还用(物理像素)做布局,会偏移/错位。应改用或。坑2:clearRect 清不干净受 transform 影响,clearRect参数也应使用当前坐标系(CSS 像素)。坑3:重复缩放用scale且重复调用会叠加;更安全。

2026-06-02 17:13:51 193

原创 图片预解码缓存

预解码 = 在图片真正要出现在视口里之前,提前完成 decode,把「压缩数据 → 位图」这一步做完。典型场景:列表里下一屏的头像、封面,轮播下一张,路由切换前,提前加载详情页大图。目标:显示时只做合成,不再临时 decode,首帧更稳。这里的「缓存」通常指:把已经 decode 好的位图(或可直接绘制的对象)留在内存里,下次再用同一张图时,跳过 decode。网络层:HTTP 缓存,同 URL 不必再下解码层:同 URL 的位图可能已在内存里,可见<img>再绑这个 URL 时更快层级。

2026-06-01 16:43:21 396

原创 preload,prefetch,preconnect

而 preload:在 HTML 阶段就开始下载,性能会提升很多。理解:HTTP 缓存 和 ES Module 模块缓存。所以后面真正请求资源时:直接下载,省掉大量等待时间。如果滥用:会抢占带宽。导致:真正关键资源反而变慢。若过早 prefetch 多个页面,会多占带宽。点击后才下载 chunk,常有 loading。浏览器:只有执行到 JS,才知道需要。默认浏览器:并不是立刻发现所有资源。发现 CSS / JS / 图片。字体特别适合 preload。而不是 preload。它们优化的是不同阶段。

2026-05-29 16:30:47 237

原创 由浅入深递归练习

正/反,数据从上(前)往下(后)推,或者从下(后)往上(前)推。👉 “提前 return” 是递归性能关键点。先写一个节点的逻辑,确保返回的数据符合预期。统计 name 长度 > 3 的节点数。后面的节点输出依赖前面的节点中的数据。再考虑其他节点,根据返回值做处理。如果 target = D。输出所有节点的 name。找到所有“上游依赖节点”

2026-05-25 16:35:48 212

原创 由浅入深了解css3动画

前端动画,是前端工程师“拉开差距”非常明显的一项能力。很多人会:但真正高级前端,会:你现在的目标,不应该是“记 API”。而是:建立一整套“动画思维体系”。你先记住一句:动画,本质是“让某个值随时间变化”。你必须理解浏览器渲染流程。最贵例如:宽高(width,height)位置信息(top,left)自身布局(margin,padding,font-size)等发生改变时,会影响外部布局或者内部布局,会触发:重新计算布局中等。例如:背景(background)、阴影(box-shadow)、颜色(color

2026-05-25 14:45:55 367

原创 统一缩放单位基础(px、em、rem)

字体固定16像素宽度固定200像素这是最“死板”的单位。

2026-05-20 15:33:49 225

原创 Object.keys / Object.values / Object.entries

≈ 获取对象所有可枚举 key。

2026-05-08 18:26:35 49

原创 set和map结构,减少O(n)复杂度

【代码】set和map结构,减少O(n)复杂度。

2026-05-08 18:26:17 77

原创 ...(展开运算符)和Array.from()

3. NodeList 转数组。2. Set 转数组。

2026-05-08 13:56:06 53

原创 React Flow + Zustand 搭建工作流编排工作台

用“拖拽 + 连线”的方式,定义一套执行流程一个 AI 推理流程的可视化编辑器拖节点(检测 / 分类 / 逻辑)连线(定义执行顺序)配置节点参数最终导出 JSON(给后端执行)index?: number;position?// 补充用于布局计算的位置信息// 优先使用 React Flow 传入的真实坐标,降级使用 data 中的坐标.x??250);.y??50);x: currentX, // 去掉随机偏移,让其完全水平居中对齐。

2026-04-15 16:12:50 337

原创 [特殊字符] React Flow 从入门到理解

👉 addEdge 就是:👉帮你生成一条“合法的边”并加进数组。

2026-04-15 14:48:30 383

原创 全局状态Zustand与事件总线Event Bus

浏览器原生自带很多事件,比如click(点击)、scroll(滚动)、load(加载)。但在复杂的业务中,这些不够用,我们需要定义自己的业务事件,比如这里的。就是用来创建这种自定义事件对象的构造函数。第一个参数这是事件的名字(类型)。就像给快递贴个标签,告诉接收方这是什么类型的包裹。第二个参数这是事件的配置项。detail是的核心属性,专门用来携带数据。在这里,我们将放入detail中。这意味着,当其他组件接收到这个事件时,可以通过拿到这两个变量。

2026-04-14 11:30:14 392

原创 文件切片上传

大文件上传系统,通过 Web Worker 计算文件 hash 实现秒传,通过服务端记录分片状态实现断点续传,并通过并发队列优化上传效率。同时设计 UploadManager 单例,使上传任务脱离页面生命周期,实现跨路由持续上传。

2026-04-03 17:32:08 322

原创 前端CSS Modules解决样式冲突

👉避免样式冲突 = 控制作用域 + 不污染全局最优解:✅ CSS Modules + 局部覆盖 antd。

2026-04-01 17:52:55 60

原创 前端性能优化之埋点监控实战

检查本地有没有离线数据,如果有,立刻尝试补发。监听js、promise报错,有网上报日志,反之离线缓存。一个成熟埋点系统 = 5部分。👉 不要乱埋点,必须结构化。埋点 ≠ 统计用户行为。

2026-04-01 17:10:51 51

原创 Form.Item两种用法

【代码】Form.Item两种用法。

2026-03-31 15:25:01 19

原创 form组件的一个高级用法

实际业务中遇到的,可编辑表格,多行同时为编辑态的时候,每一行Form.Item的组件必须有独立的 Form 字段这是,属于 Form 的一个很重要但很多人没有完全理解的高级用法。本质上是在定义。

2026-03-11 09:48:10 42

原创 path.join() 与 path.resolve()

只是拼接路径片段,结果可能是相对路径也可能是绝对路径,不做解析为绝对路径的操作。:给定的路径参数从右到左处理,直到构造出一个绝对路径,然而,最终的行为效果,等价于你在终端中从左到右依次执行cd命令。用法输入'a', 'b''a/b'输入同左(因为__dirname是绝对路径)是否依赖?❌ 否✅ 是返回相对路径?✅ 可能❌ 永远不会。

2026-02-02 17:29:56 414

原创 正则表达式基础学习

正则是一种描述字符串模式的工具。它可以用来查找、替换、提取、验证符合某种规则的文本。

2026-01-09 15:21:24 813

原创 requestAnimationFrame

是现代 Web 动画的黄金标准✅ 流畅:与屏幕刷新同步✅ 高效:后台自动暂停✅ 精确:提供高精度时间戳✅ 节能:减少不必要的渲染-------------------------------------------------------------分割线-----------------------------------------------------------transform(如translateX。

2026-01-04 11:01:06 1141

原创 JS中计算高度的几种方式

属性 / 方法包含 padding包含 border包含 margin包含滚动条受内容溢出影响返回类型是否受 transform/zoom 影响✅❌❌❌❌整数❌✅✅❌✅❌(若固定高)整数❌✅❌❌❌✅整数❌✅✅❌✅❌浮点数✅❌❌❌❌❌字符串❌。

2025-12-16 14:42:00 379

原创 canvas基础

canvas>是 HTML5 引入的一个画布元素,它本身就像一张白纸,没有内容,但你可以通过JavaScript在上面绘制图形、图像、动画,甚至是游戏和数据可视化。✅<canvas>默认是透明的。如果不设置width和height属性,默认是300x150px。CSS 设置的宽高会拉伸画布(可能导致模糊),所以建议用 HTML 属性设置尺寸。

2025-10-28 15:16:09 412

原创 常用的xshell命令

【代码】常用的xshell命令。

2025-10-27 15:44:46 227

原创 blob二进制数据与reader阅读器

Blob(Binary Large Object)是 JavaScript 中用来表示不可变的、原始的二进制数据的对象。图片(png, jpg)视频(mp4)音频(mp3)PDF 文件压缩包(zip)场景技术点图片上传预览img.src文件下载(导出)Blob读取用户本地文件内容大文件分片上传使用切片视频/音频处理。

2025-10-24 14:13:03 802

原创 常用的设计模式

高阶组件,用于包裹任何需要权限的组件。如果用户无权限,则显示“无访问权限”提示。对象之间一对多的依赖关系。当一个对象状态改变时,所有依赖它的对象都会收到通知。定义一个创建对象的接口,但由子类决定实例化哪个类。用于统一创建复杂对象。定义一系列算法,把它们封装起来,并且使它们可以互相替换。动态地给一个对象添加一些额外的职责,而不修改其原始结构。确保一个类只有一个实例,并提供一个全局访问点。为对象提供一个代理,以控制对原对象的访问。

2025-09-24 21:03:00 411

20240321100095223928.pdf

20240321100095223928.pdf

2024-03-21

空空如也

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

TA关注的人

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