ltaoo's web


  • 首页

  • 分类

  • 归档

  • 标签
ltaoo's web

记 react-reconciler and host 分享

发表于 2020-05-13  |  2020-06-07

cover

阅读全文 »
ltaoo's web

setState 是同步还是异步

发表于 2020-04-13  |  2020-04-13   |   分类于 React

以下内容均基于 16.8.6 版本。

setState 是同步还是异步,这个问题很多人讨论过,各种说法都有,面试时也经常会问到,那它到底是同步还是异步呢?

我认为,它既是同步的,也是异步的。

阅读全文 »
ltaoo's web

react 源码中的 findHighestPriorityRoot 方法

发表于 2020-04-08  |  2020-04-09

在看源码时,可以看到有这么一个方法,从函数名来看,是「找到优先级最高的 root」,但每个应用只有一个 root,那为什么还要去「找」呢?
因为 react 支持多个实例,即支持调用多次 ReactDOM.render。如果他们同时发生更新,也要有个先后关系,这个方法,就是用来从多个实例对应的 root 中,找出最先进行更新的那个 root。

阅读全文 »
ltaoo's web

React 源码中的位运算

发表于 2020-02-08  |  2020-02-08   |   分类于 React

看 react 源码过程中,发现这样的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const NoContext = /*                    */ 0b000000;
const BatchedContext = /* */ 0b000001;
const EventContext = /* */ 0b000010;
const DiscreteEventContext = /* */ 0b000100;
const LegacyUnbatchedContext = /* */ 0b001000;
const RenderContext = /* */ 0b010000;
const CommitContext = /* */ 0b100000;

let executionContext = NoContext;
executionContext &= ~BatchedContext;
executionContext |= LegacyUnbatchedContext;

if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {
// We're inside React, so it's fine to read the actual time.
return msToExpirationTime(now());
}

~、| 和 & 都是「位运算操作符」,平常写代码很少会用到,导致完全不理解这些运算符有什么用,react 源码中这些代码到底是什么意思呢?

阅读全文 »
ltaoo's web

nodejs 中的 Cache-Control

发表于 2020-01-05  |  2020-01-05   |   分类于 node

我一直对前端需要「熟悉」浏览器缓存是持疑问态度的,因为前端无法控制缓存,即无法通过代码或者某种方式来指定某些资源是否需要缓存。
举个例子,我们的 index.html 文件中引入了 bundle.js 这个文件,我们希望在每次刷新页面时,都不要使用缓存,每次都去服务器获取最新的 bundle.js 文件。
要实现这个需求,只从前端的角度来思考,怎么做?
或许有人会说 meta 标签支持指定 Cache-Control,但这是针对全站资源,如果只是针对特定的资源如 bundle.js 获取最新的,其他资源照样使用缓存。
似乎是无法实现的。那什么角色应该了解这些内容呢?

阅读全文 »
ltaoo's web

Three.js 渲染自定义模型

发表于 2020-01-02  |  2020-01-04   |   分类于 THREE

Three.js 虽然内置了一些模型,但在实际业务中往往需要导入外部模型,导入的模型可以视为自定义模型。

首先要知道的是模型本质上来说是「三维坐标的集合」,最简单的一个模型可以用三个坐标和连接这三个坐标的「面」来表示。

阅读全文 »
ltaoo's web

怎么简单地在 canvas 中完成旋转

发表于 2019-12-04  |  2019-12-04   |   分类于 JavaScript

手上接到一个需求,将多种图片经过放大、旋转后绘制在一张 canvas 上,放大都还好理解,但旋转真的是废头发。

阅读全文 »
ltaoo's web

babel-preset-es2015 详解

发表于 2019-07-11  |  2020-02-08   |   分类于 JavaScript

babel-preset-es2015 是能将 es2015 新特性转换成 es3 的 babel plugin 的集合,这些集合到底包含了哪些插件呢,这篇博客会一一列出。

阅读全文 »
ltaoo's web

antd 自定义表单的问题 - 2

发表于 2018-10-23  |  2018-10-23   |   分类于 React
antd 自定义表单的问题 - 1

前面提到,「基本信息」包含姓名、出生年月、性别、城市以及邮箱共 5 个输入项。而其中性别、省市与邮箱封装为了单独的组件,因为这类组件包含特有的数据或者逻辑。

  • 性别选择,因为有性别对应的 value。当然也可以将性别数据作为常量引入。
  • 省市选择,包含了省市信息。
  • 邮箱,有补全邮箱后缀等逻辑。

antd官网中「自定义表单组件」就是一个有「特有逻辑」的组件,它同时包含两个字段。

阅读全文 »
ltaoo's web

python 按顺序合并 ts 文件

发表于 2018-10-22  |  2018-10-22   |   分类于 Python

cctalk 缓存视频后,实际缓存的是视频切片并加密的 ts 文件,将视频片段解密后,需要解决的问题就是如何合并视频片段。

阅读全文 »
12…6
ltaoo

ltaoo

website of litao

55 日志
10 分类
53 标签
RSS
Links
  • 邱俊的博客(Jun Qiu's Blog)
© 2020 ltaoo
由 Hexo 强力驱动
主题 - NexT.Mist