自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 React Native - 热更新且重载app后,新加的iconfont渲染失败

虽然热更新后,执行了 Updates.reloadAsync()重载jsbundle 但是此方法仅仅重置js层缓存的字体、图标库的映射关系。没有重置Native层的。

2026-07-15 14:36:23 230

原创 Android 状态栏 / 底部导航栏 透明配置指南

与 Android 15+ / targetSdk 35 方向相反,仅适合过渡期或快速对齐官方 Demo。,页面背景从屏幕最顶连续绘制,勿再给 header 单独套渐变。RN 无 NavigationBar API → 靠。未来可能被移除,新功能勿依赖。旧安卓系统的 API。,与状态栏成对配置。

2026-07-13 10:18:22 257

原创 eas 热更新相关

构建完成后,该标识会被记录在应用中。进行热更新时,系统只会拉取与该标识匹配的热更新资源包。热更新命令:eas update --channel [channel name] --message “测试版本1.0.1”打包命令:eas build --profile [profile name] --platform all。Profile 是 eas.json 配置文件中环境的简称,用于构建时指定运行哪组环境配置。备注:我理解应该使用平台特定运行版本。发布后 EAS 服务器会将更新分发给所有。

2026-05-08 17:31:38 385

原创 flashList

优先使用 FlashList替代 FlatList,尤其是列表可能超过 100 项时。深入理解,这是实现类微信聊天体验的关键。在数据层预处理渲染所需信息,减少renderItem的计算负担。始终提供稳定的,这是 FlashList 正确工作的基石。善用和,平衡首屏速度与滚动流畅度。监控内存和 FPS,在低端设备上验证优化效果。

2026-03-11 16:42:52 430

原创 jotai

默认用 localStorage;getItemsetItemremoveItem必须是同步的,否则 Jotai 的 hydration 会不对。用把「存字符串」的接口适配成 Jotai 需要的 storage。

2026-03-11 16:23:45 442

原创 React 19 【use】hook使用简介

声明式等待 = 不手动管理 loading/error state,而是声明“我依赖这个资源”让React 控制等待Promise 必须来自稳定来源pending / success / error 是渲染结构,不是 state解决的是条件依赖问题use() 不是为了写得更炫,而是为了让“数据依赖”变成声明式的一等公民。

2026-01-29 12:08:23 866

原创 【安卓 - 小组件 - app进程与桌面进程】

本文介绍了Android系统中的三类工作动作与三种进程的关系。三类动作包括:1)静态UI渲染,2)本地数据处理与UI更新,3)网络/数据库等耗时操作。三种进程分别为:1)Launcher桌面进程,2)已启动的app进程,3)未启动app时的临时广播进程。静态UI渲染主要在Launcher进程运行,其他动作根据app状态在app进程或临时进程中执行。特别指出耗时操作需要CoroutineScope等支持,若在临时进程中运行可能被系统终止。

2025-11-14 10:40:14 184

原创 【安卓 - 小组件】图片的渲染

类型例子存储位置是否跨进程可读小组件可直接用?是否需 decode?file://应用私有目录❌ 否❌ 不可用✅ 需 decodecontent://⚠️ 可能(取决于授权)❌ 不可用(Launcher无权限)✅ 需 decodeBitmap内存中✅ 可直接用✅ 可用❌ 已解码下载 → 缓存(file 或 content URI 都行)在 App 进程中用 BitmapFactory.decodeStream / decodeFile 解码成 Bitmap。

2025-10-28 12:06:51 718

原创 移动端 (RN) - 键盘弹出, 不遮挡输入框 (和 底部按钮)的处理方案

其实和底部按钮没啥关系。但是,我们可以通过设置bottomOffset,来控制 滚动距离,让底部按钮也不被遮挡。自动调整 ScrollView 偏移,确保。

2025-10-22 16:43:45 483

原创 adb常用命令

【代码】adb常用命令。

2025-10-11 17:53:16 162

原创 react 错误边界

【代码】react 错误边界。

2025-08-17 18:14:25 312

原创 dva.js的subscription

Dva.js 中的是一个用于的 API,通过监听数据源(如等)触发副作用(如更新状态、发起异步请求),从而增强应用的响应性。

2025-08-17 10:30:14 373

原创 react性能优化

React 应用性能优化是一个系统工程,需要从多个层面进行优化。

2025-08-05 14:30:45 846

原创 react hook组件衍生数据的定义方式探讨【const \ useState\ useRef \ useMemo】4种方式极其在useEffect里变更时的场景分析

若,某些内容跟 【状态变量】(特指:使用useState管理的数据)有一些简单的关联性,且需要渲染。比如简单的取反、取长度之类的。则可以考虑 使用c = 【对stateX的一系列操作】或渲染时直接arr.length这种类似操作,来进行赋值和展示。不需要特地使用 state管理起来。这样比较浪费资源。若,某些内容跟 【状态变量】(特指:使用useState管理的数据)有一些复杂的关联性,比较耗费性能那种,则需要特地使用 state管理起来,并使用useEffect监听相关状态,并进行复杂的赋值。

2025-04-29 17:29:38 706

原创 Linux系统中的 sudo 权限会导致环境变量失效。

环境变量丢失:nvm 依赖的 PATH、等环境变量是通过用户 Shell(如 ~/.bashrc 或 ~/.zshrc)加载的。使用 sudo 时,Shell 会以 root 身份重新初始化环境,忽略用户的 ~/.bashrc 或 ~/.zshrc文件里的 配置。权限切换:sudo 以 root 用户 身份执行命令,root 用户的环境变量和当前用户(user)的环境变量是隔离的。但是sudo 无法使用nvm命令。在 ~/.zshrc已经配置了nvm的路径。(可以先尝试不使用sudo ,是否能够完成)

2025-04-17 15:19:04 706

原创 react-native搭建开发环境过程记录

主要参考:官网的教程 https://reactnative.cn/docs/environment-setup环境介绍:macos + ios。

2025-04-17 14:41:22 1017

原创 取消请求:axios.

不可重复使用: 一个 AbortController 只能取消一次,如需多次取消需创建新实例。兼容性: 所有现代浏览器均支持 AbortController,IE 需 polyfill。错误传播: 取消的请求会进入 .catch(),需明确区分取消和其他错误。浏览器的原生api。所有的请求库都能使用这个方法。如下图,这个接口就被cancel了。

2025-03-05 12:07:53 787

原创 xlsx.js 读取excel文件

需求:读取一个excel文件。

2024-11-07 14:50:19 1223

原创 部署到github-pages后, 切换路由,前端路由缺失github上的项目名【已解决】

原因:使用此方法,页面刷新,没有后端支持的路由 URI 会被 github pages 当做真实的地址去请求资源,从而导致被引导到 github 的404 页面。Github Pages无法处理history模式的前端路由。直接使用 hashRouter。同时注意修改【组件外】 【编程式路由导航】如下图step2所示。其他位置(比如路由表、组件内的编程式路由导航)是不需要修改的。且此方法部署后,刷新页面,不会404.或者 直接用hash模式。

2024-10-29 14:42:46 848

原创 部署后,页面白屏,获取静态资源的接口404 问题解决

(我在这里做了一个环境的区分。所以需要从环境变量文件里读取。打开控制台,发现静态资源的地址不对 缺少的项目名。

2024-10-29 11:44:12 446

原创 防抖 节流

【代码】防抖 节流。

2024-10-23 22:42:01 192

原创 如何将一个前端项目装进 docker image 里

一般不要映射到 2 位数,2 位数的端口,尤其是 2 位数的端口,很多都是系统保护端口,有内置用途的,不开放的。自己的应用一般都是运行在 4 位数的端口,比如你前端默认就是 3000 端口,Java 服务默认 8000。下图是使用前两种方式做的 images. 可以看出 build 后使用 anywhere 会缩小 images 的 size。也支持在我们本地里使用。<源路径>:当前 dockerfile 文件所在的上下文(context)为基础的相对路径。<目标路径>:可以是/app 的相对路径。

2024-10-20 11:52:23 741

原创 webpack自定义插件 ChangeScriptSrcPlugin

【代码】webpack自定义插件。

2024-10-19 13:39:33 544

原创 vscode缩进 和自动格式化

prettierrc.cjs文件。此处决定缩进几个tab。vscode 的设置。如下图,缩进太大了。

2024-09-23 14:46:15 869

原创 react router v6

2种方式生成路由表备注:本案例,除了登录页所有页面都包含在 layout 组件里。layout 组件对应的路由为’/’

2024-09-22 12:15:22 650

原创 is NaN

isNaN : 如果给定值在被转换为数字后为 NaN 则返回值为 true;否则为 false。因为 任意字符串、undefined 被转换为数字后都为 NaN。lodash.isNumber : 数字、NaN Infinity, -Infinity 都为为true。Number.isNaN: 只有NaN 为true 其他都是false – 官网推荐使用。lodash .isNaN: 同上。

2024-09-11 15:29:09 209

原创 async await 遇到reject的情况怎么处理

【代码】async await 遇到reject的情况怎么处理。

2024-08-23 17:37:24 881

原创 react 定时器内闭包的存在导致 数据无法及时更新

需求:React Hooks useEffect使用定时器,每3秒更新一次值实际,页面展示MyV 一直是 1。因为setInterval会行程一个闭包。此闭包内用到的的上下文的state都是创建时的初始值。因此时,MyV一直都是 0。

2024-06-24 18:09:49 631

原创 ExcelJS 下拉选择 dropdown、 加密(encryption)文件 、导出文件

使用 ExcelJS 给某一列设置下拉选择 的 3个方法。

2024-01-10 17:59:41 2013 1

原创 react 路由v6

必须存在,包裹最外层奥。

2023-12-24 16:06:25 880

原创 为什么react call api in cDidMount

3、渲染过程是非常快的,即使放到了cWM,也不会让接口快很多。API数据到达前端的时候,必定晚于初次渲染。必定会导致re-render,因此,放到cWM也会导致重新渲染。5、ssr 会让cWM走一次,然后管理端再走一次。–本人未实践,参考资料里这么写的。4、如果放到cWM,会让人误以为等到数据拿到后才去渲染页面。2、17版本后的react 由于fiber的出现导致 cWM 会调用多次!首先,放到constructor或者cWillMount不是语法错误。(那么,17之前的react为什么要如此建议呢?

2023-12-23 21:05:07 770

原创 ts declare 的用法、和export的区别、*.d.ts的使用说明

首先声明,declare 来声明全局变量或类型的目的是为了让 TypeScript编译器能够识别和理解这些外部环境中已存在的内容,而不需要在当前文件中提供具体的实现或定义。特点:如果一个全局类声明文件在 ts 处理范围内, 那么全局类声明文件中的 declare 会在全局生效。其他文件使用.这样就不用import了!*.d.ts文件 的 使用说明。

2023-12-05 11:27:46 5957 1

原创 debounce and throtlle

注: //在 JavaScript 中,arguments 是一个类数组对象,它表示传递给一个函数的参数集合。通过使用 arguments。对象,你可以在函数内部访问到传递给该函数的所有参数,即使你在函数声明中没有明确指定这些参数。

2023-11-04 17:04:05 421

原创 React的useEvent 和 ahooks 的 useMemorizedFn 的深度分析和对比

由此我们看出。其实二者的原理和出发点都是一致的,都是返回的是个固定的对象obj,该对象地址不变,但是调用的方法的时候相当于调用了obj.A,此属性的指向是会一直更新的。只不过更新的时候 :useevent用了useLayoutCallback做更新,useMemorizedFn则使用了useMemo。保持地址不变的时候:useevent用的是useCallback ,useMemorizedFn使用的一个!memoizedFn.current + 新固定的function。

2023-10-31 12:04:51 1472

原创 useswr基础使用和问题总结

useSwr 使用分析1、第一个参数是key ,下文是写成 getKey() 方法 返回的数据会给到第二个参数的入参。2、写成 key ,要保证全局是唯一的!重复的key 会被useswr认为是同一个,使用同样的缓存3、分页接口的情况下,必须写成 getKey() 方法,getKey的依赖项变化时,会导致 接口从第一页重新请求。4、return null 就是不调接口。1、就是接口函数,普通的useswr 直接用接口函数即可。

2023-10-29 11:32:52 2374

原创 super(props)与react类式组件

super是对父类构造器的调用。使用了后会自动继承父类的属性。要把super()放到第一行是因为了以防在super()之前,也就是没实例化父类之前,访问父类的属性。所以js将此作为一个语法点,必须这么写。网上看到很多回答 说是:不加props 构造器里没法访问 this.props。我试了根本不是这样。而是直接报错如上图。如果不加props,又调用了父类的构造器,就没把属性值传给父类啊!父类的属性都是undefined。

2023-10-28 18:49:30 218

原创 three js Water2 不展示波纹

注意: 本问题都是基于!!!(three 有2个水的生成方式。

2023-10-24 17:45:08 820 3

原创 umi - history传参

params \ search \ state 其中 state不展示到页面。hash路由模式下,刷新会丢失。以下是 umi history.push 的入参定义的。解答:定义一个不存在于history.push入参里的属性即可。

2023-10-10 17:44:21 1505

原创 git分支冲突的场景分析和解决办法

分支B 往分支A 合并。即: A merge B 或者可以表述为: B to A .出现冲突。

2023-09-11 10:19:22 566

原创 antd Form 监听数据变化的2种方式比较。onValuesChange vs Form.useWatch

此方式类似于 使用useState包裹的数据。

2023-09-07 14:27:50 7899

空空如也

空空如也

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

TA关注的人

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