Here's a simple example of a functional component in React 18. Let's create a counter:
import React, useState from 'react';
function Counter()
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked count times</p>
<button onClick=() => setCount(count + 1)>
Click me
</button>
</div>
);
export default Counter;
Use startTransition for non-urgent updates (e.g., filtering large lists) so urgent updates (typing) remain snappy. code mosh react 18 beginners fco better
import startTransition from 'react';
function Search()
const [query, setQuery] = useState('');
const [results, setResults] = useState([]);
function onChange(e)
const value = e.target.value;
setQuery(value); // urgent
startTransition(() =>
// non-urgent: update heavy UI
setResults(searchLargeDataset(value));
);
After your first project, learn:
The "Code Mosh React 18 for Beginners" course is structured across several sections. Here is how it aligns with the FCO better philosophy: Here's a simple example of a functional component
Replace old ReactDOM.render with the new createRoot: Use startTransition for non-urgent updates (e
import createRoot from 'react-dom/client';
import App from './App';
const container = document.getElementById('root');
const root = createRoot(container);
root.render(<App />);