React Query: mutation local
useMutation + invalidateQueries em lista mock.
Após mutar, invalide a query para a lista refletir o novo estado.
Esqueleto HTML (como o React monta)
O playground injeta #root, import map (esm.sh) e Sucrase. A aba HTML é só markup extra fora do React. Nomeie o componente de topo como App.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>/* CSS tab */</style>
<script type="importmap">
{
"imports": {
"react": "https://esm.sh/react@19",
"react-dom/client": "https://esm.sh/react-dom@19/client"
}
}
</script>
</head>
<body>
<div id="root"></div>
<!-- HTML tab: optional markup outside React -->
<script type="module">
// Sucrase compiles the TSX tab, then:
// createRoot(document.getElementById('root')).render(<App />)
</script>
</body>
</html>Vite local: index.html → src/main.tsx → <App /> em #root. Aqui o playground faz o equivalente com esm.sh + Sucrase.
HTML (fora do #root)
CSS
TSX / React
Pré-visualização ao vivo