- 博客(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环境踩坑存档
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
原创 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源码调试踩坑记录
此外,我没有修改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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人