Um momento
Aula 13
Cursos / React: Componentes Controlados
Curso React: Componentes Controlados

Summary

Resumo do Vídeo sobre Refatoração de Componentes em React

Nesse vídeo, o apresentador discute a refatoração de componentes em React, focando na criação de componentes reutilizáveis para diferentes tipos de inputs, como texto, checkbox, rádio e select. Aqui está um resumo dos principais pontos apresentados:

Objetivos do Vídeo

  • Refatorar o código do componente App para criar componentes de input personalizados.
  • Aprender a passar props como onChange e value para esses novos componentes.

Passo a Passo da Refatoração

  1. Criar Componente de Input de Texto

    • Criar um novo arquivo chamado InputText.js.
    • Importar React e definir um componente funcional que aceita props.
  2. Definição do Componente

    • O componente será um stateless functional component, ou seja, não manterá o estado internamente.
    • As propriedades que o componente deve aceitar incluem name, value, e onChange.
  3. Estruturar o Componente

    • Retornar o JSX que representará o input. A estrutura deve incluir um <div> que encapsula o label e o input.
    • Usar props.name, props.value, e props.onChange para definir os atributos do input.
  4. Uso do Componente

    • No componente App, importar e usar o InputText. Passar name, value, e onChange como props.
    • Exemplo de uso:
      <InputText name="nome" value={this.state.nome} onChange={this.handleChange} />
      
  5. Exportar o Componente

    • Exportar o InputText para torná-lo disponível para outros arquivos.
  6. Adicionar Label

    • Para melhorar a utilização, adicionar uma prop label, permitindoo passar um título para o input.
    • Modificar a estrutura do InputText para incluir o label como parte do JSX.
  7. Considerações Finais

    • Importante lembrar que em React, cada componente deve retornar apenas um elemento pai.
    • Sugestão de espaçamento e formatação para manter o código legível.

Conclusão

Esse vídeo é um recurso adicional para desenvolvedores que buscam aprimorar suas habilidades em React, mostrando como criar componentes de input de forma eficiente e modular, facilitando a manutenção e reutilização do código.

Video Transcript

Se você chegou até aqui, meus parabéns, você agora já sabe quando controlar os componentes no React. Esse vídeo vai ser só sobre refactoring ou aprimoramento dos componentes que a gente tem. A gente criou um input type text input type text input type checkbox rádio e a gente deu um select que é o drop down. Agora a gente vai dar um refactor e aprimoramento no nosso código em vez de ter todo o código para cada tipo de input no mesmo componente app. A gente vai fazer o nosso próprio componente de input. Nesse caso a gente vai fazer o nosso próprio input type text, caixa de texto, nosso próprio checkbox, nosso próprio rádio, select e assim por diante. É bom? Esse é como se fosse um vídeo bonus, mas para aprimoramento de código e aprender como fazer seus próprios componentes. E normalmente o que vai acontecer é esse cara, por exemplo, input no seu que vai ser seu próprio componente, mas a gente vai passar o onChange como props para esse componente novo. A gente ainda vai definir o onChange no componente app, mas vai passar a definição para o novo componente. A mesma forma vai ser o value. É bom? Então vamos lá. Primeiro fazer o input type text. Nesse caso vamos aqui criar o componente src, vou criar um novo arquivo. Input. Pode chamar o que quiser, vou chamar de input text, o .js. Primeira coisa a gente vai fazer é importar o react. React. É bom? Como é no esse componente, você pode fazer componente class se quiser, mas eu vou fazer um componente funcional chamado state less functional component que não precisa usar class, é só definir uma função e retornar o template da função. Tá certo? Nesse caso vai ser o que? Vou dar um const input text, é o nome do componente, e vou definir uma função assim. Certo? Função de flash. O argumento para o input text vai ser as propres, propriedades dadas ao input text. Aí do input text você retorna o template, que é a mesma coisa do return, o valor de return da render, da função render do componente class. Tá bom? Só para ter uma ideia do equivalente, eu vou digitar aqui o equivalente desse cara. Tem a render e tem o return. Esse aqui é o equivalente. Esse que é o componente funcional, state less functional component, esse que é o componente class. Porque eu vou fazer de funcional? Porque eu não vou manter um estado dentro do input. Tá certo? O estado aqui vai ser mantido dentro do app. Nesse caso esse componente, o estado vai ser mantido aqui e a gente vai passar o valor do estado para o input text como propres, que já é disponível pelo argumento aqui. Certo? Vamos continuar. Nesse caso vai pro app. Vamos copiar ou recortar o código. Esse que eu agora aqui, input type text, não sei o que. Vou recortar. Colar aqui. Esse nórdico é muito longa, então é uma coisa que você pode fazer é quebrar tudo dessa maneira assim. Normalmente eu sempre deixo o fecho na mesma nível do que abre. Certo? Vamos fazer modificações para poder usar esse componente à fora. Então input type text, valor name, nome. Esse name aqui a gente poderia mudar e dado como props. Props.name, eu vou chamar name. Certo? O valor também vai ser dado com props em vez de o próprio estado. Nesse vez vai ser props.value. OnChange vai ser a mesma coisa. Props. OnChange. Esse nórdico que eu quero usar esse componente dessa maneira assim. Eu vou tipo input text, name. Pode usar qualquer coisa. Por exemplo, nome. Value vai ser this state. Nome. OnChange. Essa maneira aqui deixa eu quebrar. Software app. Eu quero usar esse componente dessa maneira em outros arquivos. Nesse caso vai ser o app, do app. A gente vai usar assim, importar o input text e passar essas propriedades dessa maneira. Se a gente fizer assim, esse nome aqui vai ser passado como props e vai ser substituído aqui. Props.name. Props.name se refere a esse cara. Mesmo maneira o value, props.value se refere ao value. Nesse caso vai ser o estado do nome. Nesse caso vai ser o state do app. E o onChange da mesma maneira, esse onChange aqui vai ser o props.onChange que vai ser esse aqui. Desse o nomChange do app. Certo? Agora eu vou recortar isso e vou colar no app. Input text. Name nome. Value não sei o que. Ok. OnChange. Vamos salvar e testar. Salva o app. Salva o input text. Vamos ver o erro. Input text is not defined. Não está definido. Resolver-se eu, vamos para o app e importar. Input. Input text. From. Input text. No mesmo diretório. Tem que ter o ponto barra. Porque a gente está no mesmo diretório que o app. Então tem que ter esse cara. Não precisa ter ponto js. Salva. Ainda vai dar erro. Por quê? O erro é porque a gente não exportou esse componente. Então aqui no final vou dar export. Default. Input text. De sua maneira vamos exportar o input text para ser disponibilizado em outros arquivos. Nesse caso o app. Voltando aqui. Testar. Sem problemas, né? Certo? Note que o label do. Desse. Desse campo. Está fora do input. Você poderia pegar esse label e inclui-lo dentro do próprio input text. Então a gente pode fazer mais um aprimoramento. É opcional, mas eu vou demonstrar como se faz. Esse nome aqui a gente não quer. Aqui a gente quer passar com um atributo chamado label para o input text. Então a gente quer dar o nome nome. Adicionar o label vai ser assim. Nome. Certo? Vou lá para o input text. Vou adicionar label. Agora vai ser props.label. O props vai receber propriedade label que a gente passou aqui. Ok? Agora o problema aqui. Esse problema aqui é porque o react você tem que sempre retornar somente um. Elemento um. Componente que inclui todos os outros. Então a solução é pôr uma div para incluir todos os outros. Você só pode retornar um. Somente um. Filho. One child. Salva. Agora tudo ok. Parece o props label, mas não é o valor que a gente passou. Por que? Porque eu esqueci de adicionar a chave. A chave pega a variável e substitui o valor. Então adicione a chave. Agora apareceu o nome. Bom se quiser adicionar um. Espaço le. Pode fazer assim talvez. Vamos ver se funciona. Pareceu né? Difícil de ver, mas apareceu o espaço. Assim se pôr o espaço assim não funciona. Tem que pôr a chave e pôr um espaço aqui. Bom. Note que talvez essa linha seja muito longa. Também posso fazer a mesma coisa que a gente fez antes e quebrar tudo em uma propriedade por linha. Dessa maneira.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: