自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx keepalive设置失效&k6显示i/o timeout解决方案

'确保nginx发送给后端服务器的请求也会带上请求头X-Request-Id,其值由uuidv4生成,同时记录了请求发送的时间,先直接请求后端服务器,在运行k6的客户端上抓包。为了进行验证,我找到了502响应请求对应的X-Request-Id,通过Ctrl+f全局搜索‘分组详情’里对应的X-Request-Id,发现该X-Request-Id值只出现了一次,说明nginx并没有向后端服务器发送http请求,原因正是连接建立失败。由此,我定位问题在nginx的配置上。

2025-03-19 11:40:15 737

原创 本机直接连接阿里云服务器(Ubantu)

navicat新建连接,连接成功后会显示your_database。如果UFW未启用,需要先启用UFW。服务器新建查询,输入命令。,才能确保外部访问畅通。

2025-03-17 10:34:17 273

原创 v8初始化流程

ParseStatementList会解析顶级作用域里的所有语句,构建astNode,astNode会记录语句在源码的起始位置以及长度,astNode的派生类会记录不同语句的额外信息。LoadGlobal最终也会调用到Allocate函数,将。根据指针最末尾是否为0来判断是否是smi,如果是,就直接返回指针(因为smi值存在指针中),如果不是,则获取堆对象地址(即指针左移一位再-1)对于Number()构造函数而言,如果传入的字面量是smi,那么Number函数会直接返回Smi对象,否则返回堆对象。

2025-03-12 17:21:01 569

原创 windows环境下vscode调试chrome/v8 js&c++代码

d8是v8引擎的独立调试shell,编译速度很快,用于调试v8引擎的内部行为。

2025-03-06 21:28:26 759

原创 gn学习存档

动态链接发生在。

2025-03-04 18:20:43 339

原创 搭建gn环境踩坑存档

1. 项目根目录下新增.gclient和.gclient_entriesgclient是一个多仓管理工具,可以把多个仓库的源码clone到本地的一个项目中,具体可以看2. 新建并进入src目录3. 新建示例代码hello_world.cc4 新建.gn,该文件指出了gn的配置文件路径,以及使用哪个python解释器。5. 新建BULD.gn,这个文件指出我们该如何形成可执行文件。

2025-02-28 21:59:19 884

原创 通过docker启用rabbitmq插件

输出列表中存在rabbitmq_delayed_message_exchange,证明启动成功。上下载.ez文件,存入<项目根目录>/data/rabbitmq/plugins/文件夹。创建文件,docker-compose.yml。运行命令,启动docker。运行命令,进入容器bash。验证插件是否启动成功。

2025-02-13 14:16:16 441

原创 react-native-swiper active dot无法更新解决方案

一个轮播图组件,展示网络图片,为了避免闪屏,先用本地默认图片作为占位符。

2025-02-07 22:06:53 232

原创 windows下flipper的安装使用

右键计算机->属性->高级系统设置->环境变量->系统变量->path,新建条目 E:\watchman-v2025.02.03.00-windows\bin。分别运行flipper和react native的启动命令npm start,对应的设备会自动连接到flipper,当Sidebar旁边选择的是具体的应用时,react devtools会显示不可用。降级后hermes debugger仍然无法使用,github讨论区里有人指出v0.237.0版本中可以正常使用,但本人降级到该版本仍然无法使用。

2025-02-07 16:54:23 785

原创 multer上传错误error: unexpected end of form

原因:在使用multer上传前先使用了multiparty解析了req,可能是multiparty修改了req结构。解决方案:移除multiparty。

2025-01-25 00:04:19 189

原创 navicat连接本机安装的docker内的mysql报错lost connection to MySQL server at reading initial communication packet

MySQL默认运行在端口3306,但我本机也有MySQL,所以为了解决端口冲突,需要将容器内的3306端口映射到本机3305端口。那么就需要修改docker-compose.yml的配置中port选项。如果要修改容器内MySQL的配置,那应该进入docker container bash修改MySQL配置文件。原因:我修改了端口映射,但是端口映射改错了...port选项代表 主机端口:容器内端口。

2025-01-05 17:26:50 253

原创 enzyme&jest TDD与BDD开发实战

1. 函数的执行逻辑,对于给定的输入,输出是否符合预期。2. 用户行为的响应逻辑。- 对于单元测试而言,测试粒度较细,需要测试内部状态的变更与相应函数是否成功被调用。- 对于集成测试而言,测试粒度较粗,一般测试ui展示上的变更(文本内容改变、组件类别改变等)。3. 快照测试。对于不需要经常修改dom结构的组件,我们会存储一个快照,如果在后续的版本中修改了dom结构,测试用例会不通过,需要确认更新快照。

2025-01-03 17:40:10 1413 1

原创 jest使用__mocks__设置模拟函数不生效 解决方案

模拟文件测试文件。

2025-01-02 17:12:42 632

原创 redux & react-redux & @reduxjs/toolkit

redux团队先后推出了redux、react-redux、@reduxjs/toolkit,这三个库的api各有不同。本篇文章就来梳理一下当我们需要在项目中集成redux,从直接使用redux,到使用react-redux,再到react-redux和@reduxjs/toolkit配合使用,分别需要调用到哪些api。

2024-12-30 23:18:17 897

原创 jest expect().resolves和expect().rejects原理

所以所谓.resolves和.rejects其实就是一种简化写法,jest帮我们调用.then取出返回值与预测值进行比较。

2024-12-23 23:41:18 356

原创 vscode调试jest闪退

同时安装了JavaScript Debugger和nodejs插件,卸载了nodejs插件后能正常运行,应该是有什么配置冲突了。

2024-12-22 02:09:25 251

原创 React源码解析(四) useState

和useEffect、useRef一样,mount阶段我们也是使用mount hook调用到mountState方法,该方法初始化了hook,并为其添加了memoizedState、basicState和指针。我们调用useState返回的state和setState分别对应着memoizedState和dispatchSetState方法。

2024-12-17 22:07:51 782 1

原创 react源码解析(三)useRef

useRef返回一个current属性的对象,current属性存储的值,且修改该对象不会引起组件的重新渲染。我们可以选择用ref存储一个值,或者存储dom。假设存在以下示例点击三次按钮,打印台输出如下。这个例子印证了ref在多次渲染中保持着,而普通的变量每次渲染都会新增一个实例。

2024-12-16 21:00:01 888

原创 react源码解析(二) useEffect

假设有如下示例代码这段代码的执行结果是:当初始化组件时,输出bind和bind value;当点击按钮后,输出unbind value和bind value;当卸载组件时,输出unbind和unbind value。

2024-12-16 00:32:58 595 2

原创 jest源码解析

jest——一个轻量的前端测试框架,提供简单易用的javascript单元测试支持。当我们由react native脚手架创建项目时,package.json中会自动配置scripts:{"test": "jest"},那么当我们运行npm test时,jest会如何执行呢?我们以此为切入点来看一下。首先,会找到node_modules/.bin下的可执行文件jest,由于我用的是windows系统,那么就执行文件jest.cmd。

2024-12-09 21:32:23 1090

原创 React Native Tools运行debug报错An error occurred while launching the application. spawn EINVAL (error co

在命令行中运行npm start启动程序,再在调试窗口点击attach to hermes application。官方说已在v1.13.1中修复,但这对我来说并不起作用。但这只能调试已初始化的程序,正在初始化时无法调试。修改launch.json为。

2024-12-09 12:41:03 358

原创 react源码解析(一)协调器与渲染器

<div></div><div></div>

2024-12-08 21:10:01 1059

原创 react源码调试踩坑记录

此外,我没有修改webpack配置以及额外用script引入静态资源,也完成了到源代码的映射(引入了反而会有shared包报错react is not defined)。该命令会在<rootDir>/build/node_modules下构建出react、react-dom、scheduler、jest-react文件夹。但我配置了还是报错,最终是挂梯解决的(我不确定是需要挂梯+配置Host,还是直接挂梯就可以)。这条命令展示的是全局global文件夹的路径,link是其同级目录。react源码文件夹下。

2024-12-06 20:46:53 443

原创 react-native集成jest踩坑记录

意思是用'@react-native-async-storage/async-storage/jest/async-storage-mock'文件中的导出内容mock '@react-native-async-storage/async-storage'的导出内容。jest默认不对node_modules进行转译,但是有时候第三方库(eg. @react-navigation)以未转译的形式发布,所以我们需要对node_modules进行转译。原因:在执行import的时候jest环境已经被拆除。

2024-12-03 18:30:20 916

原创 react-native-swiper源码解析

react-native-swiper虽然自称是the best swiper for react native,但其实在轮播的时候会有明显的闪屏,快速滑动的时候也会存在active dot和active page不同步的问题。此外,源码在逻辑上也存在一些错误和死代码(如果我没理解错的话)。如果有swiper的更佳实践,还请大家留言呀~

2024-11-30 11:42:54 1233

原创 给父容器设置flex: 1后,子容器ScrollView设置height不生效

react native 0.73版本为NativeDirectionalScrollView设置了flexGrow: 1。由于‘哈哈’text并未设置flexGrow属性,所以NativeDirectionalScrollView会独占剩余空间,表现在屏幕上就如上图所示。在ScrollView外层包一层view。关于flexGrow属性原理可参考。

2024-11-27 03:18:13 303

原创 react native模拟器element inspector与react-devtools无法联动

问题:按照官网所说,打开show element inspector后,点击模拟器中相应元素应该导航至devtools中相应组件,结果并未执行导航操作。将react-devtools版本降到5.3.1即可正常联动。解决方案:可能是react-devtools版本所致,根据。

2024-11-22 16:52:33 258

原创 小米手机adb调试报错Exception occurred while executing ‘keyevent‘:

解决方案:权限不足导致。设置里搜索‘开发者选项’,开启‘USB调试’、‘USB调试(安全设置)’,关闭‘启用系统优化’。设置-我的设备-全部参数与信息-连点八次OS版本。

2024-11-22 15:40:42 522

原创 react-native virtualList源码解析

总结来看,虚拟列表的关键数据结构包含以下几个方面。通过_scrollMetrics,得到视口的相关数据,计算出视口元素的起止下标并且更新。根据视口元素的起止下标与页首的10个元素,拆分出占位符元素和非占位符元素。占位符元素的长度由_listMetrics记录,对于曾挂载元素,以实际长度为准,未挂载元素以平均长度为准。当存在高优先级render时,新增的render将会在交互完成后再执行,避免由于渲染阻塞交互。以上就是本次探讨的全部内容,如有错漏,还请斧正。

2024-11-22 00:37:48 1046

原创 react-native ScrollView的style属性中设置gap对于子组件不生效

外层的NativeDirectionalScrollView在安卓纵向滚动视图被映射为RCTScrollView,里层NativeDirectionalScrollContentView在安卓纵向滚动视图被映射为View。其他映射关系详见源码。里层的children就是子组件,所以要对子组件设置gap应该修改contentContainerStyle属性。原因:ScrollView会被解析成两层的嵌套容器,结构如下。

2024-11-20 01:15:08 168

原创 TypeError: 0, _native.useLocale is not a function (it is undefined)

降级后tabBarLabel显示为空白,应该是由于react-native-tab-view和@react-navigation/material-top-tabs版本不匹配导致的。发现可能是由于混用了7.x和6.x的包导致的,本人除material-top-tabs和elements外,其他@react-navigation下的包均为6.x。在使用@react-navigation/material-top-tabs遇到如上报错,查阅。降级react-native-tab-view到3.5.2。

2024-11-18 15:49:42 214

原创 react native集成腾讯位置服务

进入网站应用管理-我的应用-创建应用创建完成后,点击添加key,输入key名称,勾选SDK、WebServiceAPI,填写包名点击‘配额管理-账户额度-配额分配’,为相应的应用接口分配配额。

2024-11-16 15:11:30 904

原创 模块““react-native“”没有导出的成员“CheckBox”。

查看rn源码发现CheckBox已经被移至@react-native-community/checkbox。

2024-11-14 17:09:32 113

原创 react-native-vector-icons图标显示为x解决方案

【代码】react-native-vector-icons图标显示为x解决方案。

2024-11-14 17:03:53 232 1

原创 react native搭建环境报错Could not move temporary workspace解决方案

看到网上有解决方案是修改gradle版本为8.5,修改后报错。找到解决方案:修改node版本为20,环境搭建成功。

2024-11-04 13:49:43 771

vscode-react-native-1.13.1.vsix

vscode-react-native-1.13.1.vsix

2024-12-09

空空如也

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

TA关注的人

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