Latest Posts

文章

记录技术、生活和一些阶段性的想法。

算法学习749 字565 阅读

算法分析-二叉树展开为链表

今天继续研究算法:二叉树展开为链表 给你二叉树的根结点 ,请你将它展开为一个单链表:展开后的单链表应该同样使用 ,其中 子指针指向链表中下一个结点,而左子指针始终为 。展开后的单链表应该与二叉树 顺序相同。 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 看到这个题我的头就开始痛了,因为好久没接触树了,连遍历方法都忘得一干二净了,不过既然遇到了那就把它解决掉,长痛不如短痛。 先捡一下…

算法学习#动态规划2288 字542 阅读

算法分析-最大子数组和

刚做了乘积最大子数组,现在趁热打铁继续研究:最大子数组和 给你一个整数数组 ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 理解上一题之后,再看这道题就简单了。 不用担心负号会直接将结果反转,所以不用记录下最小的值。 只需要当前面的子串之和已经是负数时,就截断子串,由当前值重新开一个子串即可。 光说概念有些抽象,现在我将拆解一个例子来…

算法学习#动态规划1443 字243 阅读

算法分析-乘积最大子数组

继续研究:乘积最大子数组 给你一个整数数组 ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32 位整数。注意,一个只包含一个元素的数组的乘积是这个元素的值。 这个题的关键在于处理 和负数,因为正数连乘只会越乘越大。 子串中有 ,乘积结果就是 。 子串中有奇数个负数,越乘越小;有偶数个负数,负负得正,也会越来越大。 我尝试使…

算法学习#滑动窗口1168 字203 阅读

算法分析-无重复字符的最长子串

继续研究:无重复字符的最长子串 给定一个字符串 ,请你找出其中不含有重复字符的最长子串的长度。 首先想到的方法是遍历并将字符压入栈中,遇到已经在栈中存在的元素则记录下栈的长度后清空栈,对字符串中每一个字符都如此操作一遍。 不出我所料,提交时果然超时了。 时间 $O(n^3)$:外层循环 次,内层遍历 最坏 次,每次 要线性扫描栈(最坏 ),三层相乘。空间 $O(n)$。 优化一下。既然清空栈的时候…

算法学习472 字159 阅读

算法分析-删除链表的倒数第 N 个结点

今天继续尝试:删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 个结点,并且返回链表的头结点。 我的想法是:使用两个指针,让它们相隔 个节点,然后同时向后移动。当后面的快指针到达链表末尾时,慢指针的位置就是待删节点的前驱。 这里使用哨兵节点的原因是为了方便删除节点,比如 等于链表长度时需要删除头节点,不使用哨兵节点的话无法操作。 使用双指针,一趟扫描完,$O(n)$ 时间 $O(1)$…

算法学习383 字178 阅读

算法分析-有效的括号

继续研究:有效的括号 给定一个只包括 、、、、、 的字符串 ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合,左括号必须以正确的顺序闭合,每个右括号都有一个对应的相同类型的左括号。 这道题我曾经做过几次,思路基本上是用栈后进先出的特性来解决。 遇到左括号,压入栈中。遇到右括号,看与栈顶左括号能否匹配上,能匹配则弹出栈顶;与栈顶不匹配直接返回 。一一匹配完后看栈中是否还有剩…

算法学习547 字196 阅读

算法分析-移动零

继续尝试:移动零 给定一个数组 ,编写一个函数将所有 移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。 一开始读题,想把所有 移动到数组的末尾,发现不好处理非零数的顺序。转念一想,将所有非零数移动到数组前面,剩下的不就都是 了吗。 想到前面快速选择中有用到一个方法:将大于基点的数移动到基点左边,小于基点的数放在基点右边。在这里我们把 看作基点,就能…

算法学习1386 字170 阅读

算法分析-合并 K 个升序链表

今天尝试:合并 K 个升序链表。 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思考半天没有头绪,试试暴力解法:遍历链表将所有节点放入一个数组,排序后转成新的链表返回。 比较取巧,利用了 Python 本身的排序。 时间复杂度:$O(N \log N)$, 是所有节点总数。空间:$O(N)$( 数组)。 这里并没用到"每条链表本身已经有序"这…

算法学习1085 字168 阅读

算法分析-打家劫舍

继续尝试:打家劫舍。 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 就是说,在数组中找到一些数加起来之和要最大,但是这些数在数组中不能是相邻的。 简单…

算法学习870 字158 阅读

算法分析-字母异位词分组

今天研究:字母异位词分组 给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。 读题发现,就是说两个词的字母相同,但是顺序不同,一个词可以通过调整字母顺序变成另一个词,这两个就是字母异位词。 理论上来说,遍历一遍数组,将元素一个个归类就行,难点在于如何知道两个词是异位词。 我首先的想法是将字符串排序,异位词经过排序后就变成了相同的词。然后将排序后的字符串作为 放到字典中归类…

算法学习2298 字132 阅读

算法分析-数组中的第K个最大元素

今天尝试:数组中的第 K 个最大元素。 给定整数数组 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 $O(n) $的算法解决此问题。 第一眼没认真读题——返回数组第 k 大的,那不就是排序后直接返回 不就行了。 提交通过,正好奇这个题为什么这么简单,仔细看题发现要求时间复杂度为 $O(n…

算法学习939 字192 阅读

算法分析-每日温度

今天继续研究算法:每日温度。 给定一个整数数组 ,表示每天的温度,返回一个数组 ,其中 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 一读题目感觉很简单,就只用操作一个数组,但是想优雅的完成,还是需要耗费一点脑细胞。 先写个暴力破解进入状态: 时间复杂度是 $O(n²) $(更具体来说是$n²/2$,大 O 里常数 1/2 被忽略)。 又遇…

算法学习726 字183 阅读

算法分析-相交链表

今天继续研究算法,是一个链表的题目,我对链表还不是很熟悉:相交链表。 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。你能否设计一个时间复杂度 O(m + n) 、仅用 O(1) 内存的解决方案? 开始我想的思路是,既然要相交节点的值,那么从尾巴往前遍历不就很方便了。但是忽略了这不是数组,单链表没有 指针,…

算法学习1412 字133 阅读

算法分析-三数之和

最近在学python,研究个算法来练练手:三数之和。 看题目我想出了两种思路: 思路1:列出所有可能的三元组,去重,计算和是否为0。比较暴力,可能的组合太多,消耗太大。 思路2:两两组合求和,再在剩余的数组中看是否有能加起来为0的项,消耗也不少,但是先试试。 双层遍历两两组合,使用拿到索引后,内部循环使用切片来避免重复组合。表示从索引的下一个位置开始到数组末尾的所有元素。 下一步是在数组中寻找是否…

日记739 字398 阅读

早上五点起床赶早口,结果还是空军的一天

周六 阴 这一周过得真慢,终于到周六了。自从上周没钓到鱼之后,潜心学习了一周的钓技,今天终于可以实操了。 昨天下班就收拾好装备,定好五点闹钟,今天早上准时起床直接出发了。天刚蒙蒙亮,环卫工人已经开始工作,早餐店也才刚打开门准备营业。 六点左右到达百花湖钓鱼点,有钓友夜钓结束刚收杆准备回去,有的也才不久到刚摆好装备。 坐下直接找组装好杆子直接找水深,剪铅皮,调四钓二。调好飘之后才发现有钓鱼的感觉了,…

日记876 字474 阅读

今天终于看完了《凡人修仙传》小说

周三 晴 今天终于把《凡人修仙传》看完了。 很久没有看玄幻小说了,现在读完一本,切身体会到了终不似少年游。初中那会没有智能手机,好在基本上都有电子书的功能。以前使用一个手机和电池都不匹配的破手机看小说都看得津津有味,能够完全沉浸在玄幻的世界中。夜幕降临是我最喜欢的时光了,不用受外界干扰,在被窝里闭关修仙。即使是高中和大学,小说都陪伴我走过很长一段路。 还记得我看的第一本小说是我吃西红柿的《盘龙》,…

日记500 字293 阅读1

周末骑车

周日 晴 坚持每天写日记比我想象中的要难很多。 一个星期前定下要每天写日记的目标后,总是没能按时完成。有时是一整天好像没什么可以记录的,有时是一天想写的太多,不知从何说起,一分神习惯性的打开了其他app,结果在玩手机后又忘记想写什么了。 不管了,随意一点,想到啥写啥吧。 贵阳已经连续下了好久的雨了,难得昨天没有下,去骑了一下自行车。距离比较短,来回共六七公里。是一条没有走过的路。骑到了妻子曾经所读…

日记890 字247 阅读

电影《四渡》观后感和日记

周四 阴 今天下午公司组织看电影,广电出品的《四渡》,因为我们是集团下的子公司,所以全员都去观看。 我特别在意其中的一个细节:毛泽东问周恩来蒋介石是怎样的一个人,周恩来说蒋介石无论多忙都会抽出时间来写日记,记录一天所感,二十年来从不间断。能把一件小事坚持这么久的人,是一个可怕的对手。 前几天我在下班路上听播客知行小酒馆的时候,有一期说的是一个女人在从怀上孩子的时候一直写日记记录自己,直到离世。细节…

AI#AI Agent1127 字905 阅读

最近对AI Agent使用的一些感受

我接触对话型AI比较早,好几年前就开始使用ChatGPT了。但是对AI Agent的使用相对较晚,前不久Open Claw大火的时候才开始接触这个概念。 关于大模型的话,Deepseek刚开源的时候在自己电脑上部署过v1的版本。由于硬件的限制,体验很差,就没有深入的研究。 最开始是使用Cursor,感觉很不错。以前使用ChatGPT来写代码的时候。做的最多的事情就是不断的复制粘贴。现在很方便,它能…

技术相关#API#前端工程架构1054 字414 阅读

集成Ovral,解决前端手抄API的痛点

当一个人又写接口又写前端的时候,最大的痛苦莫过于接口改动后还要修改前端项目并重新部署。 以前在项目少、接口不多的时候还没有感觉。现在项目多了之后,改动一个接口就要去使用这个接口的前端项目挨个改。尤其是加了TS之后,还要手动维护类型标注,头更痛了。 我司使用的是YAPI,研究一下发现太重了,并且配置复杂。我找到了一个更轻量、配置更少的解决方案: Ovral。 我的JAVA项目一开始就配置有swagg…

技术相关#AI1532 字403 阅读

Next项目自动化部署之使用阿里云镜像仓库

之前我Github Action的workflows部署Nextjs项目的流程是这样的:控制服务器拉取代码,打包、构建镜像并运行。 由于打包代码后构建镜像都在我2核2G的服务器上,导致执行这个流程的时候服务器上的其他应用卡顿,有时候甚至会导致服务器卡死。 思索之下决定优化我的部署流程,采用在Github Action打包和构建镜像,服务器直接拉取镜像并运行的方式,大大减轻了我服务器压力。 这个方法…

技术相关#React#Nextjs2420 字371 阅读

Vue项目迁移Next日志

最近正在优化我的博客项目,想好好摆弄一下服务端渲染和SEO优化等。多方研究下最终拍板决定使用Next.js重构我的Vue博客。 一开始我以为会很简单,但实际操作下来仿佛发现了新世界。 从代码架构到部署流程,完全是另外的一套体系。尤其是部署方式,不再是我熟悉的那种“前端打包 - 上传 dist - Nginx 托管静态文件”流程。 现在,我将带大家回顾一下我的项目迁移过程。记录一下 Next 项目与…

记录人生676 字316 阅读

26年四月总结

四月还是没有什么起色,日复一日,光阴慢慢消散了,还是说说五一吧。 刚过完五一回来,开车是真的累人。 这次回家把庭院收拾了一下,吊兰长得到处都是。还记得最初收到两小棵吊兰时,深怕养不活。当第一次看到它开出小白花的时候,心情非常的激动。现在长满了庭院,拔除了大部分,因为要腾出地方来种其他的。 三角梅正是爆花的时候,顶上一片紫红。以前剪了三颗枝条来扦插的,现在已经长出了围墙外面。现在种的地方土比较浅,下…

技术相关#OSS545 字337 阅读

服务器备份文件到OSS

数据库文件就备份在服务器上始终还是不太放心,想到直接做图床用的是阿里云的对象存储,今天折腾一下,把数据库备份也上传到OSS。 备份流程其实挺简单,首先写一个脚本,核心是使用mysqldump将数据备份出来并压缩成一个压缩包,并且删除掉7天前的备份。然后创建一个定时任务,每天凌晨三点自动运行一下这个脚本。而oss的作用就是在备份成功后将打包好的压缩包上传到阿里云oss,这样即使服务器数据全部丢失,我…

生活经验366 字381 阅读

第一次修车

买的车衣到了,夏天太阳大,怕晒伤座椅。 一个月没有开车,这个月油价涨疯了,油箱里面的油还是7块的,加油站已经涨到10块了。 正为一个月没开车省下了几百块钱而沾沾自喜,洗车的时候被告知脚垫下有积水。 洗完车开到最近的天猫养车门店检查一下,原来是原先给我行车记录仪走线的师傅把我右侧A柱的排水管撬歪了,导致排水管没有对准排水口,水全部流到了坐垫下。 上个月又是雨季,拆车后掺不忍睹。厚厚的一层水,坐垫下方…

记录人生1290 字243 阅读

26年第一季度总结

清明节假期一休息玩,马上又要上班了。最近上班实在感觉麻木了,各种焦虑和压抑。不是因为工作太忙了,而是因为太闲了,让我感到很强烈的危机感。 回到正题,写一下26年第一季度的总结。 平平无奇的工作。 刚从结婚旅行回来,在香格里拉跨年,顺便过了个生日。 过年,今年很热闹。 结婚之后的过年感觉非常疲惫,以前天天躺在家打游戏,现在是每天都开车在路上。 一开始沉迷于域名,认识了大佬论坛。买了有几个域名,但是因…

建站相关511 字258 阅读

服务器推荐配置:Swap

在我的两核两G服务器无数次卡死重启之后,我终于发现了个好东西:Swap。 Swap是什么? Swap 是 “内存不够时的备用仓库(硬盘当内存用)” 正常情况下,程序都在内存中运行。但如果内存不够了,系统就会把一部分“不常用的数据”挪到硬盘上,这个硬盘空间就叫 Swap(交换空间) 如果你加了 swap,内存满的时候,系统不会立刻杀程序,而是先把数据挪到 swap 虽然会变慢,但服务还能活着。 应该…

AI#AI Agent652 字291 阅读

安装OpenClaw

官网:[链接] 服务器配置2核2G即可 安装nodejs和npm: 安装openclaw: 启动:,随后根据引导一步步配置即可。 <br / 启动成功后,服务运行在18789端口上,但是不能公网访问。 需要采用SSH 隧道的方式,在本地执行 → 不执行命令,只转发端口 → 本地 18789 端口映射到服务器 127.0.0.1:18789 最后本地访问[链接]即可。 若想不输入密码,只需将本地的公…

技术相关847 字1022 阅读

如何优雅的使用一款字体

折腾了一下网站的字体。 第一次用心仪的字体时采用的是霞鹜文楷。 那时候还不太懂这个问题,直接把十多mb的ttf文件扔到网站上了,体验可想而知有多差。后面放弃了,很长时间没有再用字体。 前两天偶然在别人的博客上看到这个原侠正楷的字体,感觉阅读文章时很舒服,所以决心还是折腾一下。 大概思路是将原文件ttf子集化(只取自己用到的字,去除一些不常用的生僻字),然后转换成woff2格式。在网上能找到很多种方…

英语3565 字18 阅读

英语语法:谓语动词和动词的时态

在句子用作谓语的动词,最普通、最常见的动词,用作句子中的谓语。谓语动词和中文中不同,它能够根据不同的状态表示出动作的时、体、气 (即动作发生的时间、动作的状态:已完成还是正在进行、动作的假设和情感等) &x20;谓语动词主要分为五大类,也对应着英语中的五大句型: 1. 无需动作承受者的谓语动词: The rabbit slept. (这里的slept因为没有宾语,所以也称为不及物动词。后面的2\4…

记录人生558 字218 阅读

25年8月月中梳理

最近状态不太好 健身没有起色 理财亏损 - 做事不在状态,虚度光阴 <br / 最近的日子大部分都是: 早上起来,蹲厕所,墨墨上刷10个单词,做一下游戏的日常任务。 胡乱收拾一下踩点上班,早餐有时候吃有时候不吃。 没有多少工作,上班就等着9点半股票开盘。 股票开盘期间也没心思学习,总想着股票的涨跌,所以就刷刷知乎,刷刷视频。 11点早盘结束,开始无聊。肚子饿,等吃饭,也没心思学习。 12点下班吃饭…

记录人生765 字216 阅读

25年7月总结与规划

2025年7月30日晚,暴雨。 雨夜一如既往的让人转眼七月也快过去,马上到八月,还有两个月的时间准备订婚和结婚的相关事宜。 这个月的主题是:炒股和健身。 股票就不多说了,有得有失,具体的都在股票复盘记录中有写,除金钱上的盈亏外也从股市中的波动中悟到了很多人生道理。 健身已约有半个月了,除了刚开始练伤了休息了两天,其余时间风雨无阻,至少也需要在跑步机上出一身大汗。保持着健身和减脂餐,体重体态虽无大的…

记录人生1280 字218 阅读

25年6月总结与规划

这是极度想搞钱且付诸了行动的一个月。 首先是学习上,上个月花时间系统的对Typescript进行了学习,这个月也将React官方文档过了一遍。 其次是投资,上周开通了股票账户至今已经炒股了3天。前两日运气好赚了一点,第三天也就是周五亏损。目前战况是盈利了约20元。 然后是副业,在小红书上连续一周进行了每日一次的发文。内容是推荐书籍、影视、音乐。没有涨粉,点赞人数加起来也就一手之数。 这个月对于Re…

记录人生693 字211 阅读

第一辆自行车

记录第一辆自行车,喜德盛黑客380 下班心血来潮扫了个共享单车直奔喜德盛线下店。 本来是想看看黑客350的,结果店里没有。看了看黑客380,加点预算直接拿下。(本人程序员,对黑客二字感觉莫名亲近) 前两天骑得屁股超级痛。后面买了坐垫骑了几天,现在拿掉坐垫好像感觉不到痛了。 距离现在买车到现在已经骑行了一周,上班通勤来回十余公里。一开始单程需要四十来分钟,并且腿酸屁股痛。现在只需要不到三十分钟了,并…

思考感悟521 字257 阅读

必须准备好才能出发吗?

今天阅读了一下《穷爸爸富爸爸》。才看了第一章就深深被触动了。这本书讲得非常通俗易懂,让我明白“为钱工作”还是“让钱为我工作”两种观念之间的鸿沟般的差距。结合这几年打工的状况,我被深深的带入了其中。 触动之下,我在东方财富开了个股票账户。虽然身边人好像都在用同花顺,但是它的账户要到券商开户,没有自己的券商,让我难以选择。加之我在东方财富旗下的天天基金买过几年的基金,App也很好用,所以就选择了东方财…

React系列1770 字1157 阅读

React 中对响应式的理解

最近在专研 React 文档,遇到文档中这样的一句话让我陷入了沉思:“在组件主体中声明的所有变量都是响应式的。” 基于 Vue,我对响应式的理解是这样的:响应式变量是被 Vue 的响应式系统(基于 Proxy)追踪的,只要它们发生变化,Vue 就会自动更新视图。比如通过 ref() 或 reactive() 创建的对象,计算属性 computed,甚至是 watchEffect() 等副作用监听器…

React系列16738 字263 阅读

React系列八:脱围机制

有些组件可能需要控制和同步 React 之外的系统。例如,你可能需要使用浏览器 API 聚焦输入框,或者在没有 React 的情况下实现视频播放器,或者连接并监听远程服务器的消息。在本章中,你将学习到一些脱围机制,让你可以“走出” React 并连接到外部系统。大多数应用逻辑和数据流不应该依赖这些功能。 当你希望组件“记住”某些信息,但又不想让这些信息 触发新的渲染 时,你可以使用 ref 。 u…

React系列1080 字239 阅读

React系列七:Reducer 和 Context

Reducer 可以整合组件的状态更新逻辑。Context 可以将信息深入传递给其他组件。你可以组合使用它们来共同管理一个复杂页面的状态。 这里的tasksReducer是我们用于处理tasks的方法,如新增,删除,修改等。 initialTasks是初始化tasks的默认值。 tasks是任务列表、dispatch用于调用tasksReducer来操作tasks。 接下来需要将tasks和dis…

React系列1515 字244 阅读

React系列六:Context

通常来说,你会通过 props 将信息从父组件传递到子组件。但是,如果你必须通过许多中间组件向下传递 props,或是在你应用中的许多组件需要相同的信息,传递 props 会变的十分冗长和不便。Context 允许父组件向其下层无论多深的任何组件提供信息,而无需通过 props 显式传递。 这里的1是默认值 这里需要用useContext来使用LevelContext 注意!这个示例还不能运行。因…

React系列2244 字182 阅读

React系列五:状态管理

React 控制 UI 的方式是声明式的。你不必直接控制 UI 的各个部分,只需要声明组件可以处于的不同状态,并根据用户的输入在它们之间切换。这与设计师对 UI 的思考方式很相似。 通俗的说就是根据一个状态来判断展示哪一个组件。 React推荐使用尽量简单但是意义明确的state: 1. 如果两个 state 变量总是一起更新,请考虑将它们合并为一个。 2. 仔细选择你的 state 变量,以避免…

React系列1353 字200 阅读

React系列四:对象更新

state 中可以保存任意类型的 JavaScript 值,包括对象。但是,你不应该直接修改存放在 React state 中的对象。相反,当你想要更新一个对象时,你需要创建一个新的对象(或者将其拷贝一份),然后将 state 更新为此对象。 在 React 中,状态是不可变的(immutable)。React 不会深入比较对象内部的属性变化,而是通过引用是否变化 来判断是否需要更新组件。 Vue…

React系列850 字192 阅读

React系列三:React事件

事件处理函数还将捕获任何来自子组件的事件。通常,我们会说事件会沿着树向上“冒泡”或“传播”:它从事件发生的地方开始,然后沿着树向上传播。 如果你点击任一按钮,它自身的 onClick 将首先执行,然后父级 <div 的 onClick 会接着执行。 在 React 中所有事件都会传播,除了 onScroll,它仅适用于你附加到的 JSX 标签。 事件处理函数接收一个 事件对象 作为唯一的参数。按照…

React系列1341 字191 阅读

React系列二:基础概念

React 组件是常规的 JavaScript 函数,但 组件的名称必须以大写字母开头,否则它们将无法运行! 在看到标签时,小写为html标签,大写为自己的组件。 返回语句可以全写在一行上,但是,如果你的标签和 return 关键字不在同一行,则必须把它包裹在一对括号中。没有括号包裹的话,任何在 return 下一行的代码都 将被忽略!不过也要注意:()是(),<\</是<\</,括号只是用于包裹…

React系列2040 字180 阅读

React系列一:准备入门

在上一章我们学习了基础的react语法,现在我们了解一下企业级开发 安装一个构建工具,如 Vite、Parcel 或 rsbuild。这些构建工具提供了打包和运行源代码的功能,提供本地开发的开发服务器,以及部署应用到生产服务器的构建命令。 使用命令npm create vite\@latest,选择React模板,即可创建React应用。 路由决定了当用户访问特定 URL 时显示的内容或页面。你需…

React系列990 字236 阅读

React查缺补漏

当在 React 中调用 useState 提供的 状态更新函数时,React 会触发该组件的重新渲染。也就是说组件的主体部分会再次执行。 Vue在改变某个变量的状态时不会重新执行onMounted。虽然Vue 和 React 都是响应式框架,但它们的更新机制不同。React 是“重新执行组件函数”,而 Vue 是“依赖追踪+局部更新”。 重新渲染 ≠ 重新操作 DOM,React 重新渲染组件时…

React系列1953 字244 阅读

React机制总览

今天开坑React,本来想看原版文档,奈何英语水平有限。加之最近也许要面试,故先使用中文文档。 本文采用了与vue对照的方式进行对比学习,如果是熟悉vue的人学习起来会更好理解。如果你不了解vue,推荐去看官方文档,也很容易理解:[链接] 按照我的一点印像,react使用js函数return一个html标签,这就是react的组件 React 组件必须以大写字母开头,而 HTML 标签则必须是小写…

技术相关45 字211 阅读

shell clash

分享一个好东西,可以在Linux上使用节点 原文:[链接]

思考感悟649 字260 阅读

YAGNI

YAGNI 是“You Ain't Gonna Need It”的缩写,意思是“你不会需要它”。它是一种软件开发原则,来自于极限编程(Extreme Programming),主张程序员应该在明确需求出现后才实现相应功能。这个原则的核心是避免过度设计和预先实现不必要的功能,从而降低复杂性,提高代码的可维护性。 YAGNI 强调在现实需求出现之前,不要实现任何功能,即使你认为将来可能会需要。这样可以…