简单读懂React Fiber
前言React在带给前端便捷开发体验的同时,也在不断的尝试新的技术体验,为开发者带来新的惊喜。16版本之后,例如hooks机制引入,仿佛打开了新世界的大门。除此之外,另一个机制fiber,虽然对开发者比较透明,不像hooks那样开发者能直接调用,但光从2年左右的研发期可以看出,可见FB开发团队对其的 ...
babel知识备忘录
前言babel已经是现代前端开发不可或缺的神器,感谢babel,让我们提前享受es6带来的爽快,也许有朝一日当浏览器对es6的普遍支持,使得我们不再依赖babel,但作为一名前端开发,babel是神一般的存在。长期记录零碎的知识点,温故知新。babel是什么,能做什么,基本概念,不再赘述,详情可见b ...
Eventloop和Render的相关总结
前言前两天针对react hooks的理解中,涉及了render的时序。这让我想到event loop,因此还是来回顾总结下event loop以及render的相关知识吧。
事件循环在进入正题前,我们先看看几个点:
首先,javascript是单线程的,这是由于需要操作DOM决定的,多线程操作了 ...
【译】现代JavaScript概念术语part1——函数响应式编程(functional reactive programming)
函数响应式编程简单地说,函数响应式编程可以概括为随着时间的推移以声明的方式响应事件或行为(译者注:监听事件,纯函数处理)。更深入理解FRP,我们先来看一下FRP的公式,然后再研究它与JavaScript的关系。
什么是函数响应式编程?FPR公式制定者的(Conal Elliot)给出了一个完整的定义 ...
【译】现代JavaScript概念术语part1——响应式编程(reactive programming)
响应式编程响应式编程关注于随着时间推移,以声明方式(做什么,而不是怎么做)去响应传入事件。响应式编程经常与响应式扩展相关联,是一种对可观察流的异步编程API。响应式扩展(简称Rx*)为各种语言提供了三方库,也包括JavaScript(RxJS)。
实践:JavaScript中的响应式编程这有一个带有 ...
【译】现代JavaScript概念术语part1——可观察对象(observables)
可观察对象可观察对象类似于数组,除了不是存储在内存中,而是随着时间异步获取到的(也称为流)。我们能订阅可观察对象并响应它们触发的事件。JavaScript可观察对象是通过观察者模式实现的,Reactive Extensions(通常称为Rx*)通过RxJS为JS提供了一个可观察的库。
为了说明可观察 ...
【译】现代JavaScript概念术语part1——函数式编程(functional programming)
函数式编程看到这里,我们已经了解了关于纯净性,状态,不可变性,声明式编程和高阶函数的内容。这些都是理解函数式编程范式至关重要的概念。
实践:用JavaScript来函数式编程函数式编程由以下概念构成:
主要功能由没有副作用的纯函数实现。
数据是不可变的。
功能函数是无状态的。
外部容器(命令式)代 ...
【译】现代JavaScript概念术语part1——高阶函数(higher-order function)
高阶函数高阶函数式这样的一个函数:
接受另一个函数做为参数
返回一个函数做为结果
在JavaScript世界里,函数是一等公民。它们能被当成值一样保存和传递:我们能把函数赋值给一个变量,或传递一个函数到另一个函数里。
123456const double = function(x) { ...
【译】现代JavaScript概念术语part1——命令式(imperative)和声明式(declarative)编程
命令式编程和声明式编程某些语言被设计成命令式(C,PHP),而某些被设计成声明式(SQL,HTML),JavaScript(其余如Java和C#)则能支持这两种编程范式。大部分熟悉基本JavaScript的开发者惯用命令式编码:用指令告诉计算机怎么达到预期的结果。如果你写过for循环,那么你就写过命 ...
【译】现代JavaScript概念术语part1——不变性(immutability)和可变性(mutability)
不变性和可变性相比其他编程语言,不变性和可变性的概念在JavaScript中略显模糊,然而当阅读JS函数式编程时,你仍然会感受到关于不变性的概念。了解它们为何具有经典意义以及在JavaScript中如何引用和实现是极其重要的。定义非常简单:
不变性(immutable)如果一个对象具有不变性,那它的 ...