- 博客(1057)
- 收藏
- 关注
原创 【React Native】Switch、Alert、Dimensions、StatusBar、Image组件
默认就是显示出来的,它还会根据设备的主题色,自动切换是黑色还是白色的。所以一般来说并不需要设置它。只有在某些全屏页面,不想显示状态栏的时候,可以这么写,加上。甚至还自带了图片缓存,默认设置的是使用磁盘缓存。所以,如果遇到 rn 和 expo 中都有的,可以优先使用 expo 中的。顶部那些电量、信号、时间等信息。可以控制它的颜色,以及是否显示。如果想增加里面的按钮,就往这个数组里,按照这个格式不断的加东西就行了。,其他的完全一样,也是可以正常显示的。用起来,只需要把引用改成。组件 用来显示图片的。
2025-07-14 18:23:24
356
原创 【React Native】ScrollView 和 FlatList 组件
它是一个专门用来渲染长列表的组件,用它可以实现按需渲染。当你滚动时,就动态加载新元素,回收不可见的元素。无论这个元素是否在屏幕的可见区域内,这样就会造成了大量的性能浪费。以下这种直接渲染在数据量少的情况下可以正常使用,但是一旦数据量非常大,可以看到字体很大的情况下,文本溢出,但是不支持滚动(因为。也是上下滚动的,这两个之间是有冲突的。了,它自己就可以实现滚动,就不要再额外加上。提示我们,不要把相同方向的虚拟列表,放到。不是上下滚动,而是横向的左右滚动,与。,就会变成横向滚动了。
2025-07-14 18:20:51
681
原创 【React Native】环境变量和封装 fetch
一般做开发,都会将接口地址配置到环境变量里。如果你用手机真机等局域网设备访问,就改成电脑的。要不然就得自己很麻烦的处理。封装请求文件之前,先去安装下。利用它,可以非常简单的拼接。建的项目里,也可以使用。在项目根目录新建一个。
2025-07-14 18:16:06
178
原创 【React Natve】NetworkError 和 TouchableOpacity 组件
这里有一个需要注意点,onPress={onReload} onReload 要么直接写,要么写成箭头函数的形式。,按钮的样子已经出来了。这个按钮,点击它,按住不放的时候,它会有个透明度的改变。这三个组件,使用方式都是一样的,只是在点击后,显示的有点小区别而已。是函数的直接调用,不论是否点击,都会直接执行。,需要传参时写为箭头函数。
2025-07-14 17:33:32
320
原创 【Vue】Vue3.6 - Vapor 无虚拟DOM
Vapor 模式是 Vue 3.6 推出的革命性无虚拟 DOM(VDOM)编译策略,通过编译时深度静态分析将模板直接转换为高效的原生 DOM 操作指令(如),彻底跳过虚拟 DOM 的创建、比对(Diff)和更新(Patch)流程,实现性能跃升(首屏渲染提速 44%、内存占用降低 29%、高频更新帧率提升 33%)与包体积缩减(最高达 67%),同时保留声明式开发体验,支持渐进式迁移(项目级或组件级启用vapor属性),但暂不支持 SSR 水合、Transition等高级功能。
2025-07-14 16:06:57
293
原创 office-ai整合excel
如果是 Microsoft Office 直接安装即可使用;如果是 wps,因为WPS默认不支持VB编辑器(Visual Basic for Application),所以需要先手动安装插件。office-ai 可以将ai功能整合到office中,提效摸鱼~实测从零基础到做完经理安排的任务大概花费 2 小时左右,至此,某一道题目下面的所有答案已按照正确的规则重新排版。,使其理解我们的需求,并完成excel整理。
2025-07-13 17:14:28
544
原创 【React Native】样式、网络请求和Loading
如果调试工具里,没有显示正确的数据。可能是调试工具,连接到之前运行的 App 上去了。可以在模拟器里或者真机里,将运行的 App 退出,然后按 i、a 或者扫码重新运行。这样子,页面上的元素,默认会从上向下排列。除此外,还有些其他属性的默认值不同,但用法都是和。这里有个需要注意的问题,如果用手机真机来预览,在扫码后,点击按钮,会发现没有任何反应。咱们的接口是运行在电脑上的,解决方法就是要将请求地址,改成电脑的。里,这种值,是与设备像素密度无关的逻辑像素点,千万不要加上。里的排版布局,默认是使用。
2025-07-11 18:47:31
519
原创 【React Native】原生组件
在 rn 中,View,Text,并不是HTML里的标签。它们都是原生组件,而且正因为是原生组件,所以在 安卓和 IOS 的显示不尽相同。StatusBar,它是用来控制显示屏幕顶部的电量、网络信息的。View,可以当成HTML里的div来用,也就是用来布局页面用的。可以用它来包住其他的一些组件。但是View不提供滚动,如果内容超出屏幕范围,就没法显示出来了。我们现在做一些尝试。在View的下面,再增加一个View。return里,只返回了一个元素。如果返回了<></>
2025-07-11 14:14:00
230
原创 【Node.js】文本与 pdf 的相互转换
添加一个时间戳来阻止浏览器继续使用缓存,以保证每次重新请求都可以渲染最新的pdf 文件数据。时,浏览器认为这是一个全新的资源(即使实际文件一样),所以会重新请求服务器,不会用缓存。),让浏览器下次访问同样的 URL 时直接用本地缓存,加快加载速度、减少服务器压力。主要使用 pdf-parse 这个库,直接识别提取我们 pdf 文件中的文字。中间件会自动为静态资源设置缓存相关的 HTTP 头(如。这样浏览器每次都会重新请求 PDF 文件。这是因为 Express 的。处理的,和接口响应头无关。
2025-07-08 22:52:36
708
原创 经典面试题 - LAZYMAN (HARDMAN / 懒汉)
实际工作中的场景:比如之前我们公司有一个场景是在后端接口按某种顺序调用,然后依次按照某顺序拼接响应结果,当时解决方案和上述问题类似,本质上都是。核心思路:构建队列管理任务,通过。方法,并满足特定时序逻辑。的方法转为宏任务,确保。
2025-07-08 15:48:41
211
原创 【JavaScript】setTimeout和setInterval中的陷阱
➡️ 执行任务需要 1.5s,但是设置interval 为 1s ,回调执行时间 .> delay。输出结果不是每隔 1 秒,而是任务积压执行,可能造成线程拥堵,主线程空闲时,任务接连执行。取决于事件循环,回调需要等待主线程执行完毕。浏览器中常见的最小延迟时间为 4ms ,避免过渡消耗资源。这样下一次任务的执行总是基于上一次任务完成后的时间来计算。,但实际执行时间可能远远大于 1000ms。虽然你写了 0 毫秒延时,实际上它会在。JavaScript 是单线程的,,不是准确执行时间。
2025-06-29 14:57:58
290
原创 【期末速成】编译原理
编译程序和解释程序的区别:编译程序产生目标代码(比如 C++ 产生 .exe 文件),解释程序不产生目标代码,比如 js 的 JIT。从开始符号出发,经过零次或多次推导所得到的、包含终结符和/或非终结符的符号串,叫做句型。推导是从文法的开始符号出发,按照产生式一步步替换,直到生成终结符串的过程。如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。一个文法所能生成的所有句子的集合,称为这个文法的语言。文法的二义性和语言的二义性是两个不同的概念。一个文法形成的语言是唯一的。
2025-06-22 22:03:29
893
原创 MCP基本概念
我们目前在配置Cursor中的MCP时,本质是在配置MCP Server,这些Server是由 不同的开发者提供的,他们基于标准化的MCP协议,做了个小的服务,这些服 务可能在本地也可能在云端,而我们实际上也完全可以按自己的需要去制作 MCP Server。为用户提供与LLM交互的接口,同时集成 MCP Client 以连接 MCP Server。在MCP的概念中,Cursor属于一个MCP的宿主应用(Host-app),而Cursor之所以 能使用MCP服务,是因为它内置安装了MCP Client。
2025-06-17 17:22:15
983
原创 【React源码解析】初识JSX
我们 jsx 语法要想被编译为浏览器可以识别的代码,需要使用 babel / swc 进行转义,下面以 babel 为例说明。转义 jsx -> js ,需要使用 @babel/plugin-transform-react-jsx 这个库。
2025-06-16 18:34:22
226
原创 【Three.js】初识 Three.js
我们开发 webgl 主要是使用 threejs 这个库,因为 webGL太难用,太复杂!但是现代浏览器都支持WebGL,这样我们就不必使用Flash、Java等插件就能在浏览器中创建三维图形。threejs 它提供-一个很简单的关于WebGL特性的JavaScript API, 使得用户不需要详细地学习webgl ,就能轻松创作出好看的三维图形样例。webgl 原生的 api 是一种非常低级的接口,而且还需要一些数学和图形学的相关技术。
2025-06-13 21:42:54
422
原创 【React】SWR 和 React Query(TanStack Query)
库简介SWR由 Vercel 团队开发,采用“缓存优先 + 数据同步”的策略,极简 API,适合 REST 接口场景。功能更全面、灵活度更高的异步状态管理工具,适合中大型应用,支持 REST/GraphQL。特点SWR关键词简洁、极致缓存、自动更新全能、丰富配置、请求控制强大适合人群追求极简代码的开发者构建复杂数据流、可控性的项目。
2025-06-12 21:00:18
665
原创 【React】RTK Query
优点描述🧠 状态自动管理不再手动写 loading/data/error 逻辑⚡ 自动缓存避免重复请求,提高性能🛠️ 接口集中配置统一 API 层结构♻️ 自动刷新标签系统自动刷新相关数据🔁 支持懒加载 / 轮询 / 重试满足各种场景需求。
2025-06-12 20:34:23
299
原创 【React】常用的状态管理库比对
React状态管理库选型指南:主流方案各有千秋。原生方案Context+useReducer轻量易用但性能受限;Redux Toolkit适合中大型项目但学习成本高;RTK Query专精数据缓存;Zustand以极简API著称;Jotai/Recoil擅长原子化状态;MobX则胜在响应式开发效率。建议根据项目规模选择:Demo用原生或Zustand;中小项目选Zustand/Jotai;大型协作项目用Redux;高频请求场景推荐RTK Query;原子化状态管理考虑Jotai;追求开发速度可选MobX。(
2025-06-12 20:16:28
692
原创 【React】使用 useContext + useReducer 实现一个轻量的状态管理库
使用 useContextuseReducer实现的轻量级状态管理,适合中小型 React 应用使用。
2025-06-12 19:54:09
630
原创 【期末速成】软件项目管理
➡️ 每花1元只产生0.85元价值 → 成本超支。贯穿全书,结合实践,尤其与需求说明书质量关系大。质量三要素:质量计划、质量控制、质量保证。不会让你写规格说明书,但要理解常识流程。(也叫 Planned Value):关键路径分析、进度估算、浮动时间等。:复习需求管理相关案例故事和图表。(也叫 Earned Value)由于截至 5月16日,任务1~4。(也叫 Actual Cost)需求获取方法与变更管理流程。:只赶关键路径上的任务。(B, C, F前置):组件化管理的优势。
2025-06-11 22:16:07
715
原创 【React】React 18 并发特性
传统的 React 是同步阻塞渲染:一旦开始渲染某个更新,就必须做完,不能中断,哪怕是非常耗时的任务,因此可能会发生阻塞。之前,有时候加载一个复杂的图表,或者切换到一个内容很多的页面,整个页面就突然卡住,这就是 UI 卡顿或者说主线程阻塞。React 18 引入的“并发特性中断当前的渲染任务,优先处理更紧急的更新(比如用户输入、动画)。将更新分片执行,避免阻塞主线程。自动调度优先级高的任务先执行,提高响应速度。支持延迟加载(lazy loading)和流式渲染(Streaming)。
2025-06-06 20:44:49
1208
原创 【React】useId
场景是否推荐用useIdlabel与inputtextarea等的 ID 配对✅ 是ARIA 属性如✅ 是SSR 页面保持一致性✅ 是用于生成数据库 ID、URL 等❌ 否如果在使用 React 17 或更低版本,可以用第三方库如uuid或nanoid作为替代,但在 React 18+ 推荐用useId来保证一致性和性能。
2025-06-06 20:15:50
684
原创 组件库二次封装——透传问题
这样写有一些问题,一是繁琐,二是可能传递的插槽个数不同,导致不同的渲染逻辑(业务要求)。在 vue 中 ref 是无法透传的,在 react 中可以通过 forwardRef 获取子组件。所以我们只能将子组件内部的原组件库 ref 挂载到外部 二次封装的组件 ref 上。透传的优先级会比组件自身的属性和事件优先级低。属性和事件的透传需要借助一个内置 api。插槽的本质是一个函数。
2025-06-04 16:31:53
501
原创 结合 AI 生成 mermaid、plantuml 等图表
AI 画图并不是真的让 AI 画一个图片,而是让 AI 根据你的需求,生成对应的需求文本,再根据 “文本画图” 来生成图片。mermaid 支持流程图、时序图、架构图等等多种图片绘制。当然最终生成的效果和样式会根据不同的“文本代码”渲染编辑器而不同。举一个例子,先把如下需求告诉 AI (比如我这里使用 ChatGPT):然后 AI 会生成代码(文本代码):然后把 mermaid 代码放到渲染工具中。markdown 文本中使用:将 markdown 代码格式标注为 mermaid 语言,即可看到对应图片
2025-06-03 07:52:16
1043
原创 Tree 树形组件封装
所以我们需要让 ts 配置(tsconfig.json)为支持 jsx 语法。packages\Tree\style\index.tsx (暂时无样式编写)package.json (通过 npm init -y 生成)tsconfig.json(通过 tsc --init 生成)原因是 node 项目模块化未指定类型。
2025-06-02 08:28:00
510
原创 【TypeScript】去除类型提示信息:This is an interface declaration. It‘s like a type alias, but it can be extende
这个插件在开始学习 ts 时会起到一定的帮助,但是后期可能是对我们这样具有代码洁癖的开发者造成干扰。插件或相关工具所添加的 Hover Tooltip。在 VSCode 中看到的蓝色下划线,并提示。的信息,其实不是报错,也不是语法问题,而是。可以忽略,不影响代码使用,也不会报错。
2025-06-01 16:25:13
255
原创 【CSS】CSS 和 SASS 的区别
Sass(Syntactically Awesome Stylesheets)是一种 CSS 预处理器,扩展了 CSS 的功能,使样式表更具结构性和可维护性。它提供了两种语法:Sass(缩进语法)和 SCSS(Sassy CSS,使用 CSS 样式的语法)。SCSS 是 Sass 的一种语法形式,兼容所有 CSS 语法,并添加了 Sass 的功能。([YouTube][1], [维基百科][2])
2025-05-27 17:49:24
480
原创 【React】jsx 从声明式语法变成命令式语法
在 React 中,JSX 是一种声明式的语法扩展,它使得开发者能够以类似 HTML 的方式描述用户界面。然而,在某些情况下,可能希望将 JSX 转换为命令式语法,以获得更精细的控制或满足特定的需求。
2025-05-27 16:02:52
1720
原创 【Vue】provide 和 inject 实现原理
provide和inject的核心原理可概括为:通过组件树的链式依赖查找实现数据注入,并依赖 Proxy 的响应式机制保障数据同步。其设计平衡了灵活性与性能,成为 Vue 生态中跨层级通信的优雅解决方案。开发者需根据场景合理选择响应式数据类型,并注意作用域边界以避免副作用。
2025-05-22 16:56:41
1145
原创 【Vue】将响应式对象转为非响应式对象
标记对象或属性,使其即使被嵌套在响应式对象中也不会转换为 Proxy。标记,跳过响应式转换。因此,合理使用这些 API 能精准控制响应式边界。:响应式依赖通过属性访问触发追踪,直接解构或赋值会破坏引用链。创建的代理对象的原始数据副本,解除响应式追踪。:通过重新赋值整个对象来“重置”响应式状态。基于 Proxy 实现,而。属性获取原始数据,而。从 Vue3 源码看,
2025-05-22 16:48:52
429
原创 【CSS】九宫格布局
repeat(3, 1fr) 表示三列等宽 1fr 表示一列的宽度。grid-template-columns 设置列宽。需处理元素间的默认空白间隙,适合需要行内特性的复杂组合。需手动计算容器宽度并清除浮动,适用于老旧浏览器环境。/* 行列间距统一 */
2025-05-22 16:11:54
682
原创 自动获取新版本 js 静态文件
代码里有静态js文件,发布一个版本1.0在真实环境,再修改重新发布2.0,用户如何得到新版本?• 用户无感知自动更新:旧版本文件仍保留在服务器,新版本通过新哈希文件名触发请求。属性:明确告知浏览器文件内容永久不变,避免重复验证(需配合哈希文件名使用)。• 注意:需手动更新版本号,且部分浏览器可能缓存带参数的URL(需配合。根据文件内容生成哈希,内容不变时哈希值不变,最大化利用缓存。• 自动加载带新哈希的文件,旧用户逐步过渡到新版本。• 协商缓存补充:对无哈希的普通文件使用。头,确保内容变化后触发更新。
2025-05-21 16:06:19
362
原创 【React Native】搭建项目
对于移动端应用来说,开发 Android 应用使用的语言有 java 和 kotlin,开发 ios 应用使用的语言有 obj-c 和 Swift。因此,我们使用 react-native 编写一套代码进行跨端开发。这里还有一个问题,可能报错:Uncaught Error: java.io.OException: Failed to downloadremote update。然后通过 npm start 启动项目,看到二维码使用 expo go 扫描即可构建启动项目。
2025-05-21 07:27:12
332
原创 【Vite】静态资源的动态访问
new URL和是较优解,前者适合简单场景,后者适用于批量处理。若对文件指纹无要求,可短期使用public目录方案,但需权衡缓存问题。
2025-05-19 22:37:17
854
原创 【VSCode】快捷键合集(持续更新~)
在点击位置添加新光标,支持同时编辑多处。:选中下一个匹配的单词,批量修改同名变量。执行任意命令(如切换主题、扩展功能)。:全局搜索符号(如类名、方法名)。:格式化整个文档,统一代码风格。:按文件名模糊搜索并打开文件。:拆分编辑器窗口(多列显示)。:跳转到变量/函数的定义处。(单步进入):逐行调试代码。:显示/隐藏左侧资源管理器。:快速切换已打开的文件标签。:向上/向下移动当前行。:向上/向下复制当前行。:全局搜索所有文件内容。:显示/隐藏集成终端。:输入行号直接跳转。
2025-05-17 14:52:59
635
原创 【VSCode】这些设置让你的 VSCode 操作更加得心应手(持续更新~)
【代码】【VSCode】这些设置让你的 VSCode 操作更加得心应手。
2025-05-17 14:32:09
178
原创 【微信小程序】一套代码多端渲染原理
• 逻辑层(JS线程):运行JavaScript代码处理业务逻辑和数据,使用独立的JS引擎(iOS为JavaScriptCore,Android为V8),与视图层完全隔离,避免阻塞渲染。• 视图层(WebView线程):负责渲染WXML/WXSS,使用WebView组件实现页面布局和样式,不直接操作DOM,而是通过虚拟DOM进行差异比对更新。• 小程序将WXML转换为虚拟DOM树,逻辑层数据变更时生成新虚拟DOM,通过Diff算法比对差异后仅更新变化部分,减少渲染开销。• 缓存策略:预加载常用资源,利用。
2025-05-15 09:13:57
405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人