You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/learn/rsc-sandbox-test.md
+242-6Lines changed: 242 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ export default async function Albums() {
90
90
91
91
## Prova de Streaming {/*streaming-proof*/}
92
92
93
-
Esta demonstração prova que o streaming é incremental. A "shell" renderiza instantaneamente com um fallback `<Suspense>`. Após 2 segundos, o componente assíncrono é transmitido e o substitui — sem re-renderizar o conteúdo externo. Os timestamps mostram a diferença.
93
+
Esta demonstração prova que o streaming é incremental. A estrutura (shell) é renderizada instantaneamente com um fallback do`<Suspense>`. Após 2 segundos, o componente assíncrono é transmitido e o substitui — sem re-renderizar o conteúdo externo. Os timestamps mostram a diferença.
94
94
95
95
<SandpackRSC>
96
96
@@ -147,7 +147,7 @@ export default function Timestamp() {
147
147
148
148
## Tipos de Dados do Flight {/*flight-data-types*/}
149
149
150
-
Esta demonstração passa Map, Set, Date e BigInt de um componente de servidor através do stream Flight para um componente de cliente, provando que o sistema de tipos completo do protocolo Flight funciona de ponta a ponta.
150
+
Esta demonstração passa Map, Set, Date e BigInt de um componente de servidor através do stream Flight para um componente cliente, provando que o sistema de tipos completo do protocolo Flight funciona de ponta a ponta.
151
151
152
152
<SandpackRSC>
153
153
@@ -206,9 +206,9 @@ export default function DataViewer({ map, set, date, big }) {
206
206
207
207
</SandpackRSC>
208
208
209
-
## Streaming de Promessas com use() {/*promise-streaming-use*/}
209
+
## Streaming de Promise com use() {/*promise-streaming-use*/}
210
210
211
-
O servidor cria uma promessa (resolve em 2s) e a passa como prop através de um componente pai assíncrono que suspende por 3s. Quando o pai revela por volta de 3s, a promessa já está resolvida — então `use()` retorna instantaneamente sem um fallback interno. O tempo decorrido deve ser de ~3000ms (o atraso do pai), não ~5000ms (o que significaria que a promessa reiniciou no cliente).
211
+
O servidor cria uma promise (resolve em 2s) e a passa como prop através de um componente pai assíncrono que suspende por 3s. Quando o pai é revelado em ~3s, a promise já está resolvida — então `use()` retorna instantaneamente sem um fallback interno. O tempo decorrido deve ser de ~3000ms (o atraso do pai), não ~5000ms (o que significaria que a promise reiniciou no cliente).
## Tipos de Dados do Flight em Ações de Servidor {/*flight-data-types-actions*/}
288
288
289
-
Esta demonstração envia Map, Set, Date e BigInt de um componente de cliente *para* uma ação de servidor via `encodeReply`/`decodeReply`, e então verifica se os tipos sobreviveram à viagem de ida e volta.
289
+
Esta demonstração envia Map, Set, Date e BigInt de um componente cliente *para* uma ação de servidor via `encodeReply`/`decodeReply`, e então verifica se os tipos sobreviveram à viagem de ida e volta.
{pending ?'Sending...':'Send typed data to server'}
384
+
</button>
385
+
);
386
+
}
387
+
```
388
+
389
+
</SandpackRSC>
390
+
391
+
## Mutação de Ação de Servidor + Re-renderização {/*action-mutation-rerender*/}
392
+
393
+
A ação de servidor modifica dados no lado do servidor e retorna uma string de confirmação. A lista atualizada só é visível porque o framework re-renderiza automaticamente toda a árvore de componentes do servidor após a conclusão da ação — o componente do servidor relê os dados e transmite a nova UI para o cliente.
## Ações de Servidor Inline {/*inline-server-actions*/}
489
+
490
+
Ações de servidor definidas inline dentro de um componente de servidor com `'use server'` no corpo da função. A ação fecha sobre o estado do nível do módulo e é passada como prop — nenhum arquivo `actions.js` separado é necessário.
0 commit comments