react渲染原理分析
前言本篇文章作为react源码分析与优化写作计划的第一篇,分析了react是如何创建vdom和fiber tree的。本篇文章通过阅读react 16.8及以上版本源码以及参考大量分析文章写作而成,react框架本身算法以及架构层也是不断的在优化,所以源码中存在很多legacy的方法,不过这并不影响 ...
Read more
从斐波那契数列看两种常用算法和优化
欢迎关注我:Github 斐波拉契数列是一个非常经典的数学概念,早在 1202 年就由意大利数学家 Leonardo Fibonacci 提出。它的递推方法定义为:F(1) = 1, F(2) = 1, F(n) = F(n - 1) + F(n - 2)(n ≥ 3,n ∈ N*)。本文主要从递归 ...
Read more
基于TypeScript与React Hooks开发的通用组件库
项目地址:react-draggable-layer 前言2019 年以来,越来越多的公司与项目都选择使用强类型语言 TypeScript 作为主要语言,可以预见的是 2020 年 TypeScript 将成为前端开发所需要具备的能力之一。 目前前端工程师使用最多的无疑问是微软开源的 VSCode, ...
Read more
如何优雅的使用Web Worker
欢迎star:complex-calculations-worker Web Worker是HTML5中提出的概念,用来处理独立于主线程处理高费时的任务,从而不会阻塞主线程。目前绝大部分浏览器都支持Web Worker功能,不过使用时要注意它不能操纵DOM元素、同源政策等问题。 Web Worker ...
Read more
React Hooks技术最佳实践(二)
useEffectuseEffect是除useState之外使用最常用的Hooks之一,它可以用来管理副作用,替代传统class组件中的componentDidMount和componentWillUnmount方法或是根据依赖项来执行代码。 useEffect的用法并不复杂,但是如果对于它的执行过 ...
Read more
React Hooks技术最佳实践(一)
前言React 16.8版本发布于2019年2月6号,它带来了Hooks特性,能够让我们不编写class的情况下也能使用state以及其他的React特性。一个新技术的诞生必然会影响原来的思维模式,在最初的应用中也会碰见很多意想不到的场景和陷阱,这就需要我们在使用他们前清楚的知道哪里可能会有潜在的问 ...
Read more
Memoization技术在React中的应用
最近在研究React Hook优化时,发现Memoization技术被官方广泛的使用,比如useCallback和useMemo这两个API,分别用来返回函数的memoized版本和memoized值。Memoization其实并不是什么新技术,只是一种优化技巧,维基百科对Memoization的定 ...
Read more
使用React Hook实现Redux状态机
Redux is a predictable state container for JavaScript apps. 本文的代码可以在CodeSandbox中查看。 Redux是React经常用到的一个数据状态管理器(状态机),它将应用中所有的数据(state)以对象树的形式存储在store中 ...
Read more
Reselect源码解析
Reselect主要为Redux的state数据提供了Memoize功能。它能够计算数据,传递最少且必要的state值;具有高性能,只在传递值改变时才会重新计算;具有可组合性,可以将它作为参数传递给其他selectors执行。 下面是个最基础的使用方式,可以跳转codepen来运行栗子 crea ...
Read more