All Projects → jiayihu → React Tiny Dom

jiayihu / React Tiny Dom

🍙 A minimal implementation of react-dom using react-reconciler

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Tiny Dom

React Fiber Implement
re-implement react fiber
Stars: ✭ 520 (+20.37%)
Mutual labels:  fiber, react-dom
React Three Fiber
🇨🇭 A React renderer for Three.js
Stars: ✭ 16,097 (+3626.16%)
Mutual labels:  fiber, renderer
ore-ui
💎 Building blocks to construct game UIs using web tech.
Stars: ✭ 122 (-71.76%)
Mutual labels:  renderer, fiber
makma
Makma is a deferred Vulkan renderer written in C++.
Stars: ✭ 77 (-82.18%)
Mutual labels:  renderer
fiber-boilerplate
This is the go boilerplate on the top of fiber web framework. With simple setup you can use many features out of the box
Stars: ✭ 184 (-57.41%)
Mutual labels:  fiber
React Particles Webgl
🔆 A 2D/3D particle library built on React, Three.js and WebGL
Stars: ✭ 330 (-23.61%)
Mutual labels:  fiber
React Ssr Prepass
A custom partial React SSR renderer for prefetching and suspense
Stars: ✭ 411 (-4.86%)
Mutual labels:  react-dom
x-ray.js
X-Ray a JavaScript Global Illumination Renderer for threejs
Stars: ✭ 21 (-95.14%)
Mutual labels:  renderer
React Dev Inspector
This package allows users to jump to local IDE code directly from browser React component by just a simple click
Stars: ✭ 372 (-13.89%)
Mutual labels:  fiber
Vertx Zero
Zero Framework:http://www.vertxup.cn
Stars: ✭ 320 (-25.93%)
Mutual labels:  fiber
Xxl Tool
a series of tools that make Java development more efficient.(Java工具类库XXL-TOOL)
Stars: ✭ 311 (-28.01%)
Mutual labels:  fiber
Fibjs
JavaScript on Fiber (built on Chrome's V8 JavaScript engine)
Stars: ✭ 2,880 (+566.67%)
Mutual labels:  fiber
Vkhr
Real-Time Hybrid Hair Rendering using Vulkan™
Stars: ✭ 353 (-18.29%)
Mutual labels:  renderer
LuisaRender
High-Performance Multiple-Backend Renderer Based on LuisaCompute
Stars: ✭ 47 (-89.12%)
Mutual labels:  renderer
Beam
✨ Expressive WebGL
Stars: ✭ 383 (-11.34%)
Mutual labels:  renderer
react-exif-orientation-img
NOT MAINTAINED ANYMORE - img element wrapper component for React that understands EXIF orientation information and corrects it using CSS transforms.
Stars: ✭ 24 (-94.44%)
Mutual labels:  react-dom
Miox
Modern infrastructure of complex SPA
Stars: ✭ 374 (-13.43%)
Mutual labels:  renderer
Psd.rb
Parse Photoshop files in Ruby with ease
Stars: ✭ 3,092 (+615.74%)
Mutual labels:  renderer
Termimad
A library to display rich (Markdown) snippets and texts in a rust terminal application
Stars: ✭ 293 (-32.18%)
Mutual labels:  renderer
React Tree Walker
Walk a React (or Preact) element tree, executing a "visitor" function against each element.
Stars: ✭ 318 (-26.39%)
Mutual labels:  react-dom

react-tiny-dom

react-tiny-dom is a minimal implementation of react-dom as custom renderer using React 16 official Renderer API.

The purpose of this project is to show the meaning of each method of the ReconcilerConfig passed to react-reconciler, by using a practical yet familiar environment: the browser DOM.

react-tiny-dom

What's supported

  • Nested React components
  • setState updates
  • Text nodes
  • HTML Attributes
  • Event listeners
  • className prop
  • style prop

What's not supported yet, but I plan to

The following features of react-dom are not supported yet but I'll probably add them:

  • Web Components

Any other feature which doesn't help explaining the Renderer API, like dangerouslySetInnerHTML, won't be supported on purpose, to keep the source code minimal and focused on simplicity.

Installation

npm install
npm start # Runs the example using react-tiny-dom

FAQ

How can I customize the methods logs in the console?

By default the demo logs most method calls of the Renderer, but you can pass a list of method names to exclude in the second parameter of debugMethods, when passing the ReconcilerConfig to Reconciler.

const TinyDOMRenderer = Reconciler(
  debugMethods(hostConfig, ['now', 'getChildHostContext', 'shouldSetTextContent'])
);

Obviously passing hostConfig directly to Reconciler will completely disable any method log.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].