React é uma biblioteca JavaScript para criar interfaces de usuário interativas e reutilizáveis.
npm create vite@latest my-app --template react
cd my-app
npm install
npm run dev
npx create-react-app my-app
cd my-app
npm start
npm install react react-dom
my-app/
├── src/
│ ├── components/
│ ├── App.jsx
│ ├── main.jsx
│ ├── index.css
├── public/
├── package.json
function Welcome(props) {
return <h1>Olá, {props.name}!</h1>;
}
export default Welcome;
import Welcome from "./Welcome";
function App() {
return <Welcome name="João" />;
}
export default App;
import { useState } from "react";
function Contador() {
const [count, setCount] = useState(0);
return (
<div>
<p>Contagem: {count}</p>
<button onClick={() => setCount(count + 1)}>Incrementar</button>
</div>
);
}
import { useEffect, useState } from "react";
function App() {
const [data, setData] = useState(null);
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(response => response.json())
.then(json => setData(json));
}, []);
return <pre>{JSON.stringify(data, null, 2)}</pre>;
}
function Saudacao({ nome }) {
return <h1>Olá, {nome}!</h1>;
}
function App() {
return <Saudacao nome="Maria" />;
}
import { createContext, useContext, useState } from "react";
const TemaContext = createContext();
function ProvedorTema({ children }) {
const [tema, setTema] = useState("claro");
return (
<TemaContext.Provider value={{ tema, setTema }}>
{children}
</TemaContext.Provider>
);
}
function BotaoTema() {
const { tema, setTema } = useContext(TemaContext);
return <button onClick={() => setTema(tema === "claro" ? "escuro" : "claro")}>Mudar Tema</button>;
}
/* styles.module.css */
.botao {
background-color: blue;
color: white;
}
import styles from "./styles.module.css";
function Botao() {
return <button className={styles.botao}>Clique aqui</button>;
}
npm install styled-components
import styled from "styled-components";
const Botao = styled.button`
background: blue;
color: white;
`;
function App() {
return <Botao>Styled Button</Botao>;
}