Server Side Render de React

en Platzi

Server Side Render

Client Side Render

VS

¿Por qué no ambos?

Ventajas de combinarlos

  • El usuario obtiene el contenido deseado inmediatamente
  • Los cambios se reflejan inmediatamente
  • Actualizaciones optimistas
  • Fallback en caso de errores
  • Velocidad de carga percibida
  • Mejora progresiva

Servidor

Cliente

Petición HTTP

Navegador

Node.js

Cómo implementarlo

Consulta

API

import React from 'react';
import { renderToString } from 'react-dom/server';
import http from 'http';

import App from './App.jsx';


const server = http.createServer(async (request, response) => {
    // obtenemos los datos
    const data = await getData();

    // renderizamos React a HTML
    const html = renderToString(
      <App {...data} />
    );

    // enviamos la respuesta
    response.write(html);
    response.end();
});


server.listen(process.env.PORT);

Servidor

Cliente

Petición HTTP

Navegador

Django/RoR/etc.

Renderer as a Service

Consulta

Renderer

Node.js

Petición HTTP

API

from react.render import render_component

rendered = render_component(
    '/path/to/component.jsx',
    {
        'foo': 'bar',
        'woz': [1,2,3],
    }
)

print(rendered)
react-render MyComponent.jsx -p '{"text":"Hello World"}'

El futuro...

Servidor

Cliente

Petición HTTP

Navegador

Django

Full React Render

Consulta

Renderer

Node.js

Petición HTTP

API

Servidor

Cliente

Petición HTTP

Navegador

Django

Platzi SPA

Consulta

API

JSON

Made with Slides.com