• Stars
    star
    774
  • Rank 58,703 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Resources for React Fiber

React Fiber resources PRs Welcome

This is a repository for resources about React Fiber.

React Fiber is a new React reconciliation algorithm, which started using from v16. React Fiber makes many features like Suspense and Concurrent Mode possible.

Concurrent Mode is still in experimental stage, but React already has the documentation so you can see what Concurrent Mode makes possible at the documentation.

https://reactjs.org/docs/concurrent-mode-intro.html

React internal algorithm

If you are not familiar with React internals, I recommend you reading the documentations first, which are very helpful resources.

React Fiber

Articles & Slides

Videos

React Fiber function call stacks

[Note] React Fiber now behaves as synchronous by default. See #8127. This call stacks are results in the time when it behaved as asynchronous.

ReactDOMFiber

React Fiber function call stack

ReactDOM

ReactDOM function call stack

ReactDOMFiber with 10000 items (Async Scheduling)

React Fiber function call stack with 10000 items (async)

--- working asynchronously ---------------------------------------------------------------------------
| ------- Fiber ---------------    ------- Fiber ---------------    ------ Fiber ---------------     |
| | beginWork -> completeWork | -> | beginWork -> completeWork | -> |beginWork -> completeWork | ... |
| -----------------------------   ------------------------------    ----------------------------     |
------------------------------------------------------------------------------------------------------
                      ↓↓↓
-----------------------------------------------------------------------
| commitAllWork(flush side effects computed in the above to the host) |
-----------------------------------------------------------------------

ReactDOMFiber with 10000 items (Sync Scheduling)

React Fiber function call stack with 10000 items (sync)

ReactDOM with 10000 items

ReactDOMFiber function call stack with 10000 items

React Fiber call tree

ReactDOMFiber call tree

Related Words

Custom Renderer Interface

React doesn't depend on any specific environments like DOM and React provides us a way to create own custom renderers based on Fiber reconciliation. ReactDOM and ReactNative are implemented as one of the custom renderers.

I've presented about the custom renderer; here is the link to the slide.

The following is a custom renderer named react-fs, which is a renderer for fs package

const React = require('react');
const { ReactFS } = require('@koba04/react-fs');

const targetDir = "test-react-fs-project";
ReactFS.render(
  <>
    <file name="README.md">
      # Title
    </file>
    <directory name="src">
      <file name="index.js">
        console.log("Hello");
      </file>
    </directory>
  </>,
  targetDir
);

ReactNoop

ReactNoop is a renderer for React Fiber, which is using for testing and debugging. It is very useful to understand React Fiber renderer!! 👀

More Repositories

1

swr-devtools

A DevTool for SWR
TypeScript
220
star
2

react-boilerplate

React + Flux + ServerSideRendering Sample
JavaScript
200
star
3

vuejs-book

This book is vue.js guide book.
CoffeeScript
97
star
4

react-hacker-news-stories

A React sample app using HackerNews API
TypeScript
47
star
5

react-server-side-rendering-sample

for React.js AdventCalendar 2014
JavaScript
32
star
6

next-app-router-hacker-news-demo

TypeScript
23
star
7

vue-boilerplate

My Vue.js boilerplate
JavaScript
22
star
8

react-suspense-demo

A demo for React Suspense
JavaScript
16
star
9

minimum-spa-boilerplate

A minimum single page application template
JavaScript
15
star
10

ecma-version-validator-webpack-plugin

A wepback plugin to verify ECMAScript version for bundle files.
TypeScript
15
star
11

canvas-exif-orientation

draw a image on a canvas dependent on Exif Orientation.
JavaScript
14
star
12

backbone-boilerplate

my boilerplate of backbone.js
JavaScript
13
star
13

react-handson-for-beginner

A React Hands-on resources for beginners
CSS
12
star
14

react-fs

A React custom renderer for file sysmte
TypeScript
12
star
15

react-hooks-like-redux

A simple Redux like counter demo app using React Hook APIs
JavaScript
10
star
16

vuejs-mokumoku

study for socket.io + vue.js (express) #vuejs-mokumoku
JavaScript
9
star
17

jsconf-jp-presentation

This is my presentation of JSConf JP 2019
TypeScript
8
star
18

YouTube-Continuous-Player

JavaScript sample of youtube continuous play
7
star
19

p5-cdlm

Web Application of CountDown LastFM Ranking Play by YouTube
Perl
6
star
20

redux-store-structure-patterns

Patterns for Redux Store with a data structure that has nested relationships
TypeScript
5
star
21

p5-webservice-youtube-lite

YouTube Data API Interface
Perl
4
star
22

react-custom-renderer-starter

An implementation for a custom renderer for React
TypeScript
3
star
23

gatsby-source-kintone

A Gatsby plugin for kintone
CSS
3
star
24

p5-webservice-lastfm-lite

LastFM API Interface
Perl
3
star
25

p5-teng-plugin-searchhashref

Teng plugin like a DBI's selectall_hashref.
Perl
3
star
26

dotfiles

manage dotfiles
Shell
3
star
27

which-packages-drop-ie11-support

Packges that will or did drop IE11 support
2
star
28

react-timeslicing-demo

JavaScript
2
star
29

mini-typescript-rs

Rust
2
star
30

routing-in-flux-example

A sample for a pattern to manage routing in Flux
JavaScript
2
star
31

grunt-easymock

node-easymock for grunt
JavaScript
2
star
32

Twtter-Search-Client

Twitter Search API Client (Perl, Javascript, ...)
Java
2
star
33

eslint-plugin-fixclosure

A ESLint plugin for fixclosure
JavaScript
2
star
34

blog

koba04's blog
TypeScript
2
star
35

Wattr

TitanuimでWassrクライアントを作ってみる。
JavaScript
2
star
36

amzn-cloudflare-workers

Rust
2
star
37

install-scripts

disclose scripts running on `npm install`
JavaScript
2
star
38

cookbooks-anyenv

anyenv cookbook for chef
Ruby
2
star
39

p5-tengstudy

Studying O/R Mapper Teng
Perl
2
star
40

eslint-plugin-closure-library

A ESLint plugin for Closure Library
JavaScript
2
star
41

kintone-rest-api-playground

A playground for kintone REST API
TypeScript
1
star
42

leetcode-solutions-with-rust

LeetCode Solutions with Rust
Rust
1
star
43

Amon2-Plugin-Web-Raw

Perl
1
star
44

koa-react-tweets

Twitter stream sample by koa + React.js
JavaScript
1
star
45

koba04

1
star
46

kintone-oauth-token-rs

A command to get a OAuth token for Kintone
Rust
1
star
47

eslint-config-koba04

An ESLint configuration for koba04
JavaScript
1
star
48

lerna-yarn-sandbox

A sandbox repository for lerna + yarn workspaces
JavaScript
1
star
49

kintone-rs

An API client for kintone
Rust
1
star
50

typescript-in-closure

This is a sandbox repository for TypeScript in Google Closure
Shell
1
star
51

karma-say-reporter

A Karma reporter plugin. Reports overall results by OSX "say" command.
JavaScript
1
star
52

rollup-plugin-ecma-version-validator

A rollup plugin to verify ECMAScript version for bundle files
TypeScript
1
star
53

npm-v8-workspaces-test

A test repository for npm workspaces in v8
1
star
54

react-logging-renderer

JavaScript
1
star
55

renovate-sandbox

This is a sandbox repository for Renovate
1
star
56

lerna-sandbox

A sandbox repository for Lerna
JavaScript
1
star
57

react-redux-extended-hooks

A React Hooks for React Redux applications
TypeScript
1
star
58

find-ancestor-modules

Find all ancestor ES Modules in projects
TypeScript
1
star
59

xcode-operation

xcode-operation(keyboard shortcut...)
1
star
60

koba04.com

JavaScript
1
star
61

framework-agnostic-domain-layer

A reference implementation for a framework agnostic domain layer.
TypeScript
1
star