0%

介绍

与创建型模式类似,工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。

工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。

这个模式十分有用,尤其是创建对象的流程赋值的时候,比如依赖于很多设置文件等。并且,你会经常在程序里看到工厂方法,用于让子类类定义需要创建的对象类型。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var productManager = {};

productManager.createProductA = function () {
console.log('ProductA');
}

productManager.createProductB = function () {
console.log('ProductB');
}

productManager.factory = function (typeType) {
return new productManager[typeType];
}

productManager.factory("createProductA");
阅读全文 »

Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。 promise有三种状态:pending( 等待态 ),fulfiled( 成功态 ),rejected( 失败态 ) 状态一旦改变,就不会再变。创造promise实例后,它会立即执行。

promise是用来解决两个问题的:

  • 回调地狱,代码难以维护, 常常第一个的函数的输出是第二个函数的输入这种现象
  • promise可以支持多个并发的请求,获取并发请求中的数据
  • promise可以解决异步的问题,本身不能说promise是异步的
    阅读全文 »

假设Greeting组件,它支持定义成类和函数两种性质。
如果 Greeting 是一个函数,React 需要调用它。

1
2
3
4
5
6
// Greeting.js
function Greeting() {
return <p>Hello</p>;
}
// React 内部
const result = Greeting(props); // <p>Hello</p>
阅读全文 »

  • React现在的渲染都是由Fiber来调度
  • Fiber调度过程中的两个阶段(以Render为界)
产生原因
  1. Fiber之前的reconciler(被称为 Stack reconciler )自顶向下的递归mount/update,无法中断(持续占用主线程),这样主线程上的布局、动画等周期性任务以及交互响应就无法立即得到处理,影响体验
  2. 渲染过程中没有优先级
React Fiber的方式

把一个耗时长的任务分成很多小片,每一个小片的运行时间很短,虽然总时间依然很长,但是在每个小片执行完之后,都给其他任务一个执行的机会,这样唯一的线程就不会被独占,其他任务依然有运行的机会

React Fiber把更新过程碎片化,执行过程如下面的图所示,每执行完一段更新过程,就把控制权交还给React负责任务协调的模块,看看有没有其他紧急任务要做,如果没有就继续去更新,如果有紧急任务,那就去做紧急任务。

阅读全文 »

Type与Interface区别

可以在extend或Implements子句中命名接口,但是不能为对象类型文字提供类型别名。
一个接口可以具有多个合并的声明,但是对象类型文字的类型别名不能。

type可以用于其它类型(联合类型、元组类型、基本类型[原始值]),interface不支持

阅读全文 »

这里有东西被加密了,需要输入密码查看哦。
阅读全文 »