Qual é a diferença entre componente e container no react redux?
javascript
reactjs
redux
Stanislav Mayorov
fonte
fonte
Respostas:
Component
faz parte da API do React. Um componente é uma classe ou função que descreve parte de uma interface do usuário do React.Contêiner é um termo informal para um componente React que é
connect
enviado para um repositório redux. Os contêineres recebem atualizações edispatch
ações do estado Redux , e geralmente não processam elementos DOM; eles delegam a renderização aos componentes filho da apresentação .Para mais detalhes, leia os componentes da apresentação versus o contêiner de Dan Abramov.
fonte
O componente responsável por buscar dados e exibir é chamado de componentes inteligentes ou de contêiner. Os dados podem ser provenientes de redux, qualquer chamada de rede ou assinatura de terceiros.
Os componentes burros / de apresentação são aqueles responsáveis por apresentar a exibição com base nos objetos recebidos.
Bom artigo com exemplo aqui
https://www.cronj.com/blog/difference-container-component-react-js/
fonte
Os componentes constroem uma aparência da vista; portanto, ele deve renderizar elementos DOM, colocar conteúdo na tela.
Os contêineres participam da elaboração dos dados; portanto, eles devem "conversar" com o redux, pois precisará modificar o estado. Portanto, você deve incluir connect (react-redux) o que faz a conexão e as funções mapStateToProps e mapDispatchToProps :
fonte
Componentes
Os componentes permitem que você divida a interface do usuário em partes independentes e reutilizáveis, e pense sobre cada parte isoladamente. Eles são chamados de "componentes de apresentação" e a principal preocupação é como as coisas parecem
Recipientes
Os contêineres são como componentes sem interface do usuário e os contêineres estão preocupados com o funcionamento das coisas. . Ele fala principalmente com a loja redux para obter e atualizar os dados
veja a comparação de tabela do documento Redux
Explicação detalhada https://redux.js.org/basics/usage-with-react#presentational-and-container-components
fonte
Ambos são componentes; Os contêineres são funcionais; portanto, eles não renderizam nenhum html por si próprios e, em seguida, você também possui componentes de apresentação, nos quais você escreve o html real. O objetivo do contêiner é mapear o estado e enviar para adereços para o componente de apresentação.
Leitura adicional: Link
fonte
React, Redux são bibliotecas independentes.
O React fornece uma estrutura para a criação de documentos HTML. Os componentes representam uma parte específica do documento. Os métodos associados a um componente podem então manipular a parte muito específica do documento.
Redux é uma estrutura que prescreve uma filosofia específica para armazenar e gerenciar dados em ambientes JS. É um grande objeto JS com certos métodos definidos, o melhor caso de uso vem na forma de gerenciamento de estado de um aplicativo Web.
Como o React prescreve que todos os dados devem fluir da raiz para as folhas, torna-se entediante manter todos os adereços, definindo adereços em componentes e passando adereços para determinados adereços para crianças. Também torna todo o estado do aplicativo vulnerável.
O React Redux oferece uma solução limpa, onde ele se conecta diretamente ao repositório Redux, simplesmente envolvendo o componente conectado em torno de outro React Component (seu
Container
). Como em sua implementação, você já definiu qual parte de todo o estado do aplicativo você precisa. Portanto,connect
retira esses dados da loja e os transmite como adereços para o componente que os envolve.Considere este exemplo simples:
connect
A função passa um suportetype
.Dessa forma, uma conexão atua como contêiner para o componente Pessoa.
fonte
O React possui dois componentes principais: o primeiro é o componente inteligente (contêineres) e o segundo é o mudo (componente de apresentação). Os contêineres são muito semelhantes aos componentes, a única diferença é que os contêineres estão cientes do estado do aplicativo. Se parte da sua página da web for usada apenas para exibir dados (idiota), torne-o um componente. Se você precisar que ele seja inteligente e esteja ciente do estado (sempre que os dados forem alterados) no aplicativo, torne-o um contêiner.
fonte