Skip to content
/ remini Public
forked from tchayen/remini

Mini React implementation made for fun and practice. Please do not use in production.

Notifications You must be signed in to change notification settings

wgslr/remini

 
 

Repository files navigation

remini

Mini React implementation made for fun and practice. Please do not use in production.

Example

import { useState, createElement as c, render } from "./lib";

const Counter = () => {
  const [count, setCount] = useState(0);

  return c(
    "div",
    {},
    c("div", {}, `Value: ${count}`),
    c("button", { onClick: () => setCount(count + 1) })
  );
};

render(c(Counter), document.getElementById("root"));

How to play with it?

yarn start to start the dev server at localhost:1234.

yarn test to see the tests passing.

Might come later

  • Accepting style object as alternative to string prop
  • Updater version of setState
  • refs
  • Context API
  • <Fragment />

Useful reading

Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior

React as a UI Runtime

How Does setState Know What to Do?

The how and why on React’s usage of linked list in Fiber to walk the component’s tree

Inside Fiber: in-depth overview of the new reconciliation algorithm in React

In-depth explanation of state and props update in React

Build your own React

XSS via a spoofed React element

About

Mini React implementation made for fun and practice. Please do not use in production.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.8%
  • HTML 1.2%