A straightforward & simple implementation of a React-like library.
Created for fun and learning purposes π€·ββοΈ
You can see a live demo with all of the code here.
Basically the same as React, either with or without JSX.
import * as NotReactDOM from "not-react-dom"; import { createElement, useState } from "not-react"; const App = () => { const [count, setCount] = useState(0); return createElement( "div", { className: "app" }, createElement("h1", {}, "Hello World!") ); }; NotReactDOM.render(createElement(App), document.getElementById("root"));
import NotReact from "not-react"; import * as NotReactDOM from "not-react-dom"; const App = () => { const [count, setCount] = useState(0); return ( <div className="app"> <h1>Hello World!</h1> </div> ); }; NotReactDOM.render(<App />, document.getElementById("root"));
Note
Same as React, in order to use JSX, you need to add the
@babel/plugin-transform-react-jsxplugin to your Babel config.The difference is that you'll need to set the
pragmaoption toNotReact.createElement(see the .babelrc file), and importNotReactinstead ofReact.
useStateuseEffectuseRefuseMemouseReduceruseCallback