SF
莫凡的前端专栏
莫凡的前端专栏
注册登录
关注博客
注册登录
主页
关于
RSS
从源码全面剖析 React 组件更新机制
莫凡
2018-04-17
阅读 14 分钟
15.1k
React 把组件看作状态机(有限状态机), 使用state来控制本地状态, 使用props来传递状态. 前面我们探讨了 React 如何映射状态到 UI 上(初始渲染), 那么接下来我们谈谈 React 时如何同步状态到 UI 上的, 也就是:
React源码分析(二)
莫凡
2018-03-17
阅读 7 分钟
3.6k
上一篇文章讲到了React 调用ReactDOM.render首次渲染组件的前几个过程的源码, 包括创建元素、根据元素实例化对应组件, 利用事务来进行批量更新. 我们还穿插介绍了React 事务的实现以及如何利用事务进行批量更新的实现. 这篇文章我们接着分析后面的过程, 包括调用了哪些事务, 组件插入的过程, 组件生命周期方法什么时候被...
窥探React - 源码分析
莫凡
2018-02-11
阅读 11 分钟
3.8k
所谓知其然还要知其所以然. 本文将分析 React 15-stable的部分源码, 包括组件初始渲染的过程和组件更新的过程.在这之前, 假设读者已经:
浏览器中的事件循环机制
莫凡
2018-01-08
阅读 5 分钟
8.8k
网上一搜事件循环, 很多文章标题的前面会加上 JavaScript, 但是我觉得事件循环机制跟 JavaScript 没什么关系, JavaScript 只是一门解释型语言, 方便开发和理解的, 由V8 JIT将 JavaScript 编译成机器语言来调用底层, 至于浏览器怎么执行 JavaScript 代码, JavaScript 管不着也不关心. 因此, “JavaScript事件循环机制”这种...
认识node核心模块--网络编程
莫凡
2017-11-23
阅读 5 分钟
3.6k
在构建网络通信服务方面,相比于其他老牌后端语言,Node.js 同样能够胜任(也许更胜一筹),并且有自己独特的处理方式。node是一个面向网络而生的平台,它的事件驱动、非阻塞、单线程使node应用程序具有低内存、高并发、伸缩性强的优良特性,适合在分布式网络大展身手。Node底层实现了传输层TCP/UDP、应用层HTTP/HTTPS的功...
认识node核心模块--从Buffer、Stream到fs
莫凡
2017-11-12
阅读 6 分钟
13.5k
node中的Buffer和Stream会给刚接触Node的前端工程师们带来困惑,原因是前端并没有类似概念(or 有我们也没意识到)。然而,在后端,在node中,Buffer和Stream处处体现。Buffer是缓冲区的意思,Stream是流的意思。在计算机中,缓冲区是存储中间变量,方便CPU读取数据的一块存储区域;流是类比水流形容数据的流动。Buffer和S...
认识node核心模块--深入EventEmitter
莫凡
2017-11-03
阅读 8 分钟
3.5k
node 采用了事件驱动机制,而EventEmitter 就是node实现事件驱动的基础。在EventEmitter的基础上,node 几乎所有的模块都继承了这个类,以实现异步事件驱动架构。继承了EventEmitter的模块,拥有了自己的事件,可以绑定/触发监听器,实现了异步操作。EventEmitter是node事件模型的根基,由EventEmitter为基础构建的事件...
认识node核心模块--全局对象及Cluster
莫凡
2017-10-26
阅读 6 分钟
3.3k
node 模块是node 完成强大功能的实现者。node 的核心模块包括events、fs、buffer、stream、cluster、http、net、一些操作OS和工具模块、全局对象等。本文将在node核心特性理解的基础上进一步深入探讨node核心模块的具体细节。本文主要探讨的模块有:全局对象global及其重要属性、多进程cluster、events重要类EventEmitte...
node核心特性理解
莫凡
2017-10-14
阅读 5 分钟
5k
node是在前端领域经常看到的词。node对于前端的重要性已经不言而喻,掌握node也是作为合格的前端工程师一项基本功了。知道node、知道后端的一些东西,才能更好的与别人合作,发挥更大的价值。
前端面试&滴滴实习心得
莫凡
2017-10-12
阅读 3 分钟
9.3k
从大二下学期放暑假开始(7.14)到8月初,我一直在寻找一份实习,锻炼一下自己,看看学的怎么样。这期间,我相继面试了小米、途牛、滴滴和百度,都拿了实习offer。其中百度拿了两次实习offer,但由于我自身一些原因,都爽约了。(在这里给百度真诚地道个歉,我非常珍视这两次机会,但无奈遇到了不可抗拒的原因,今后有机...
dva值得一试
莫凡
2017-10-12
阅读 5 分钟
20.9k
使用React技术栈管理大型复杂的应用往往要使用Redux来管理应用的状态,然而随着深度使用,Redux也暴露出了一些问题。如编写页面配套(action、reducer)过于繁琐、复杂,组件之间耦合较深、不够扁平化、调用action creator发起动作破坏action纯洁性且必须层层传递等。这些缺点迫使使用Redux的人开始探索好的架构方式,解...
对使用Redux和Redux-saga管理状态的思考
莫凡
2017-10-12
阅读 5 分钟
5.6k
You know, React 只是属于MV*架构模式的 view 层,是一种状态机,只使用 React 难以控制大型、复杂的应用,它需要一些框架来帮助管理状态,因此如何有效、简单、易于测试地管理这个状态机是各种架构框架感兴趣的。Facebook 早就意识到这个问题并提出了 Flux 架构,比较复杂; 后来出现了 Redux、Mobx 等。MobX 可以处理简...
React + Redux + react router技术栈架构
莫凡
2017-10-12
阅读 4 分钟
3.6k
本文是《使用React技术栈的一些收获》系列文章的第一篇(第二篇在这里,介绍了React的一些原理)。这篇文章则介绍了大型React项目是如何架构的以及架构的原理和思想。项目背景是一个博客发布平台,类似于简书,项目地址时光笔记(还未完善...)
对React一些原理的理解
莫凡
2017-10-12
阅读 5 分钟
7k
随着项目开发的深入,不可避免了遇到了一些问题。刚开始出现问题时很懵,不知道该怎么解决,原因就是对React的原理理解的不够透彻,不知道问题出在哪。在解决问题的过程中,也逐渐深入了解了React的一些原理,这篇文章就来分享一下我对React一些原理的理解。
我对JavaScript对象的理解
莫凡
2017-10-11
阅读 12 分钟
2.1k
注意(这篇文章特别长)这篇文章仅仅是我个人对于JavaScript对象的理解,并不是教程。这篇文章写于我刚了解js对象之后。文章肯定有错误之处,还望读者费心指出,在下方评论即可^-^