React.js Render HTML

De Aulas

Afluentes: Desenvolvimento Front-end II, Usabilidade, desenvolvimento web, mobile e jogos

React Render HTML

O objetivo do React é renderizar uma página HTML. Para isso, usamos uma função chamada ReactDOM.render().

Essa função é composta de dois argumentos:

  1. Código HTML;
  2. elemento onde a código HTML será renderizado;

Por exemplo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>React App</title>
    <script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>

    <div id="root"></div>

    <script type="text/babel">
        ReactDOM.render(<p>Hello</p>, document.getElementById('root'));
    </script>

</body>
</html>

É possível usar código HTML dentro do javascript também e pegar esse elemento para renderizar.

const myelement = (
  <table>
    <tr>
      <th>Name</th>
    </tr>
    <tr>
      <td>John</td>
    </tr>
    <tr>
      <td>Elsa</td>
    </tr>
  </table>
);

ReactDOM.render(myelement, document.getElementById('root'));

Também podemos trabalhar com variáveis e arrays. O exemplo abaixo lista um conjunto de informações de uma array:

const cidades = ["Florianópolis", "São José", "Palhoça", "Biguaçu"];

        function ListaCidades() {
            return (
                <div>
                    <h2>Lista de Cidades</h2>
                    <ul>
                        {/* Mapeando a array de cidades e renderizando
                            cada cidade como um item de lista */}
                        {cidades.map((cidade, index) => (
                            <li key={index}>{cidade}</li>
                        ))}
                    </ul>
                </div>
            );
        }

        ReactDOM.render(<ListaCidades />, document.getElementById('root'));