加载中
RSA初探,聊聊怎么破解HTTPS

这篇文章跟大家讨论一个比较有意思的问题:怎么破解https?大家都知道,现在几乎整个互联网都采用了https,不是https的网站某些浏览器还会给出警告。面试中也经常问到https,本文会深入https...

深入Node.js的模块加载机制,手写require函数

模块是Node.js里面一个很基本也很重要的概念,各种原生类库是通过模块提供的,第三方库也是通过模块进行管理和引用的。本文会从基本的模块原理出发,到最后我们会利用这个原理,自己实现一个...

03/30 14:23
3.4K
从Generator入手读懂co模块源码

这篇文章是讲JS异步原理和实现方式的第四篇文章,前面三篇是: setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop 从发布订阅模式入手读懂Node.js的EventEmitter源码 手写一...

03/22 10:15
1.5K
手写React-Router源码,深入理解其原理

上一篇文章我们讲了React-Router的基本用法,并实现了常见的前端路由鉴权。本文会继续深入React-Router讲讲他的源码,套路还是一样的,我们先用官方的API实现一个简单的例子,然后自己手写这...

使用React-Router实现前端路由鉴权

React-Router是React生态里面很重要的一环,现在React的单页应用的路由基本都是前端自己管理的,而不像以前是后端路由,React管理路由的库常用的就是React-Router。本文想写一下React-Route...

手写一个Promise/A+,完美通过官方872个测试用例

前段时间我用两篇文章深入讲解了异步的概念和Event Loop的底层原理,然后还讲了一种自己实现异步的发布订阅模式: setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop 从发布...

手写一个React-Redux,玩转React的Context API

上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库。这个库的作...

02/24 10:55
1.4K
技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?

我从事技术写作的时间其实不长,开始写作的时间就是我掘金账号注册的时间: 到今天(2021年2月23日)也就是一年零一个月,这一年的收获是超过我的预期的: 产出博文四十多篇,总共数十万字 掘金...

手写一个Redux,深入理解其原理

Redux可是一个大名鼎鼎的库,很多地方都在用,我也用了几年了,今天这篇文章就是自己来实现一个Redux,以便于深入理解他的原理。我们还是老套路,从基本的用法入手,然后自己实现一个Redux来...

从发布订阅模式入手读懂 Node.js 的 EventEmitter 源码

前面一篇文章setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop详细讲解了浏览器和Node.js的异步API及其底层原理Event Loop。本文会讲一下不用原生API怎么达到异步的效果,...

02/03 13:43
1.8K
setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop

笔者以前面试的时候经常遇到写一堆setTimeout,setImmediate来问哪个先执行。本文主要就是来讲这个问题的,但是不是简单的讲讲哪个先,哪个后。笼统的知道setImmediate比setTimeout(fn, 0)先执...

手写React的Fiber架构,深入理解其原理

熟悉React的朋友都知道,React支持jsx语法,我们可以直接将HTML代码写到JS中间,然后渲染到页面上,我们写的HTML如果有更新的话,React还有虚拟DOM的对比,只更新变化的部分,而不重新渲染整...

JS作用域和变量提升看这一篇就够了

作用域是JS中一个很基础但是很重要的概念,面试中也经常出现,本文会详细深入的讲解这个概念及其他相关的概念,包括声明提升,块级作用域,作用域链及作用域链延长等问题。 什么是作用域 第一...

01/19 10:43
2.1K
轻松理解JS中的面向对象,顺便搞懂prototype和__proto__

这篇文章主要讲一下JS中面向对象以及 proto,ptototype和constructor,这几个概念都是相关的,所以一起讲了。 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道,如果我要定义一个...

速度提高几百倍,记一次数据结构在实际工作中的运用

这段时间写了一堆源码解析,这篇文章想换换口味,跟大家分享一个我工作中遇到的案例。毕竟作为一个打工人,上班除了摸鱼看源码外,砖还是要搬的。本文会分享一个使用恰当的数据结构来进行性能...

01/06 11:07
8.6W
使用mono-repo实现跨项目组件共享

本文会分享一个我在实际工作中遇到的案例,从最开始的需求分析到项目搭建,以及最后落地的架构的整个过程。最终实现的效果是使用mono-repo实现了跨项目的组件共享。在本文中你可以看到: 从接...

this到底指向啥?看完这篇就知道了!

JS中的this是一个老生常谈的问题了,因为它并不是一个确定的值,在不同情况下有不同的指向,所以也经常使人困惑。本篇文章会谈谈我自己对this的理解。 this到底是啥 其实this就是一个指针,它...

2020/12/29 14:33
5.3K
轻松理解 HTTP 缓存策略

上一篇文章我写了koa-static的源码解析,其中用到了HTTP的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control之类的。于是我就跟朋友讨论了一下HTTP的缓存策略: 朋友说:“H...

2020/12/22 14:42
2.9K
手写koa-static源码,深入理解静态服务器原理

这篇文章继续前面的Koa源码系列,这个系列已经有两篇文章了: 1.第一篇讲解了Koa的核心架构和源码:手写Koa.js源码[1]2.第二篇讲解了@koa/router的架构和源码:手写@koa/router源码[2] 本文会...

不知道怎么封装代码?看看这几种设计模式吧!

为什么要封装代码? 我们经常听说:“写代码要有良好的封装,要高内聚,低耦合”。那怎样才算良好的封装,我们为什么要封装呢?其实封装有这样几个好处: 封装好的代码,内部变量不会污染外部...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部