@@ -131,7 +131,7 @@ export default defineConfig({
131131- [ ` entry.rsc.tsx ` ] ( ./examples/starter/src/framework/entry.rsc.tsx )
132132
133133``` tsx
134- import * as ReactServer from ' @vitejs/plugin-rsc/rsc' // re-export of react-server-dom/server.edge and client.edge
134+ import { renderToReadableStream } from ' @vitejs/plugin-rsc/rsc'
135135
136136// the plugin assumes `rsc` entry having default export of request handler
137137export default async function handler(request : Request ): Promise <Response > {
@@ -143,7 +143,7 @@ export default async function handler(request: Request): Promise<Response> {
143143 </body >
144144 </html >
145145 )
146- const rscStream = ReactServer . renderToReadableStream (root )
146+ const rscStream = renderToReadableStream (root )
147147
148148 // respond direct RSC stream request based on framework's convention
149149 if (request .url .endsWith (' .rsc' )) {
@@ -173,19 +173,19 @@ export default async function handler(request: Request): Promise<Response> {
173173- [ ` entry.ssr.tsx ` ] ( ./examples/starter/src/framework/entry.ssr.tsx )
174174
175175``` tsx
176- import * as ReactClient from ' @vitejs/plugin-rsc/ssr' // re-export of react-server-dom/client.edge
177- import * as ReactDOMServer from ' react-dom/server.edge'
176+ import { createFromReadableStream } from ' @vitejs/plugin-rsc/ssr'
177+ import { renderToReadableStream } from ' react-dom/server.edge'
178178
179179export async function handleSsr(rscStream : ReadableStream ) {
180180 // deserialize RSC stream back to React VDOM
181- const root = await ReactClient . createFromReadableStream (rscStream )
181+ const root = await createFromReadableStream (rscStream )
182182
183183 // helper API to allow referencing browser entry content from SSR environment
184184 const bootstrapScriptContent =
185185 await import .meta .viteRsc .loadBootstrapScriptContent (' index' )
186186
187187 // render html (traditional SSR)
188- const htmlStream = ReactDOMServer . renderToReadableStream (root , {
188+ const htmlStream = renderToReadableStream (root , {
189189 bootstrapScriptContent ,
190190 })
191191
@@ -196,16 +196,16 @@ export async function handleSsr(rscStream: ReadableStream) {
196196- [ ` entry.browser.tsx ` ] ( ./examples/starter/src/framework/entry.browser.tsx )
197197
198198``` tsx
199- import * as ReactClient from ' @vitejs/plugin-rsc/browser' // re-export of react-server-dom/client.browser
200- import * as ReactDOMClient from ' react-dom/client'
199+ import { createFromReadableStream } from ' @vitejs/plugin-rsc/browser'
200+ import { hydrateRoot } from ' react-dom/client'
201201
202202async function main() {
203203 // fetch and deserialize RSC stream back to React VDOM
204204 const rscResponse = await fetch (window .location .href + ' .rsc' )
205- const root = await ReactClient . createFromReadableStream (rscResponse .body )
205+ const root = await createFromReadableStream (rscResponse .body )
206206
207207 // hydration (traditional CSR)
208- ReactDOMClient . hydrateRoot (document , root )
208+ hydrateRoot (document , root )
209209}
210210
211211main ()
@@ -342,13 +342,11 @@ const htmlStream = await renderToReadableStream(reactNode, {
342342This event is fired when server modules are updated, which can be used to trigger re-fetching and re-rendering of RSC components on browser.
343343
344344``` js
345- import * as ReactClient from ' @vitejs/plugin-rsc/browser'
345+ import { createFromFetch } from ' @vitejs/plugin-rsc/browser'
346346
347347import .meta.hot.on(' rsc:update' , async () => {
348348 // re-fetch RSC stream
349- const rscPayload = await ReactClient .createFromFetch (
350- fetch (window .location .href + '.rsc '),
351- )
349+ const rscPayload = await createFromFetch (fetch (window .location .href + '.rsc '))
352350 // re-render ...
353351})
354352```
0 commit comments