神光的编程秘籍

其他

React 项目里,如何快速定位你的组件源码?

如果说业务开发中最重要的能力,那定位代码的能力肯定是其中之一。业务项目一般代码都很多,你拿到一个需求之后,可能改起来不难,但是要定位在哪里改比较难。特别是接手别人写的代码的时候。大家都是怎么在不熟悉的项目里定位的代码呢?很多都学都是搜文案,搜
5月30日 下午 7:40
其他

身在外企,如何实现 React 应用国际化?

国际化是前端应用的常见需求,比如一个应用要同时支持中文和英文用户访问。如果你在外企工作,那基本要天天做这件事情,比如我待过韩企和日企,我们的应用要支持韩文和英文,或者日文和英文。那如何实现这种国际化的需求呢?用
5月23日 下午 1:32
其他

你用受控模式写组件?图啥呢?

前端开发经常会涉及表单的处理,或者其他一些用于输入的组件,比如日历组件。涉及到输入,就绕不开受控模式和非受控模式的概念。什么是受控,什么是非受控呢?想一下,改变表单值只有两种情况:用户去改变
4月30日 上午 12:05
其他

React Playground 实现原理揭秘

Playground。那它是怎么实现的呢?我们自己能实现一个么?可以的,今天我们来分析下实现思路。首先是编译:编译用的
4月28日 上午 11:21
其他

面试官:说一下大文件分片下载

transfer-encoding:chunked,它是不固定长度的,服务器不断返回内容,直到返回一个空的内容代表结束。比如这样:5Hello1,5World1!0这里分了
4月27日 下午 1:58
其他

如何在网页实现 TypeScript 编辑器?

ata(editor.getValue());});ata(editor.getValue());就是最开始获取一次类型,然后内容改变之后获取一次类型,获取类型之后用
4月26日 下午 7:33
其他

Nest 实现 GraphQL 版 TodoList

ReactDOM.createRoot(document.getElementById('root')!);root.render(
4月20日 下午 6:14
其他

天天用 antd 的 Form 组件?自己手写一个吧

小册仓库:https://github.com/QuarkGluonPlasma/react-course-code/tree/main/form-component总结我们每天都在用
4月10日 下午 12:50
其他

手写一个 OnBoarding 组件

小册仓库:https://github.com/QuarkGluonPlasma/react-course-code/tree/main/onboarding-component总结今天我们实现了
4月7日 下午 10:46
其他

实现 antd 的 Popover 组件,可以很简单

小册仓库:https://github.com/QuarkGluonPlasma/react-course-code/tree/main/popover-component总结今天我们封装了
4月3日 下午 6:17
其他

我最近的生活,一地鸡毛。。。

万装修。这两天和家里亲戚做完我爸的遗产分割之后拿到了公证书,也就是我奶奶放弃继承我们的房子。这样我们即墨的房子就可以卖了。我也不想留着了,因为不知道未来会怎么样。去年我同学的朋友出价
3月17日 下午 11:17
其他

一文学会用 react-spring 做弹簧动画

github:https://github.com/QuarkGluonPlasma/react-course-code/tree/main/react-spring-test总结我们学了用
1月24日 下午 7:29
其他

一道字节的 TS 体操面试真题

数量会过多,从而报错。所以需要根据年月日的特点,对生成的字符串字面量类型做更精准的控制。这样,就能生成满足需求的日期字符串类型。全部代码如下,大家可以试试:type
1月12日 下午 12:31
自由知乎 自由微博
其他

2023 年终总结|前半生最苦的一年

万把房子装修好了,看着还行,租也没租出去,但以后我们可以去住,等那边开通地铁,就可以在青岛玩一段时间。我爸留下的房子我们也准备卖了,那个是商品房,连地皮一起,很好卖,我们价格都谈好了,140
1月10日 上午 7:30
其他

组件进入离开动画?试试 react-transition-group

时:这个组件就是用来控制两个组件切换时的进入、离开动画的顺序的。这样,react-transition-group
1月7日 下午 5:09
其他

Nest 实现大文件分片上传

做为目录名,太容易冲突了。我们可以在上传文件的时候给文件名加一个随机的字符串。这样就不会冲突了:接下来,就是在全部分片上传完之后,发送合并分片的请求。添加一个
2023年12月23日
其他

React 的 Suspense 和 ErrorBoundary 还有这种关系?

`https://jsonplaceholder.typicode.com/users/${userId}?_delay=2000`
2023年12月22日
其他

手写一个 zustand,只要 60 行

get、set、store,对这些做一些修改,之后返回一个接受三个参数的函数呢?比如这样:function
2023年12月17日
其他

短链服务?用 Nest 自己写一个

https://github.com/QuarkGluonPlasma/nestjs-course-code/tree/main/short-url总结我们经常用短链服务把长的
2023年12月1日
其他

自由职业的好与坏:谈谈我的真实感受

回家自由职业八个多月了,有很多很多和上班不一样的感受。最近心态算是平稳了,打算把这些写下来。当然,感受这个东西很主观,每个人都不一样,所以没普适性,看看就好。整体来说,自由职业有好有坏。陪家人时间变多了回家自由职业第一个好处就是陪家人的时间多了很多很多,之前在一线城市打工,我都是过年的时候回家待几天,甚至国庆我都不愿意回家。那时候接收到家人的消息就是通过电话聊下最近遇到的事情,帮忙出出主意之类的,就像是以一个旁观者的身份在听故事。而现在我们是在一起经历着这些事情,比如今天上午我妈骑车带我去银行办了一些业务,比如我们会讨论快餐店的哪个咸汤好喝。这些鸡毛蒜皮的小事,就是生活本身。在老家陪着家人一起生活,会让我有种踏实感,因为我的根就在这里。收入焦虑带来的效率不增反降说实话,自由职业注定会面临一些焦虑,因为之前打工的时候,只要每天按时上下班,每月就能收到工资。比如之前
2023年11月23日
其他

想给组件加上文档? 试试 Storybook

的混合语法,用来写文档很不错。在这个目录下的文档:都会被放到这里:我们加一个试试:这样,当你想在组件文档里加一些别的说明文档,就可以这样加。而且,组件文档的格式也是可以自定义的。可以在
2023年11月11日
其他

Next.js 的路由为什么这么奇怪?

拦截根路由。这个拦截路由,在特定场景下很有用。这些就是页面相关的路由机制,是不是还挺强大的?当然,这些路由机制不只是页面可以用,Next.js
2023年11月1日
其他

React 弹窗组件用的 createPortal 是怎么实现的?

fiber.stateNode,各种类型的节点都在这里放东西,而且存的东西不同。继续看这个
2023年10月26日
其他

JSDoc 真能取代 TypeScript?

声明类型参数,然后下面就可以用了。泛型都可以用,那基于泛型的类型编程,也就是类型体操当然也可以玩:一般这种复杂类型还是抽离到
2023年10月22日
其他

一次恶心的面试经历

的机会。并且和朋友说可能节后要去上海了。之后没想到还有个大老板面,就是那种公司的创始人:这时候正好赶上国庆,然后就到节后了。说实话,本来就差一轮走完流程了,然后赶上个国庆再等
2023年10月19日
其他

Nest + Redis + 地图,实现附近的充电宝

想必大家都打过车,打车软件可以根据你的当前位置搜索附近的车辆:这两天国庆节,大家出去玩可能会借用共享充电宝。它也是基于你的位置来搜索附近充电宝:再就是大家搜索附近的酒店、餐厅等,也是基于位置的搜索。那么问题来了:这种附近的人、附近的酒店、附近的充电宝的功能是怎么实现的呢?答案是用
2023年10月1日
其他

谈谈我家的奇葩买房经历

块钱,让他一起去。之后就到了即墨观澜国际的售楼处,人家介绍说这个房子是楼王,也就是最中间的那栋楼,是最好的,而且只有几套了。我妈还在纠结,但是那个出租不耐烦了,要走。然后我妈就定下来了,交了
2023年9月24日
其他

Node 如何调用 Java 微服务?

github:https://github.com/QuarkGluonPlasma/nestjs-course-code/tree/main/grpc-client总结今天我们学习了基于
2023年9月18日
其他

React 组件库都是怎么打包的?

来组织的,它可以串行、并行的执行一些任务。虽然有一些细小的差别,但从整体上来看,这三大组件库的编译打包逻辑可以说是一模一样的。写这样的
2023年9月13日
其他

react-dnd 从入门到手写低代码编辑器

border-box;}测试下:确实,这样就给拖拽中的元素加上了对应的样式。但如果我们想把这个预览的样式也给改了呢?这时候就要新建个组件了:const
2023年9月3日
其他

推送数据?也许你不需要 WebSocket

})});监听到新的数据之后,把它返回给浏览器。浏览器连接这个新接口:测试下:可以看到,浏览器收到了实时的日志。很多构建日志都是通过
2023年8月29日
其他

基于 Axios 封装一个完美的双 token 无感刷新

success,服务端也打印了收到的参数:然后我们实现下登录逻辑:这里我们就不连接数据库了,就是内置几个用户,匹配下信息。const
2023年8月25日
其他

图解串一串 webpack 的历史和核心功能

环境下可以不打包,打包只是为了提升一些加载速度。但是浏览器环境就是必须要打包的了。因为会有很多的模块,如果不打包,运行时需要一个个加载,会很慢。前面讲到了手动编译各种资源,然后引入
2023年8月18日
其他

图解 history api 和 React Router 实现原理

ReactDOM.createRoot(document.getElementById('root'));root.render();通过
2023年8月11日
其他

整天用 Calendar 日历组件,不如自己手写一个吧!

console.log(calendarRef.current?.getDate().toLocaleDateString());
2023年7月19日
其他

通过调试技术,我理清了 b 站视频播放很快的原理

请求是能连起来的,也就是说边播边下载后面的部分。视频进度条这里的灰条也在更新:当你直接点击后面的进度条:观察下
2023年7月13日
其他

2023 年终总结 | 踏过千重浪,我想回到父母的身旁

过去半年,我经历了不少人生中的巨变。去年下半年的时候,我爸查出来淋巴癌,我和我妈匆匆往医院赶。当时我离职在家写一些东西,而我爸妈分居很久了。我爸一直说浑身痒,骨头痒,一直在抓。市医院确定不了分型,要去北京化验,不知道严不严重。和我爸聊天,他不知道从哪听说我离职回来的,说还是希望我有份正当工作。我答应了。然后我又找了份北京的工作。等了几天化验结果,迟迟没出来,我妈说我爸那边有她照顾,让我去上班就好了。后来我爸开始了化疗,慢慢的好多了,各种症状都没有了,而且能自己去化疗了。我也去了北京的一家新公司,开始了新一段的工作。当时以为一切都好起来了:没想到去年年底有一波疫情的爆发,很多人都阳了。医院自然是阳性的人扎堆的地方,我爸去化疗的时候也染上了,然后一直没好。本来免疫力就低,又阳了,好长时间都没退烧。当时快过年了,我也放假回家了。在医院听主治医生说,他们也没什么好的办法,血小板一直上不去,随时可能因为体内出血而去世,让我们做好心理准备。我当时真的很懵,不是都快化疗好了么,怎么又突然这么严重了?那时医生才告诉我,本来化疗好了也就活个一年,已经是晚期了,又阳了,没办法了。我爸浑身疼的睡不着觉,而且意识开始模糊了,说什么这是军区首长的特护病房,别人没这待遇之类的。清醒的时候我爸坚持要回家,我妈也同意了,于是叫了我大伯、二伯、堂哥来把我爸接回老家去了。回老家之后,我爸还是一直很疼,我想给我爸搞几只吗啡、杜冷丁这种止疼药,但是开不出来。最后去医院开了证明才拿到的强痛定,每天可以去开一支。给我爸注射之后,刚开始可能还有点用,我爸睡了一觉。后来第二天再注射就没用了,还是疼的止不住。那段时间,我亲眼看见我爸以肉眼可见的速度瘦成皮包骨,瘦到大腿还没我胳膊粗。疼到一直喊娘。癌症真的很残忍。我给我爸买了吸痰器,确实有用,把我爸的痰吸出来后,明显感觉到他呼吸顺畅了。我和我妈当时还挺高兴,以为能让我爸少受点罪。没想到那天下午,我爸开始大口大口的呼吸,然后突然就没声音了。我妈拿手试了一下,然后哭着让我去喊大伯二伯。那时我才知道大口呼吸是我爸在人世间最后的挣扎。我亲眼看到我爸装进棺材,送去火化,变成一坛骨灰,埋进土里。我把我印象中我爸的一生写了下来:我爸爸这一生,活出了他骄傲的样子生活还是要继续,丧假过后我又回北京上班去了。不知道为什么,我开始特别的想家,之前
2023年7月8日
其他

让你 React 组件水平暴增的 5 个技巧

React.Children.toArray、React.Children.forEach、React.Children.map有同学说,props.children
2023年7月6日
其他

基于 Nginx 实现一个灰度上线系统

软件开发一般不会上来就是最终版本,而是会一个版本一个版本的迭代。新版本上线前都会经过测试,但就算这样,也不能保证上线了不出问题。所以,在公司里上线新版本代码一般都是通过灰度系统。灰度系统可以把流量划分成多份,一份走新版本代码,一份走老版本代码。而且灰度系统支持设置流量的比例,比如可以把走新版本代码的流量设置为
2023年7月2日
其他

结合 Docker,快速掌握 Nginx 2 大核心用法

nginx1:/usr/share/nginx/html这样就好了:然后浏览器访问下试试:现在就可以访问容器内的这些目录了。也就是说只要放到
2023年7月1日
其他

掌握这 5 个技巧,让你的 Dockerfile 像个大师!

github:https://github.com/QuarkGluonPlasma/nestjs-course-code/tree/main/dockerfile-test总结Docker
2023年6月24日
其他

通过 Desktop 学 Docker 也太简单了

"8080"]这些指令的含义如下:FROM:基于一个基础镜像来修改WORKDIR:指定当前工作目录COPY:把容器外的内容复制到容器内EXPOSE:声明当前容器要访问的网络端口,比如这里起服务会用到
2023年5月26日
其他

Node.js 微服务如何实现注册中心和配置中心

微服务架构的系统都会有配置中心和注册中心。为什么呢?比如说配置中心:系统中会有很多微服务,它们会有一些配置信息,比如环境变量、数据库连接信息等。这些配置信息散落在各个服务中,以配置文件的形式存在。这样你修改同样的配置需要去各个服务下改下配置文件,然后重启服务。就很麻烦。如果有一个服务专门用来集中管理配置信息呢?这样每个微服务都从这里拿配置,可以统一的修改,并且配置更改后也会通知各个微服务。这个集中管理配置信息的服务就叫配置中心。再就是注册中心:微服务之间会相互依赖,共同完成业务逻辑的处理。如果某个微服务挂掉了,那所有依赖它的服务就都不能工作了。为了避免这种情况,我们会通过集群部署的方式,每种微服务部署若干个节点,并且还可能动态增加一些节点。那么问题来了:微服务
2023年5月17日
其他

世界那么大,我并不想去看看

节,大概会占据我半年的时间。这段时间也经历过不爽的事情:这套房子是我爸还在的时候,他看邻居在青岛买的房子一周涨几十多万,而且我也提到过可能回青岛工作,然后他就非让我妈去买一套。当时
2023年5月15日
其他

用 Puppeteer 把繁琐工作给自动化了,太爽啦!

最近在鱼皮的编程导航星球做嘉宾,需要输出一些内容。而很多内容我之前写过,所以想复制过来。这时候我就遇到了一个令人头疼的问题:知识星球的编辑器也太难用了!比如我在掘金编辑器里这样的
2023年5月8日
其他

调试 Jest 测试用例,有更强大的方式

这个测试用例,那就可以加上对应的参数:加上文件名和用例名。但这样每调试一个用例都得改下配置也太麻烦了,能不能我打开哪个文件,就跑哪个文件的用例呢?可以的。VSCode
2023年4月28日
其他

领导提拔你,第三看能力,第二看态度,第一看…

随着ChatGPT的大火,网络上都在担心未来会取代很多人的工作。移动时代淘汰了不少技术专家,IT人要学会抓住时代浪潮,不仅要精进自己的技术能力,更要加强自己的沟通表达能力和管理能力。想起之前某大厂的内部管理培训:“老板提拔你不是让你把下属的活也做了,不会管理下属,你就会成为员工的下属。”在座带过团队的都点头表示赞同。作为带过团队的过来人,我也深有体会。特别是刚从业务骨干升上来时,忙到脚不着地、厕所都来不及上,而下属却整天摸鱼划水,像个没事人一样。根本原因就是,管理者帮员工做了事情,担了责任。比尔翁肯曾提出一个有趣的管理理论——“背上的猴子”,意思是管理者把下属的活都大包大揽到自己身上来,导致团队效率低下,管理者面临被换的下场。想轻松做优秀管理,首先得“让猴子归位”。谁的猴子,就让谁自己背。1怎么归位?很多人也不会。我的一位朋友,兢兢业业干了4年基层后,去年年末终于晋升成技术主管。结果还不到3个月就向我抱怨要离职。刚晋升没几天,很快就被各种麻烦淹没:“比自己干累多了,时时刻刻盯着;底下不是自己招的人,不服管,拖延还老是顶嘴;领导开始冷落部门,对我也不这么上心了,感觉自己真的不适合做管理……”朋友一说,我立马明白了。这是典型的缺乏系统管理方法的表现,明明自己干的时候如鱼得水,做管理反而一塌糊涂,还常常给人擦屁股。时常陷入了自我怀疑——以前,你的业绩是有目共睹的,现在,你的团队业绩却亮起了红灯;以前,自己花10分钟就干好的工作,现在,要花2个小时教下属做;以前,工作轻松时间充足,现在,疲于奔命沦为“救火队长”这些都很正常,至少90%的管理者都遇到过。职场上大多数老板,只会让你当管理,而不会教你怎么做管理。一没有经验,二没有人带,三没有现成的方法。团队很难做出成绩,你的职业瓶颈也很快到来。我们常说“兵熊熊一个,将熊熊一窝”。要想快速适应角色转变,成为一名优秀的管理者,我建议你学习下MTP管理(Management
2023年4月26日
其他

为什么说前端监控系统离不开 RabbitMQ?

前端监控系统是采集用户端的异常、性能、业务埋点等数据上报,在服务端做存储,并支持可视化分析的平台。用户量可能很大,采集的数据可能比较多,这时候服务端的并发压力会比较大,要是直接存入数据库,那数据库服务很可能会崩掉。那就用现在的数据库,如何保证面对大量并发请求的时候,服务不崩呢?答案就是消息队列,比如常用的
2023年4月24日
其他

快速入门 Redis 并在 Node.js 里操作它

是数据卷,也就是挂载本地目录到容器的一个目录。为什么要挂载数据卷呢?因为镜像是不可修改的,每次运行都是全新的,但如果每次跑
2023年4月21日
其他

为什么说 Nest.js 提供了 Express 没有的架构能力?

并不是一个框架,它只是提供了基于中间件的请求响应处理流程。但它并没有规定代码应该怎么组织,怎么复用,怎么集成各种方案,所以代码能写成各种样子,这对于大项目开发来说是很难维护的。所以出现了更上层的
2023年4月19日