DEV Community

Cover image for Dicas rápidas - React para Iniciantes
Emerson Vieira
Emerson Vieira

Posted on

1 2

Dicas rápidas - React para Iniciantes

Hoje vou apresentar um padrão que é bastante comum para quem usa react em suas aplicações. Estamos acostumados a misturar muitas coisas quando iniciamos em react e por vezes é só falta de maturidade. Quero apresentar hoje o padrão Presentational e Container components.

Componente de apresentação

O componente de apresentação (Presentational Component), nada mais é que um componente responsável pela parte de visualização(render), ele recebe dados advindos de outro componente(container do mesmo) e renderiza esses dados.

import React from "react";

const Presentational = ({ data }) => (
  <ol>
    {data.map((item) => (
      <li key={item.id}>
        <p>{item.name}</p>
      </li>
    ))}
  </ol>
);

export default Presentational;
Enter fullscreen mode Exit fullscreen mode

Componente de container

É o "cabeça" da história, pois ele é o responsável pela lógica. Ele carrega os dados, trata do estado e passa os dados para o componente de apresentação.

import React, { useState, useEffect } from "react";

import Presentational from "./Presentational";

function Container() {
  const [data, setData] = useState([]);

  useEffect(() => {
    getData();
  }, []);

  async function getData() {
    await fetch("https://jsonplaceholder.typicode.com/users")
      .then((resp) => resp.json())
      .then((json) => setData(json));
  }

  return (
    <div>
      <Presentational data={data} />
    </div>
  );
}

export default Container;
Enter fullscreen mode Exit fullscreen mode

Para pensar: Se fôssemos pensar em MVC, o componente de apresentação seria a View e o componente container seria o Controller.

É isso! Até a próxima :) qualquer dúvida, sugestão ou crítica, é só comentar abaixo.

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay