Skip to content

Instantly share code, notes, and snippets.

@schafeld
Last active November 22, 2024 13:30
Show Gist options
  • Save schafeld/36a521d1f2f1444927925b3c61a2ceab to your computer and use it in GitHub Desktop.
Save schafeld/36a521d1f2f1444927925b3c61a2ceab to your computer and use it in GitHub Desktop.
React Boilerplate (React 18+)
<div id="app"></div>
import { useState } from "https://esm.sh/react";
import { createRoot } from "https://esm.sh/react-dom/client";
function App() {
const [greeting, setGreeting] = useState({ greet: "Hello, World" });
console.log(greeting, setGreeting);
function updateGreeting() {
const newGreeting = {...greeting};
newGreeting.greet = "Hello, World-Wide Web";
setGreeting(newGreeting);
}
return (
<div>
<h1>{greeting.greet}</h1>
<button onClick={updateGreeting}>Update greeting</button>
</div>
);
}
// ReactDOM.render(<App />, document.getElementById('app'));
const container = document.getElementById('app');
const root = createRoot(container); // createRoot(container!) if you use TypeScript
root.render(<App />);
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
@schafeld
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment