Fundamentos do React para iniciantes absolutos | Crie seu primeiro site de portfólio | Faisal Memon | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Fundamentos do React para iniciantes absolutos | Crie seu primeiro site de portfólio

teacher avatar Faisal Memon, Product | Engineer | Entrepreneur

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução ao curso

      3:33

    • 2.

      Introdução ao React

      5:03

    • 3.

      Como a Web funcionava antes do React?

      14:15

    • 4.

      Criando seu primeiro projeto do React

      8:27

    • 5.

      Instalando o código do Visual Studio

      1:46

    • 6.

      Passando para o Visual Studio Code

      8:24

    • 7.

      Explorando a estrutura do projeto

      7:02

    • 8.

      Nosso primeiro projeto do React

      4:53

    • 9.

      Introdução ao Vite e sua configuração

      7:01

    • 10.

      Passando para o código do Visual Studio e alterando a porta

      4:54

    • 11.

      Introdução à sintaxe e regras do JSX

      8:53

    • 12.

      Expressões e atributos com JSX

      8:46

    • 13.

      Renderização condicional

      9:15

    • 14.

      JSX e funções

      9:19

    • 15.

      Comentários em JSX

      2:03

    • 16.

      PROJETO: criando um site de portfólio usando o React

      5:03

    • 17.

      Introdução aos componentes e criação do seu primeiro componente

      12:19

    • 18.

      Indo com as mãos

      13:46

    • 19.

      Acessórios - Uma introdução

      10:29

    • 20.

      Vários adereços?

      2:40

    • 21.

      Gerenciar valores booleanos e tipos de proposição

      3:36

    • 22.

      Desestruturando adereços

      5:54

    • 23.

      Validando props com PropTypes no React

      6:57

    • 24.

      Usando adereços com arrays

      10:18

    • 25.

      Configurando callbacks

      7:35

    • 26.

      Acessórios e a sintaxe de Spread

      6:04

    • 27.

      Conclusão do curso

      1:38

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

190

Estudantes

3

Projetos

Sobre este curso

Entre no mundo do React com este curso para iniciantes projetado para preparar você para o trabalho! Aprenda os conceitos fundamentais do React, começando de como a web funcionava antes do React até criar seu primeiro projeto com ferramentas modernas como Vite e Visual Studio Code. Domine a sintaxe do JSX, o processamento condicional e o trabalho com funções no React. Ao final deste curso, você terá construído um site de portfólio impressionante para mostrar suas habilidades e dar início à sua jornada como desenvolvedor React.

Os principais aprendizados do curso:

  • Entenda como o React revoluciona o desenvolvimento web.
  • Configure e trabalhe com projetos do React usando o Vite e o Visual Studio Code.
  • Aprenda os princípios da sintaxe e regras do JSX para criação de UI dinâmica.
  • Implementar o processamento condicional e criar componentes reutilizáveis.
  • Criar um site de portfólio totalmente funcional como seu primeiro projeto React

Por que este curso?

O React é uma das habilidades mais procuradas na indústria de desenvolvimento web, alimentando aplicativos para empresas como Facebook, Instagram e Netflix. Ao final deste curso, você terá uma base sólida no React, a capacidade de criar interfaces de usuário dinâmicas e a confiança para enfrentar projetos mais avançados.

Para quem é este curso?

Esse curso é perfeito para:

  • Iniciantes com conhecimento básico de JavaScript que querem aprender React.
  • Desenvolvedores que querem melhorar suas habilidades de front-end com ferramentas modernas.
  • Amadores ansiosos para criar aplicativos web interativos e responsivos.

O que você vai construir

Neste curso, você vai criar um site de portfólio totalmente funcional, um projeto que você pode mostrar com orgulho em seu portfólio de desenvolvedor.

Você está pronto para embarcar nesta jornada emocionante no React? Junte-se a nós e comece a construir o futuro do desenvolvimento web hoje!

Conheça seu professor

Teacher Profile Image

Faisal Memon

Product | Engineer | Entrepreneur

Professor

Hey - this is Faisal and thanks for being here.

I have over 12 years of experience working as a Product Manager Founder/CEO Engineer in Mobile and App development industry. I have been building global products being used by millions of users across the globe since the beginning of my career.

Currently I am heading Product at one of the fast-paced startup in India and enjoying every moment of it. Prior to his, I built out couple of startups which had over half a million users across the globe, raised funding from Google other investors and was part of Google Launchpad Accelerator. I have experience of building products from scratch and scaling to global users.

I am here on Skillshare to share my knowledge with seekers and help them grow personally and professional... Visualizar o perfil completo

Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução ao curso: Oi, aí. Bem-vindo a este curso sobre os fundamentos do React Sou Fazal, empreendedor e entusiasta da tecnologia, apaixonado por ajudar você a dominar tecnologias modernas que podem ajudar você a facilitar a sua vida e a de outras pessoas Agora, neste curso específico, abordaremos os fundamentos do react, e há uma ampla gama de tópicos que abordarei neste curso específico Então, vamos começar. Então, eu tenho esse plano de estudos aqui, em primeiro lugar, eu tenho os benefícios do curso sobre por que você deve fazer este Agora, para começar, começaremos com a visão geral do react, o que é react e o desenvolvimento web. Então, teremos uma visão geral completa de como as coisas funcionam quando você está trabalhando com o react. Estaria fazendo uma configuração de projeto, certo? E para a configuração do projeto, usaremos o código VS e o Wheat. Ambos são como ferramentas comerciais de produção que estão sendo usadas quando se trata de desenvolvimento web. Então, aprenderemos sobre eles. Vamos descobrir o GSX. Agora, o que é GSX e tudo mais, se você nunca ouviu falar desses termos, não se preocupe, eu tenho tudo o que você precisa dentro do curso Esta é apenas uma visão geral que estou dando a você com os tópicos que basicamente você precisa conhecer. OK. Em seguida, falaremos sobre os componentes, adereços e retornos de chamada Então, vou abordar todos esses conceitos. Em seguida, desestruture e espalhe a sintaxe. Então, como você pode usar a sintaxe de desestruturação e propagação, que é um conceito de JavaScript com aplicativos web react ou react, é o que devo dizer E então teremos um projeto prático em que pegaremos todo o nosso aprendizado e o implementaremos para criar um site de portfólio Agora, este site de portfólio fornecerá uma prática completa de tudo o que você aprendeu em todo o curso e lhe dará confiança suficiente para que você possa sair e construir coisas com o react. Agora, ao aprender com este curso, há alguns benefícios. Número um, palestra prática. Então, eu entendo que, quando se trata aprender tecnologia ou desenvolvimento, os alunos preferem palestras práticas, uso mínimo de slides Então, eu quase não uso slides. Eu me certifico de tudo, desde o filme de reação, desenvolvimento web até a construção do site do portfólio Tudo está coberto de forma prática. Agora, quando falo sobre o Ovie of react e por que react foi realmente inventado e por que ele realmente existe, dê exemplos no navegador de como são as coisas ou quais são os problemas que existiam antes da compra do react e, quando o react chegou, como ele resolveu esses problemas Então, tudo isso com exemplos ao vivo. É por isso que eu disse que as palestras são práticas. Passamos a maior parte do tempo no navegador e no IDE. E então temos um encerramento com a ajuda do projeto. Portanto, esse é um dos benefícios importantes em que você também pode criar algo no final das contas, que é um site de portfólio Então essa é a visão geral do curso e, ao final deste curso, posso garantir que você terá uma base sólida com o react, que lhe dará confiança suficiente para aprender conceitos muito mais avançados com relação ao desenvolvimento web. Além disso, este curso específico vem com um projeto que você pode conferir na seção de projetos. E no final, depois de terminar o curso, você pode fazer o projeto, enviá-lo e compartilhá-lo com toda a turma. Então, o que você está esperando? Te vejo dentro da sala de aula. 2. Introdução ao React: Oi, aí. Bem-vindo, e vamos começar a falar sobre o react. Então, falaremos sobre o que é reagir, por que isso existe. Está bem? Então, aqui, estou no Google e vou simplesmente digitar react. Então, no momento em que você digitar react, você verá este site oficial do react, que é react dot F. Agora, antes de visitar o site, deixe-me falar um pouco sobre o que é react O React é uma biblioteca, como você pode ver aqui na descrição, e é uma biblioteca JavaScript. Se você está um pouco familiarizado com o desenvolvimento web ou se é engenheiro da computação, você saberá que a web consiste essencialmente em SGML, então temos CSS e até mesmo JavaScript. Agora, o que é HTML? O HTML nada mais é do que o alicerce da web. Então, se você clicar com o botão direito em qualquer coisa aqui, como qualquer elemento, esses são todos elementos, certo? Então, se você clicar com o botão direito em qualquer um dos elementos, se você disser inspecionar. Estou no Chrome e tenho essa opção, inspecionar. E deixe-me anotar isso. Você vai ver todo o código aqui. Você pode ver todos os elementos HTML aqui. Se você estiver em algum elemento, verá o elemento HTML correspondente sendo destacado. Isso é um DIF. HTML consiste essencialmente em tags, você pode ver aqui, tag DIF Então temos a etiqueta H two. Tudo isso está em tags HTML incorporadas que os navegadores entendem. Esses são navegadores modernos que entendem essas coisas. Está bem? Então, isso é HTML. Para que é usado o HTML? É usado para definir os elementos. Agora, o que acontece é que definir os elementos não é suficiente. Está bem? Você precisa embelezá-los. Por exemplo, aqui, você vê que essa reação está sendo destacada em negrito, certo? Por que está sendo destacado em negrito? Porque eu pesquisei por react. Está bem? Existe um estilo específico para isso, certo? Você pode ver que isso está sendo destacado em cinza claro, o que é um pouco diferente dessa coisa aqui. Isso é um link, certo? Então, isso está sendo destacado de forma diferente. Então, se eu clicar com o botão direito aqui e se eu inspecionar, você verá que esta é a etiqueta H três e A. Aqui você pode ver uma etiqueta. Então, em HTML, você cria links usando a tag A. Agora, se você expandir um pouco, aqui é onde você verá todo o CSS. Você pode ver. Então, uma tag, essa é a tag A, e aqui você pode ver o CSS, a cor é definida como azul. Se eu mudar a cor para, digamos, rosa, vermelho, você verá que a cor está sendo alterada no navegador. Você pode ver que isso é totalmente em tempo real. Se eu quiser mudar isso para, digamos , amarelo, qual cor você quer? Ok. Então você pode mudar a cor. É assim que o embelezamento está sendo adicionado às páginas da web. Ok. Como você pode ver, embelezamento está sendo controlado pelo CSS O que é esse código, você pode ver aqui, esse código é CSS. Então você está dizendo para uma etiqueta. Agora, o que é uma tag Uma tag está aqui, seja, se eu passar o mouse sobre A tag, você verá a tag correspondente sendo destacada ou o elemento correspondente sendo destacado à esquerda, quando você passar o mouse sobre a Então é a reação, esse texto de reação. Isso é o que é. Aqui você tem CSS para o mesmo. Uma etiqueta, diz toda a etiqueta. Se eu passar o mouse sobre Etag, você verá todas as etiquetas eletrônicas sendo destacadas no lado esquerdo, certo Então é aí que todas as tags estão sendo usadas, o que significa que é onde todos os links estão sendo renderizados porque todos são links, certo? Então, eu quero que todas as etiquetas eletrônicas estejam nessa cor. Não quero nenhum tipo de decoração de texto. Isso é o que você está definindo aqui. Está bem? O cursor está sendo alterado para ponteiro. Então, se eu passar o mouse sobre isso, você pode ver que o cursor está sendo alterado, certo? Está sendo alterado para um ponteiro. Eu posso desativar isso. Ok. Ok, não está me permitindo ignorar isso, mas tudo bem O objetivo é entender o que é CSS? Você pode ver isso ao vivo aqui, certo? Então, vou tentar trazê-lo para a cor padrão. Foi algo parecido com isso. Ok. Amarelo e verde não parecem tão naturais. Mas você entende, isso é CSS, certo? Então você tem algo chamado JavaScript. Agora, o que é JavaScript? O JavaScript dá vida às páginas da web. Então, qualquer tipo de validação que você queira fazer nas páginas da web, qualquer tipo de pop-up que você queira mostrar, você pode fazer tudo isso. Ok. Então, se você quiser ver o JavaScript em ação, podemos ir para a guia Console aqui na parte superior. Ok. E esse é o console do navegador. Então, aqui eu posso dizer alerta, e eu posso simplesmente dizer oi aqui, algo assim. Você pode vê-lo. Esse é o alerta. Portanto, qualquer tipo de validação, pop-ups ou qualquer tipo de coisa dinâmica que você queira fazer, você pode usar o Ja Script Está bem? Então, o Ja Script dá vida às suas páginas da web. Está bem? Agora, o que é react React é uma biblioteca JavaScript. Está bem? Vamos até o site do React e vamos entender por que essa coisa existe. 3. Como a Web funcionava antes do React?: Agora, vamos entender como a web costumava funcionar antes de reagir. Está bem? Então, o que costumava acontecer é esta é uma página da web, e você tem diferentes elementos interativos aqui. Posso clicar na barra NAF e ir para outra página. Agora, quando você carrega uma página da web, HTML é carregado, o CSS é carregado, o script Ja é carregado. Agora, quando você muda para outra guia aqui, novamente, tudo é recarregado O HTML é recarregado. O CSS é recarregado e o Jscript é recarregado. Se eu for até aqui, novamente, tudo estará recarregado. Clique em Comunidade, novamente, tudo está recarregado. Portanto, isso não é eficiente. Você sabe, toda vez, mesmo que o CSS e o Jscript não mudem e sejam constantes em todo o lado, nós os recarregamos Está bem? E isso não é bom, certo? Essa não é a maneira eficiente, e nós humanos adoramos ser eficientes, certo? E é por isso que o react existe. Então, eu vou te dizer como o react é diferente. Portanto, o react é usado para criar aplicativos web de página única. O que isso significa? Então, o que acontece é que você tem esse aplicativo da web, esse é um aplicativo da web. É uma página da web. É um aplicativo da web. Vai ter uma moldura externa. É uma moldura e por dentro, por exemplo, ela terá componentes. Por exemplo, a pesquisa é um componente. Essas guias são um componente da barra de navegação. Você pode criar uma barra de navegação e adicionar quatro botões nela Está bem? Esse botão também é componente. Isso também é um componente. Então, a parte central também é componente. Essa página inteira tem uma moldura e, dentro dessa moldura, você tem componentes inseridos no interior. Está bem? Agora, o que acontece é que, se você quiser mudar para aprender aqui, pode ver que a principal coisa não muda em todo o site, certo? Então, por que você quer recarregar isso? Você não quer recarregar isso? Você pode simplesmente recarregar essa parte inferior, certo? Então, com a ajuda dessa arquitetura baseada em componentes, isso se tornou possível. Então, em vez de recarregar toda a página da web, mesmo que o Navbar seja constante, você está recarregando a coisa toda Não é eficiente, certo? Está consumindo seus dados, está consumindo a atividade da rede. Também está consumindo poder de processamento. Não é eficiente. É por isso que surgiu essa coisa baseada em componentes , onde apenas o componente em que houve uma alteração costumava ser recarregado Portanto, se você for para a referência, somente essa parte será recarregada Se eu mudar para isso, somente essa parte será recarregada. Então é isso que é um aplicativo de página única. Portanto, na verdade, é um aplicativo de página única, como uma página, e os componentes estão sendo recarregados Está bem? E eles estão sendo recarregados dependendo de onde você está interagindo e de como o aplicativo é criado OK. Então é isso que são aplicativos web de página única, e o react é usado para criar esse tipo de aplicativo web de página única. Está bem? Então, o que o Reacts permite que você faça é aqui que você pode ver, ele permite que você crie componentes Está bem? Agora, como eu disse, aqui, essa coisa é um componente, essa coisa é um componente. Todas essas coisas podem ser componentes que você definiu e, em seguida, você pode ter um quadro e, dentro desse quadro, você pode carregar todos os componentes. Isso é o que o react permite que você faça. OK. E por que isso permite que você faça? Então eu acabei de explicar. Porque se você for para referência, estou apenas recarregando esta parte inferior Não estou recarregando esta Navbar. Não estou recarregando esta mensagem na parte superior, certo? Somente esta parte inferior está sendo recarregada. Se eu clicar aqui, somente as coisas do lado direito serão recarregadas Você não precisa recarregar toda a página da web toda vez, certo? Então é isso que o react permite que você faça. Ele permite que você crie componentes. Você pode criar componentes, ok? Então, por exemplo, você pode criar uma barra de pesquisa usando re, você pode criar Navbar usando react, e então você pode definir um quadro, e dentro desse quadro, você pode montar todos os componentes da maneira que quiser Está bem? Então é disso que essa coisa fala. Está bem? Então, ele permite que você crie interfaces de usuário a partir peças individuais chamadas componentes, e também tem uma demonstração incrível aqui no site, ok? Portanto, este site pode mudar a interface pode mudar dependendo de quando você está assistindo a este vídeo. Mas agora estou vendo esse tipo de interface no site. Ok, se você vier, eles terão esse exemplo incrível. Não se preocupe se você não entender esse código. O que essa coisa está tentando destacar aqui é que existem componentes aqui. Você pode ver que isso é uma interface. Nossa interface que você deseja mostrar. Esta é uma miniatura de vídeo. Depois, você tem o título do vídeo, descrição, o botão curtir e assim por diante. Está bem? Agora, aqui o que você fez foi criar um componente chamado miniatura, então você pode ver aqui a miniatura Em seguida, você criou um componente chamado botão. Botão Curtir. Você tem um componente chamado vídeo. Você pode ver. Este é o vídeo componente inteiro, você pode ver, certo? Então, isso é reutilizável, como você pode imaginar, tipo botão, se eu quiser usar em algum outro lugar, preciso apenas fazer uso dessa tag Está bem? Miniatura, preciso usar outro lugar, posso simplesmente usar essa tag. Amanhã, se houver alguma alteração na miniatura, só preciso fazer essa alteração em um lugar e ela será refletida na um lugar e Amanhã, se eu quiser mudar a forma como a animação desse botão funciona ou qualquer tipo de interface de usuário mudar aqui, quero mudar a cor do botão curtir. Você apenas faz alterações onde quer que tenha definido esse botão. Onde quer que você o tenha definido como botão, você faz essa pequena alteração e a salva, ela é implantada em todo o aplicativo Essa é a mágica. A reutilização, como você pode imaginar, é uma das principais coisas que estão surgindo. Você pode ver aqui. OK. Você pode ver se trabalha sozinho ou com milhares de outros desenvolvedores Usar o react parece o mesmo. Ele permite que você combine perfeitamente componentes escritos por pessoas independentes E aqui você pode ver, isso é incrível, você pode ver aqui. Usando um pouco de JavaScript, ele foi renderizado. Você criou um vídeo aqui. Este foi um vídeo que você criou e usando JavaScript, você está renderizando o vídeo três vezes, você pode ver Três vídeos. Está bem? E sintaxe, essa é uma sintaxe de marcação conhecida como Então, JSX é algo que você ouvirá frequência quando estiver trabalhando com o react, ok Então, isso é sobre o React e como ele funciona. OK. Então, eu encorajaria todos vocês a acessarem este site. Além disso, para dar mais um exemplo, um pouco interativo. Podemos ir para ganhar aqui. E se eu rolar até aqui, você pode ver isso. OK. Então, aqui, o que fizemos foi essencialmente criar uma função. Portanto, esta é uma função que está retornando o botão. E digamos que isso possa ser qualquer botão. Então, neste momento, é um botão muito simples e diz: “Eu sou um botão”. OK. Mas digamos que, se você precisar de um tipo de botão específico na interface do usuário e na mensagem do seu aplicativo, você pode defini-lo assim. E aqui, o que você fez está aqui, eu estou, tipo, renderizando esse botão aqui Você pode ver meu botão. Então, eu vou te dizer que quando você está desenvolvendo com HTML, você tem tags embutidas Você tem essa tag H um, você tem H dois tag, você tem H três tag. E cada tag tem um significado, certo? A tag H one tem um significado, se você escrever alguma coisa usando a tag H one, ela será mostrada dessa forma no cabeçalho. Se eu substituir isso e isso for como um editor adequado, posso alterar o código aqui. Então, se eu mudar isso para H dois, assim, você pode ver que isso vai mostrar as coisas de uma maneira diferente, ok? O tamanho da fonte é um pouco menor, ok? Portanto, cada tag embutida em HTML tem seu próprio significado. Então, aqui você pode ver que essa é nossa própria tag personalizada. Então, o react permite que você crie sua própria tag personalizada aqui. Definimos nossa própria tag personalizada, Meu botão. Esta é a função, botão M que definimos. Qual é a definição de myButon? Essa é a definição. Então, sempre que você está ligando para MyButon, estamos chamando Mbiton, estamos usando Mbiton Sempre que você estiver usando o botão Meu aqui, ele será retornado e , de certa forma, substituído aqui. Então, tudo isso está sendo substituído aqui desta forma quando é renderizado no navegador Vou apenas fazer o Control Set. Eu posso até provar isso para você. Então, se eu clicar com o botão direito aqui e dizer inspecionar, vamos ver aqui o que está acontecendo Então, vou anotar isso um pouco. Vou rolar para a direita. Você pode ver. Aqui você não está vendo meu botão. Então, aqui, na verdade, estamos escrevendo Mbton no código. Mas aqui você não está vendo Mybton. Aqui você está vendo esse código sendo renderizado. Você pode ver Então, o que está acontecendo é que, onde quer que você esteja usando o botão Meu, durante o tempo de execução, isso será renderizado A definição do botão M será renderizada. Então, deixe-me replicar isso. Vou replicar isso e você pode ver que mais um botão foi adicionado OK. Agora, se eu mudar a definição, eu sou A, deixe-me dizer que sou incrível, botão. Você pode ver, isso se reflete em todos os lugares. Você consegue imaginar essa mágica? Da mesma forma que você muda em uma coisa, você muda em um lugar. Desculpe, você muda em um só lugar e isso se reflete em todo o aplicativo. Então, se você tem algum tipo de botão personalizado, curtidas personalizadas, imagine criar o Instagram. Você está usando o botão em vários lugares, certo? E você tem esse tema para manter. Então você cria um componente. Está bem? Você o usa em vários lugares, milhares de lugares que você usa. Você precisa fazer uma alteração no componente. Não tem problema. Você vem e faz uma mudança aqui. E isso se reflete em todo o aplicativo. Está bem? Então é isso que você pode usar desse componente várias vezes. Posso continuar renderizando isso e você verá que você verá a definição está sendo substituída aqui Portanto, esse é o benefício do react. Então, como entendemos isso, react promove o uso de aplicativos de página única. Você pode criar aplicativos web de página única. Basicamente, você pode criar seus próprios componentes. Você pode reutilizar esses componentes. Por isso, promove a reutilização. Ele também permite que você mantenha seu código com facilidade. Então, se você quiser fazer uma mudança, você faz a mudança em um só lugar, ela é refletida em todos os lugares. Então, mantém as coisas arrumadas, ok? Além disso, o react é muito popular atualmente. Então, se você pesquisar o salário do react em sua região, de onde quer que você seja, você pode ver, então este é o payscale.com para os Estados Unidos e você pode ver esse é o salário atual que está sendo pago para que os desenvolvedores do React ou até mesmo os desenvolvedores do Full Stack estejam sendo bem React ou até mesmo os desenvolvedores do Full Stack estejam Há muitos trabalhos que exigem esse conjunto de habilidades, e é importante que você aprenda isso como engenheiro de software. Seja você um engenheiro de back-end ou quem quer que seja, atualmente, o react também está sendo usado para criar aplicativos móveis OK. Então, sim, é muito importante que você entenda essas coisas e comece a construir coisas usando essa tecnologia. Então isso é reagir. Agora, como escrevemos código no react? Então, para escrever código e reagir, você precisa do NoDJS. Agora, o que é nogs? Portanto, o NoDGS nada mais é do que um tempo de execução do Jascript e permite que você execute o código do Jscript no lado do servidor Então, isso é algo que precisamos acenar com Gs. Também precisaremos de algo chamado NPM. Agora, o que é NPM? Então o NPM nada mais é do que um gerenciador de pacotes para JavaScript, ok? Ele é usado para gerenciar os diferentes pacotes que você usa com JavaScript. Por exemplo, ele é usado para instalar bibliotecas, ferramentas, estruturas. Portanto, se você quiser usar o react, precisará usar esse gerenciador de pacotes. OK. Além disso, precisaremos de algo chamado código do Visual Studio. Então esse será o IDE, ok? E vamos fazer uso disso e ele também tem um suporte maravilhoso para o desenvolvimento web. Então, vamos usar o código do Visual Studio para isso. Então, chegando ao nosso navegador, o que vamos fazer é acessar o Google e pesquisar o NodeGs Isso é algo que vamos precisar. Vou clicar aqui e você pode ver aqui. É aqui que precisaremos instalar o node JS. Você pode baixar a versão LTS do NodeJS. Você pode baixá-lo aqui. E você pode até mesmo ir para a página de download. E se precisar de algo personalizado, como para Windows, Mac, você pode obter a seleção aqui. Está bem? O processo de instalação é muito simples. Você baixa isso como qualquer programa de software normal e apenas segue as instruções de configuração e instalação. Está bem? Depois de fazer o download, o que você pode fazer é acessar seu terminal e verificar se a instalação foi bem-sucedida. Então você pode dizer node hyfen V. Você deve ver esta versão sendo impressa Portanto, o número da sua versão pode ser um pouco diferente do meu. Porque isso pode depender de quando você está assistindo a este vídeo e se há uma versão mais recente disponível Mas não se preocupe com números de versão diferentes. Um número deve ser impresso. É com isso que você deve se preocupar. Em seguida, você digita NPM. Portanto, também precisamos desse gerenciador de pacotes de nós. E você pode dizer hífen. Portanto, isso também deve imprimir um número Vosion. Tudo bem se for diferente do meu. Mas precisamos que essas duas coisas sejam instaladas em seu sistema. Então, um é o node JS, que é o tempo de execução do JavaScript, e então temos o NPM, que é um gerenciador de pacotes Apenas tenha certeza de que você tem essas duas coisas. 4. Criando seu primeiro projeto do React: Oi, aí. Então, agora é hora de começarmos a criar nosso aplicativo react, e vamos fazer isso com a ajuda da linha de comando. Então, a primeira coisa que vou fazer é acessar ou navegar pela linha de comando até a pasta do projeto. Agora, o que quero dizer com pasta de projeto é que é uma pasta de minha escolha onde eu desejo ter meus projetos de reação organizados, ok? Então, o que você pode fazer é acessar o Finder. exemplo, se você estiver no Mac, você pode acessar o Finder ou se estiver no Windows como eu, você pode acessar o Explorer, Alright e criar uma pasta no local de sua escolha, você pode chamar a pasta, como quiser Eu diria que é reagir. E então, a partir da linha de comando, você pode simplesmente navegar até o local em que criou a pasta. Então, eu criei essa pasta react aqui neste local específico, e CD é o comando, que é alterar o diretório, e está me ajudando a navegar ou acessar essa pasta específica ou estar nessa pasta a partir da linha de comando. Então, agora que estou nessa pasta específica, vou limpar todo o resto. Tudo bem Agora, nesta pasta específica, vou começar a criar meu aplicativo react. E para isso, vou usar o NPX, ok? Opa. Então, eu já criei alguns aplicativos de reação antes. Então você pode ver essa sugestão aqui, ok, mas não há nada que eu possa fazer sobre a sugestão. Está bem? Mas ignore essa sugestão por enquanto, porque o que esse terminal uh em particular faz é que, o que quer que ele veja em seu histórico, ele continua sugerindo você, o que é bom. Mostrando todo o comando, tudo bem. Então, NPX, vou usar o NPX, ok? Agora, NPX é uma sintaxe, certo. É usado para executar os pacotes de nós ou é usado para executar os pacotes. E então vamos usar o aplicativo Create react. Tudo bem Agora, o que é o aplicativo Create React. O aplicativo Create React é uma espécie de ferramenta que ajuda você a criar todo o aplicativo react. Agora, por que estamos fazendo uso disso? Como o projeto react precisa ser organizado de uma certa maneira, ele precisa ter a pasta SRC, alguns arquivos, e tudo isso vem junto e eles permitem que você ou seu aplicativo funcione perfeitamente, certo? Portanto, você também pode criar esses arquivos manualmente, mas essa é uma ferramenta que permite criar , criar ou configurar a estrutura do aplicativo da maneira correta. Está bem? E depois disso, vou apenas mencionar o nome do meu aplicativo, que eu possa chamá-lo de aplicativo MyRact, algo assim Ok. E o que eu posso fazer é simplesmente pressionar Enter. No momento em que eu pressiono Enter, o que isso fará é criar uma pasta nesse local específico. Então, nesse local específico, ele criará essa pasta. Por que está criando uma pasta nesse local? Porque eu naveguei até essa pasta a partir do terminal, e esse será o nome da pasta sob a qual todos os arquivos do meu projeto react existirão Está bem? Assim, você pode pressionar Enter e deverá ver algum tipo de processamento acontecendo. Assim, você pode ver a criação de um novo aplicativo de reação nesse local específico. Ele está instalando alguns pacotes e isso pode levar alguns minutos. Então, ao instalar, ele também informa o que está instalando. Está instalando react, react Dom, react scripts e tudo, tudo o que precisa. Então, vamos esperar um pouco até que todo esse processo seja concluído e vejamos uma confirmação. Então, recebi a confirmação e também recebi uma pequena mensagem. Ok. Então, quando comecei a gravar este vídeo, há uma nova versão secundária, que diz sobre o NPM, que está disponível, e está me perguntando se eu posso atualizar Ok, então eu vou atualizar mais tarde. Você pode não ver isso, ok, mas sim, vou ignorar isso por enquanto. É só uma notificação de upgrade. Você pode ver a confirmação aqui, happy hacking. Tudo bem E se você rolar até aqui, verá todo o processo do que aconteceu. Então, executamos esse comando aqui. Opa. Deixe-me rolar para cima. Então, executamos esse comando aqui. Está bem? Se você vier aqui, você pode ver que ele adicionou tantos pacotes. Demorou 36 segundos. Se você vier aqui, ok, foi dito que o sucesso criou esse aplicativo específico neste local e dentro desse diretório. Então, você precisa navegar até esse diretório e, dentro dele, você pode executar todos esses comandos aqui. Está bem? Agora, depois de navegar, ele fornece comandos prontos, como o NPN start Ele começará no servidor de desenvolvimento. Portanto, o aplicativo react que você criou vem com um servidor embutido incorporado Você pode executar este comando para agrupar o aplicativo e em arquivos estáticos, basicamente para implantação em produção. Isso iniciará o executor de teste, caso você queira executar casos de teste, NPM run Isso é algo que você pode executar. Então, a sugestão é que você pode começar executando isso aqui. Vou copiar isso. Está bem? Vou colar aqui. Vou até este diretório, ok, e então ele lhe dirá o início do NPM Agora, esse é um comando usando o qual você pode iniciar um servidor de desenvolvimento em sua máquina local. Então eu posso executar esse comando também, ok? E você podia ver o aplicativo instalado e funcionando. Então esse é o aplicativo, ok? Você pode ver o navegador aberto automaticamente, e você pode ver que este é o aplicativo que está funcionando. Agora, este é um servidor que mostra seu conteúdo que está executando seu aplicativo react no navegador Agora, qualquer alteração que você fizer nos arquivos, você verá recarregamentos ao vivo acontecendo aqui Tudo bem? Agora, você pode ver a mensagem aqui, como se precisasse editar esse arquivo específico e salvá-lo para recarregar Está bem? Então, essa interface que vem desse arquivo em particular, é o que diz. E se você clicar aqui, esse é o link para o site oficial do react. É a isso que está vinculado. Está bem? Assim, você pode acessar esse site e conferir ou ler algumas coisas também. Tudo bem Mas algumas coisas que eu gostaria de mencionar aqui são que, depois de iniciar o servidor de desenvolvimento, você pode pará-lo pressionando Control e C no Windows ou Command e C no Mac. Está bem? Estou no Windows, então pressiono Control C, e você pode ver que ele encerrou esse trabalho em particular E aqui agora, você vem se tentar atualizar, isso não vai funcionar Ok, porque o servidor está inativo, certo? Agora, para colocar seu servidor em funcionamento, você precisa executar o NBM start nessa pasta específica Está bem? Só então seu servidor estará ativo. Portanto, durante o desenvolvimento, você pode manter o servidor ligado e realmente modificar os arquivos, salvar e ver as mudanças acontecendo ao vivo. Está bem? Agora, vou falar um pouco mais sobre esse comando. Então, criamos o aplicativo react ou todo o aplicativo usando esse comando específico. Agora você também pode adicionar opções aqui no final. Está bem? Então, o que você pode fazer é usar os modelos aqui. Está bem? Agora, digamos que, ao trabalhar com o react, você também queira usar o texto datilografado Está bem? Então, se você estiver usando texto datilografado, você pode adicionar algo assim Você pode dizer template aqui e digitar script. Eu não vou executar isso, mas isso é apenas uma informação extra. O que isso fará é usar o modelo de texto datilografado para criar seu aplicativo e adicionar o suporte de texto datilografado desde o início, o que é útil se você estiver trabalhando em um projeto maior que pode se um projeto maior que pode beneficiar da Tudo bem Então você pode usar esse comando dessa forma, tudo bem. Espero que esse comando esteja claro. NPX create react tap para que não tenhamos o servidor aberto em execução, mas agora você pode reiniciar o servidor novamente dizendo NPM run NPM start Me desculpe Então, é o início do NPM, algo assim E se você iniciá-lo, ele iniciará novamente o servidor. Tudo bem Então, espero que isso seja útil e espero que você tenha conseguido acompanhar. 5. Instalando o código do Visual Studio: Este é nosso primeiro aplicativo baseado em reação, que criamos, ok? Ou devo dizer que não criamos. OK. Portanto, esse é um projeto gerado automaticamente usando o aplicativo Create React. Ok, e também está nos dando algumas dicas aqui. Você pode editar o app dot qs e salvar para recarregar. Está bem? Ele tem um link para aprender a reagir, que o levará ao site oficial do react. Tudo bem, até agora tudo bem. Portanto, este é o nosso aplicativo instalado e funcionando. Agora, o que precisamos fazer? começar a codificar e modificar as coisas. E o que vamos fazer para isso? Vamos instalar um IDE que é o código ID do Visual Studio. OK. Então, isso é o que parece. Se você já o tem no computador, se não o tem, acesse este site oficial. É uma ferramenta gratuita. É gratuito, desenvolvido em código aberto e executado em qualquer lugar. Como estou no Windows, estou solicitando que eu baixe uma versão estável para Windows Você pode alternar para qualquer sistema operacional necessário. Mas se o seu sistema operacional tiver um instalador aqui, ele funcionará automaticamente. Então, se você estiver fazendo login do Mac aqui, ele mostrará o download do Mac. Está bem? Então, seja qual for a plataforma em que você estiver abrindo isso, ele mostrará esse botão e você poderá passar por isso se não souber o que é o código do Visual Studio Mas basta fazer o download e instalá-lo como qualquer outro programa de software. Eu já o tenho instalado, então não vou mostrar as etapas de instalação, mas as etapas de instalação não são nada complexas. É muito simples e direto. 6. Passando para o Visual Studio Code: Agora, depois instalar o código do Visual Studio com êxito, você verá uma página como esta. Portanto, se você abrir o código do Visual Studio, pela primeira vez, verá esta página de boas-vindas. Agora, sou usuário do Visual Studio Code há algum tempo, ok? E você está vendo todos esses projetos recentes. Portanto, é provável que você não veja a lista de projetos recentes a menos e até que seja um usuário, ok? Mas como sou usuário, como eu disse, estou vendo a lista de projetos recentes que usei ou criei no passado. Além disso, você verá essas opções aqui, novo arquivo, arquivo aberto, pasta aberta, clone do repositório Git, conecte-se a tudo É uma ferramenta muito útil. Código do Visual Studio, eu o uso o tempo todo. Agora, para abrir o projeto, você conhece a pasta em que criou o projeto. Então você pode simplesmente clicar aqui, Abrir pasta e navegar até o local da pasta onde você criou o projeto. Como alternativa, se por algum motivo você não estiver vendo isso, você pode ir para o arquivo nas opções do menu aqui e dizer abrir pasta. Ambos são iguais. Então, o que vou fazer é selecionar Abrir pasta. Vou navegar até o diretório de minha escolha e abrirei o projeto aqui. Agora, quando selecionei Abrir pasta, vi essa janela de pasta, que é exploradora, navegue até a pasta em que criei o aplicativo react E vou selecionar essa pasta específica. Este é o meu projeto de aplicativo react que criamos. Lá dentro, você verá alguns arquivos, mas precisará selecionar a pasta raiz. Eu direi que selecione e ela abrirá essa pasta específica para mim. Agora eu posso fechar esta página de boas-vindas aqui, ok? Então você pode ver o projeto aqui no lado esquerdo, ok? Você pode ver essa pasta inteira. Se você expandir isso, verá os arquivos dentro. Está bem? Então, quando você executou o comando chamado Create React app, ok com Create React app, ele criou tudo isso para você. Você também pode criá-lo manualmente. Mas, como você pode imaginar, isso vai ser muito entediante, certo Então, essa ferramenta específica, aplicativo Create react, faz o trabalho para você, configurando toda a estrutura do projeto para você. Está bem? Analisaremos essa estrutura de projeto em breve, mas, por enquanto, o que eu também gostaria de explicar é que temos o servidor instalado e funcionando a partir do terminal. Agora, o que posso fazer é não precisar usar um terminal externo. O código do Visual Studio tem uma maneira pela qual eu posso realmente ter um terminal dentro do código do Visual Studio Dessa forma, nunca preciso sair código do Visual Studio e mudar para um terminal local. Aqui no topo das opções, vou ver o terminal aqui. Você pode dizer novo terminal, e você pode ver que este é um terminal integrado dentro do código do Visual Studio. E se você disser PWD, que é o diretório de trabalho presente, o terminal é aberto automaticamente na pasta que você abriu dentro do código do Visual Studio, que é a pasta do projeto Portanto, você também não precisa navegar, não precisa executar comandos, CDs e tudo mais e navegar, isso funciona como um terminal local. Então, aqui, posso dizer que o NPM começa aqui. No momento em que eu disser, recebo um erro, você pode ver que algo já está sendo executado na porta 3.000 E o que está sendo executado, nosso próprio aplicativo está em execução e está nos perguntando se você deseja executar o aplicativo em outra porta. Eu não quero fazer isso. Eu vou dizer não. Ok, e isso simplesmente interromperá a execução. Está bem? Mas o que vou fazer é fechar esse servidor porque não quero mais usar um terminal externo, você sabe, externo por aqui. Está bem? Quero usar terminal fornecido pelo código do Visual Studio e iniciarei o NPM, e agora ele deve executar o servidor de desenvolvimento para você Está bem? Dessa forma, o que podemos fazer é mover isso para uma nova janela. Então, aqui estamos na nova janela, e eu tenho o código do Visual Studio em execução na nova janela. Então, dessa forma, eu não preciso deixar o código do Visual Studio nunca. Eu posso até minimizar isso aqui desse jeito. Está bem? Eu posso até mesmo criar um novo terminal a partir daqui, para que você possa ver mais, e você pode ter vários terminais funcionando aqui. Está bem? É muito útil, e essa é a razão pela qual. Então, esse tipo de ferramenta que o Visual Studio Code fornece é a razão pela qual ele é tão amado na comunidade de desenvolvedores. Agora, também mostrarei a lista de extensões que eu tenho. Então, aqui, se você acessar essa guia de extensão no lado esquerdo, você tem algumas opções como pesquisar, controlar o código-fonte, executar e depurar, tudo isso, ok? Estou usando o Docker também em alguns dos meus projetos, então você também pode ver o Docker aqui Mas você pode não ver isso. Está bem? Isso precisa de uma extensão separada, ok? Mas se você for para a extensão. Agora, o que são extensões? Portanto, as extensões permitem que você aprimore ou estenda a funcionalidade padrão que Visual Studio Code já fornece. Então você pode ver, eu tenho uma extensão para o notebook Jupiter. OK. Sempre que estou programando em Python , e se eu quiser suporte para notebook , eu uso essa extensão OK. Então eu tenho essa extensão. Isso não é necessário para reagir. Eu tenho a extensão Python. OK. Agora, essa tag renomeada automaticamente, isso pode ser útil para o React porque, você sabe, se você estiver renomeando uma tag, tudo bem e se houver uma tag de fechamento, o que isso fará é renomear a versão paga dessa tag específica Ok, então isso é algo que você pode ter. É útil. Por exemplo, se eu tiver que dar um exemplo, deixe-me dar um exemplo. Então, digamos que se eu criar ou deixar eu abrir algum arquivo aqui. Ok, deixe-me abrir um arquivo HTML. Agora, essa coisa aqui, você pode ver, deixe-me ir até aqui, rolar para baixo. Portanto, esse título tem uma tag de abertura e uma tag de fechamento. Então, por causa dessa extensão específica, se eu renomear a tag de abertura, você pode ver que a tag de fechamento também está sendo renomeada Está bem? Então esse é o benefício dessa tag renomeada automaticamente Você não precisa renomear a tag de abertura primeiro e depois renomear a tag de fechamento, coloração beta, como você pode ver pelo próprio ícone, é usada para destacar a cor do par final do colchete Isso é útil se você estiver usando muitos colchetes em seu Okay, Debugger for Java, contêineres de desenvolvimento, jango doco, tudo isso eu uso para outras linguagens, extensão back para Java, gradle para Java, código Intel . Está bem? Isso é para desenvolvimento assistido por IA. Isso também serve para exemplos de uso da API Intelicode. OK. Eu tenho alguns para Python Então, tudo isso está relacionado ao Python. Vou rolar para baixo, um servidor ativo. Não precisamos desse Maven para Java. Isso também não é necessário. Mais bonito é algo que você pode usar. Isso formata o código. OK. Eu organizo o código para você OK. E sim, isso é o que temos. Ok. Também adicionarei algumas extensões agora mesmo aqui. Está bem? Então, o que você pode fazer é pesquisar trechos de código de reação aqui, algo assim OK. Ok, então você pode pesquisar o ES seven plus react, algo assim. E você verá essa extensão com quase milhões de instalações Então, são 12,9 milhões enquanto estou gravando este vídeo. Obviamente, isso continuará aumentando e você poderá ver um número diferente ao assistir isso. Então isso é extensão. Esse é o nome ES seven plus react redux react Native snippets Agora, o que isso faz é te dar modelos, ok? Por exemplo, se você quiser criar uma função, então você pode dizer RAFC Você pode simplesmente digitar isso e ele fornecerá toda a definição da função. OK. Então, esse tipo de atalho ele tem, o que ajuda você a economizar tempo. Então você pode instalar isso. Vou clicar em Instalar e adicioná-lo à minha lista de extensões. Está bem? Então, sim, nós o temos instalado agora, ok? Você pode explorar mais plug-ins ou extensões de reação no mercado aqui e pode brincar com eles. E você pode aprimorar a funcionalidade padrão que o Visual Studio Code já fornece a você. Tudo bem. Então, sim, trata-se de configurar o código do Visual Studio, e espero que você o tenha achado útil. 7. Explorando a estrutura do projeto: Então, agora é hora de começarmos a entender a estrutura do projeto react. Agora, ao abrir ou analisar o aplicativo react que você criou, há muitos arquivos que você verá. Alguns deles também são pastas. Está bem? Então, aqui você vê essa pasta de módulos de nós. Está bem? E o que é módulo de nó? Esse é um diretório que contém todos os pacotes do NPM, como bibliotecas, dependências das quais seu projeto depende E, geralmente, durante o desenvolvimento de seu aplicativo de reação, você geralmente não precisará interagir diretamente com essa pasta específica. OK. Então, sim, isso é algo que está lá, você precisa saber o que é, mas não trabalhará nisso. Pasta pública. Agora, essa pasta abriga todos os arquivos estáticos, como o HTML de ponto de índice principal, que contém o div raiz que seu react tap é injetado Está bem? Se você não entende isso, não se preocupe. Vou explicar isso, mas isso basicamente tem uma lista de todos os arquivos estáticos. Como você pode ver o fabricante você pode ver alguns logotipos, manifesto Jason robot dot HD e index dot HTML OK. Agora, o que é HTML com pontos de índice? Agora, este é o arquivo em que seu aplicativo react está sendo injetado. Então, aqui, esse é o HTML padrão, você pode ver, ok, tudo. E aqui, você vê o título como react tap. Então, ao executar o aplicativo, você vê o título como react tap. Se você mudar o título, posso dizer que aplicativo react mudou aqui, algo assim. E se eu salvar isso, se você vier aqui, verá o aplicativo react alterado, certo? E sempre que você faz uma alteração, o servidor se recarrega. Então, se eu adicionar três pensamentos, e se eu salvar isso, você verá que isso foi atualizado, certo E se você vier até aqui, as alterações também serão refletidas imediatamente no navegador. Então eu vou me livrar disso. Vou salvar isso e, se você voltar, verá que é o aplicativo react agora, certo? Então este é o arquivo em que seu aplicativo de reação está sendo injetado, ok? E aqui, se você vê dentro do corpo, você está tendo esse DIF Está bem? Agora, estamos usando esse div raiz para injetar o aplicativo react aqui Está bem? E como estamos fazendo isso, explicarei isso em breve. Por enquanto, basta entender que index ou HTML é um arquivo em que seu aplicativo react é injetado e está lá no diretório público Você tem a pasta SRC. Agora, a pasta SRC é a pasta onde toda a mágica acontece. Ele contém todos os arquivos JavaScript do seu componente de reação, folhas de estilo, imagens, tudo que existe nessa pasta específica. Então, basicamente, todo o código-fonte relacionado ao seu aplicativo de reação no qual você trabalhará reside na pasta SRC Então, você, como desenvolvedor do React , criará aplicativos e passará a maior parte do tempo nessa pasta específica. Está bem? Você tem Get ignore, é claro, se você o configurou aqui, pacote de log do pacote JCN Está bem? Então esse é o JCNFle Então você pode dizer que esse é o cerne do projeto quando se trata do gerenciador de pacotes de nós, NPM, ok? Então esse é um arquivo que vai listar todas as dependências que seu aplicativo está usando, ok? E dependendo das dependências desse arquivo específico, tudo bem, todas as dependências serão buscadas remotamente e adicionadas à serão buscadas remotamente e adicionadas pasta de módulos do nó É assim que vai funcionar. OK. Portanto, sempre que você adiciona uma nova dependência, pacote JCN é sempre atualizado Então é isso que o pacote GSN faz. OK. Mas agora, vamos dar uma olhada na pasta SRC Então, na pasta SRC, você encontrará esse arquivo chamado app dot Qs Ok, antes de explorar o app dot js, vamos ao index dot Gs. Index dot js é o ponto de partida do nosso aplicativo react, certo? E é aqui que o componente do aplicativo é renderizado. Então, vou abrir o index dot js, vou abrir o app dot js e vou simplesmente recolher isso. Está bem? Agora, se você der uma olhada no ponto de índice js, o que isso faz é obter a raiz aqui. Você pode ver o ponto do documento Obter elemento por ID, raiz. Agora, o que é raiz? Raiz que vimos aqui. Isso vem do HTML de pontos de índice. Então, index dot js está obtendo essa raiz e está renderizando. Você pode ver a renderização do ponto raiz aqui. Está bem? Ele está criando a raiz do React primeiro usando o React Dom e está renderizando o aplicativo aqui Você pode ver o aplicativo. Tudo bem? Agora, o que é app? Portanto, o aplicativo nada mais é do que um coral de pontos Assim, você pode ver no topo a lista de entradas, Importar aplicativo do ponto App. Agora, o que é isso? Este é o app dot chos. Está bem? Então, aqui temos um componente definido que foi predefinido, não o definimos . Foi definido. Ele estava disponível por padrão para nós. E isso tem algum código que está sendo renderizado na interface Está bem? Então, estamos renderizando esse componente aqui. Está bem? E se você vier aqui, isso é o que você está vendo na interface do usuário. Você pode ver edit src slash app dot Gs e salvar para recarregar. Você pode ver. Portanto, se você quiser alterar a interface, precisará editar o app dot js. Então, toque em dot js porque é isso que está sendo renderizado. E de acordo com as instruções, você pode modificar isso. Assim, você pode ver, editar App Js e salvar para recarregar. Essa é a mensagem que você está vendo aqui, e essa mensagem está vindo daqui. Certo? Então, quaisquer mudanças que você fizer aqui, você verá imediatamente. Então reflita isso. Então eu posso dizer recarregar e posso dizer atualizar aqui, atualizar o teclado E você verá aqui 1 segundo. Eu não fiz isso. OK. Atualizar. Você pode ver que a atualização foi adicionada aqui. Então, estou atualizando ao vivo e estou vendo as mudanças. Se eu salvar novamente, se eu for aqui, atualização será removida, certo? Então, qualquer tipo de mudança que você queira fazer na interface, você pode fazer no APD, ok? Você pode até adicionar mais componentes, como se estivéssemos renderizando apenas um aplicativo aqui Por exemplo, app é o componente definido pelo APD. Você pode ver que estamos exportando aqui. OK. Então, estamos exportando para cá e ele está sendo importado neste arquivo e está sendo renderizado aqui Está bem? Qualquer tipo de alteração que você queira fazer, você pode fazer aqui. E se você quiser adicionar mais componentes, podemos fazer isso também, é claro. Você aprenderá isso quando nos aprofundarmos um pouco mais. Mas sim, espero que isso lhe dê uma clareza completa sobre o que está acontecendo, por que está acontecendo. E você encontrará mais alguns arquivos, como o CSS de pontos de índice. Você pode ver nos pontos do aplicativo que você encontrará o CSS do aplicativo sendo usado Então, esses são todos arquivos CSS, ok, eles existem e estão sendo usados. Você tem um ponto de logotipo SVG. Está bem? Esse é o arquivo do logotipo. OK. Então, sim, isso é sobre a estrutura do projeto. É muito simples e dá uma ideia do que está acontecendo quando seu aplicativo de reação é criado quando você o executa pela primeira vez criado quando você o executa pela Tudo bem. Portanto, espero que você tenha clareza sobre como essa interface está sendo renderizada e espero que tenha sido útil 8. Nosso primeiro projeto do React: Então, agora é hora de fazermos um pouco de experimentação com nosso projeto que criamos Então, o que vamos fazer é modificar um pouco a fala para imprimir uma mensagem personalizada de nossa escolha, e a mensagem que podemos imprimir é bem-vinda ao react, e este é meu primeiro aplicativo de reação. Então essa é uma mensagem que vamos imprimir. Se você acha que pode encarar isso como um desafio, tudo bem, dependendo do que entendemos até agora, eu ficaria feliz se você fizesse isso. Está bem? Então, pause o vídeo agora e tente isso como um desafio em que você substitui o conteúdo que está vendo e o substitui pela mensagem que acabei de dizer: OK Para substituir as instruções também fornecidas aqui, você precisa editar esse arquivo específico, arc slash app dot CHS, para fazer qualquer alteração Tudo bem? Então, experimente isso. E se você não conseguir, não se preocupe, você voltará. Você pode voltar e reproduzir este vídeo e assistir a esta solução. Então, espero que você tenha tido a chance de tentar isso como um desafio. O que eu faria é começar com essa coisa em particular aqui. Vou até o SRC e vou para o app dot Hs. Está bem? Agora, o app dot js está sendo renderizado. Portanto, esse componente do aplicativo está sendo renderizado em caracteres de pontos de índice. Está bem? E esse é o componente principal no momento, ok? Então, o que eu vou fazer é vir até aqui. Ok. Na verdade, posso minimizar isso aqui. O servidor está em execução. Então, aqui, estou devolvendo esse DIF. Então eu não preciso de tudo isso, então eu posso simplesmente me livrar disso. Tudo bem? Por aqui. E então aqui eu posso ter uma mensagem. Está bem? Então eu posso dizer H um. Posso dizer, bem-vindo ao React, algo assim. E você pode colocar a tag E P aqui e dizer que está tudo bem, este é meu primeiro aplicativo de reação. Algo assim, e você pode salvá-lo. No momento em que você a salvar, e se você vier aqui, verá essa mensagem aparecer. Está bem? Agora, você pode ver que isso é totalmente widescreen porque removemos muitos elementos por aqui, certo? Então é isso que você precisa fazer. Outra coisa é que, mencionarei aqui, agrupei esses dois elementos ou esses dois elementos HTML em um TIF pai Está bem? Então, o que está acontecendo aqui só observar que esta é uma função, uma função normal de JavaScript, e eu estou usando e eu estou usando o logotipo aqui, o que, na verdade, eu não sei. Vou fazer uma pequena limpeza. Ok. Agora, estou usando o app dot CSS, esse arquivo CSS. Essa é uma função que está retornando algo. Ok, ele está retornando isso e eu estou exportando essa função específica E isso está sendo usado em index, index dot Qs. Você pode ver aqui. Está sendo usado aqui. O que significa que está sendo renderizado aqui e está sendo renderizado em root Def. Está bem? Então, o que está acontecendo é que eu estou retornando isso ok, esse código aqui. Esse trecho de código parece HTML, ok? Mas, na verdade, não é HTML. É conhecido como JSX, ok? Então, a sintaxe XML do Ja Script, porque você pode ver em HTML, se quiser escrever um nome de classe, você terá um atributo diferente aqui Você não vai usar o nome da classe aqui, ok? Então, em vez do nome da classe, você escreverá a classe em HTML. Está bem? Mas no Jx, você usará o nome da classe. Ok. E a sintaxe é muito parecida com a do HTML. Então, se você conhece HTML, isso seria bem fácil. Ok. E há uma regra que você precisa saber que está aqui ao retornar a interface. Então, na verdade, você está construindo uma interface e a está retornando do componente Portanto, ao retornar isso, você precisa garantir que todo o elemento da interface do usuário esteja agrupado em um único elemento. Portanto, você só pode retornar um único elemento e não vários. Vou mostrar isso para você. Então, se eu remover isso, ok, você pode ver que eu começo a receber um erro. Você pode ver que as expressões JSX devem ter um pai. E se eu tentar salvar isso e ir até aqui, você pode ver todos os tipos de erros aqui. Você pode ver. E também está exibindo a mensagem de erro. Ok, está dizendo que deve ser embrulhado em etiquetas anexas e que você precisa de um fragmento aqui. Ok. Então essa é a explicação que está dando. Vou apenas fazer o Control S, trazer de volta o TIF e salvá-lo para devolvê-lo à sua forma original de trabalho Tudo bem Então, espero que isso seja algo que você tenha entendido e espero que tenha sido capaz de fazer isso. Está bem? Você pode até mesmo adicionar sua introdução aqui. Tipo, Ei, eu sou, seja qual for o seu nome, você pode adicionar isso. Você pode salvar o arquivo e verá a saída na página da web. Tudo bem? Então, espero que você tenha conseguido acompanhar e espero que tenha sido útil. 9. Introdução ao Vite e sua configuração: Então, estou aqui no meu terminal, ok, e navego até minha pasta onde estou criando os projetos react Então, se eu disser LS, verei que um projeto de reação já foi criado aqui. Está bem? Agora, o que eu quero fazer aqui é falar sobre trigo. Agora, o que é comer? Então, o WT é outra forma de criar projetos de reação, e o WT é, na verdade, uma ferramenta de construção moderna que oferece uma experiência de desenvolvimento rápida e eficiente para aplicativos web modernos, ok? E isso acelera o tempo de desenvolvimento para desenvolvedores, processando arquivos somente quando eles são realmente importados, e é muito mais rápido. Ele também tem um servidor de desenvolvimento muito mais rápido, ok? Então, hoje, se você está desenvolvendo reações, trigo está sendo muito usado. Está bem? E se você acessar o navegador, se pesquisar trigo aqui desta forma, ok, você verá que é um servidor de desenvolvimento local. Está bem? É uma ferramenta de front-end. E se você acessar o site aqui, verá que é um Biltol para Ok, e é uma ferramenta de criação de front-end extremamente rápida que alimenta a próxima geração de aplicativos web E você pode passar. Você pode ver o servidor instantâneo iniciar rapidamente, HMR. Ele suporta muitas coisas: Ja script, typescript. OK. E sim, você pode acessar o site e saber mais sobre o que ele permite que você faça. Tudo bem. Além disso, para explorar mais, você pode clicar em Começar aqui. OK. E você pode ver mais sobre o trigo. Você pode ver como é pronunciado. É pronunciado como Wheat Okay. E você pode ver, esses são os modelos que ele suporta, ok, Vanilla juice Vanilla TypeScript, veja se ele suporta react Tudo isso ele suporta. Tudo bem? Então, se você rolar um pouco para baixo, você também verá os comandos usando NPM, yarn, PNPM e B. Mas estamos usando o NPN, então podemos fazer uso desse então podemos fazer uso Então, o que vou fazer é mostrar como você pode criar um projeto usando VT. OK. Você pode até criar um projeto usando o aplicativo Create React, mas eu diria que é uma forma mais moderna de criar projetos de reação e trabalhar no desenvolvimento web. Tudo bem? Isso é o que todo mundo está fazendo atualmente. Ok, então você deve saber o que é TI e como você pode fazer uso dela. Então você pode ver este comando NPM create Wet latest. Está bem? Então eu posso copiar isso. Está bem? Há mais uma versão. Desse comando em particular. Então, depois de executar o comando, ele perguntará o tipo de projeto que você deseja criar. Qual é o nome do projeto? Eu vou te dizer qual modelo você deseja usar. OK. Então, tudo isso será solicitado e você poderá selecionar as opções. Mas se você quiser especificar as opções antes com esse comando em si, sem passar pelo prompt. Assim, você pode dizer diretamente: NTM create Wet latest, especificar o nome do projeto e especificar também o modelo Por isso, especificou que o modelo é visualizado. Você pode especificar o modelo como react se estiver trabalhando no react aqui. OK. Ou se você estiver trabalhando no react com suporte para TypeScript, você pode dizer react hyfen Dependendo do que você deseja fazer ou do tipo de projeto que está criando, você pode especificar o modelo. OK. Mas vou continuar com essa abordagem. OK. Vou te mostrar todas as opções que ele nos pede. Está bem? Agora, verifique se você está na pasta, que não é um aplicativo de reação. Está bem? Então, estou aqui nesta pasta onde estou criando todos os aplicativos de reação, certo? Portanto, este é um aplicativo de reação que eu tenho. Agora, vou executar esse comando. Está bem? Opa, não esse Está bem? O que eu copiei, deveria ser esse. OK. Vou colar aqui. Então, o NPM cria o Wheat, o mais tardar. No momento em que você pressiona Enter, ele dirá que, Ei, ele precisa instalar os seguintes pacotes. Tudo bem para continuar? Eu vou dizer que sim. OK. E ele instalará todos os pacotes e está me perguntando qual deveria ser o nome do meu projeto. Está bem? Assim, posso inserir o nome do meu projeto. Eu posso entrar. Posso dizer reagir por 1 segundo. Então, eu tenho minha guia de reação, certo? Então eu posso ver minha reação ou não deveria ser meu toque de reação, então eu posso dizer o que reage, algo assim. Está bem? E eu vou pressionar Enter, e você pode ver que ele está me perguntando a estrutura. Então, qual estrutura eu gostaria de escolher aqui? Está bem? Você quer baunilha, você quer usar o react. Então, como estamos usando o react, selecionarei react aqui. Ele está me perguntando se eu quero o suporte do TypeScript ou algo parecido Então, vou selecionar JavaScript aqui. OK. E sim, terminamos, você pode ver o quão rápido isso foi. Está bem? Você pode ver. Não é necessário instalar os seguintes pacotes. Ok, desculpe, preciso instalar os seguintes pacotes. E ele me fez algumas perguntas para as quais eu havia respondido. Você também pode pular esse prompt, como eu disse, adicionando isso no comando Você pode especificar o nome do projeto e especificar coisas como modelo e tudo mais aqui. Está bem? Isso também é factível. Tudo bem? Mas eu escolhi seguir o caminho interativo, e então ele criou esse projeto aqui, ok? E está dizendo para você fazer CD, o que reage. E faça a instalação do NPM, e você pode executar o NPM Tf Então, vamos executar esses comandos e ver o que acontece. Vou ver o CD no react. Vou dizer NPM install, que instalará todas as dependências de que meu projeto precisa, e copiarei esse NPM run Def Ok, sim, está instalando tudo. Isso levará alguns segundos. Isso é feito em 10 segundos, e eu direi NPM run def E agora você pode ver que ele iniciou o servidor no host local 5173 Portanto, essa é uma porta padrão aqui. Ok, isso está sendo usado para executar esses projetos, ok? E se você passar para isso, ok, deixe-me reiniciar para que você possa ver que eu fui muito ampliado Está bem? Então você pode ver que essa é a página padrão. Então diz Wt plus react, e você pode ver aqui um contador no qual você pode clicar e aumentar a contagem. Está bem? E você tem o app dot Jx, que você pode explorar e editar basicamente para atualizar essa interface específica aqui Está bem? E você pode clicar nos logotipos de TI e React para saber mais. Então, se você clicar em React, você será direcionado para a página React. Se você clicar no logotipo Wet, você será direcionado para a página Wet. Tudo bem. Então, espero que você tenha conseguido seguir um e espero que tenha sido útil. 10. Passando para o código do Visual Studio e alterando a porta: Agora, o que vou fazer é ter esse aplicativo de aquecimento em execução, mas na verdade estou executando-o no meu terminal nativo. Então, o que eu faria é ir até o Visual Studio Code e abrir o projeto heat no Visual Studio Code para eu trabalhar nele. Então, vou até File. Eu vou dizer, abra a pasta, ok. E aqui, selecionarei eat react. Está bem? Então, Wheat react é o nome do meu projeto, certo? Vou abrir o terminal também. Aqui. OK. Agora eu posso executar o servidor a partir daqui. Então, eu posso executar o servidor, na verdade, mas aqui você notará que um servidor está sendo executado na porta 5173 OK. Então, vou parar esse servidor. Está bem? Então, configuramos o NPM como run deep e ele está sendo executado em 5173, que é a porta padrão para Agora, digamos que eu queira personalizar essa porta para Loose 3.000 Está bem? Então, o que eu posso fazer é vir até aqui. Uh, você pode ver a estrutura do projeto. Está bem? É quase semelhante ao aplicativo react aqui. Você pode ver. Está bem? O que é WeatJS Esse é o arquivo de configuração que temos. OK. Então, o que vou fazer é entrar nessa configuração. OK. Isso me permite fazer algumas configurações personalizadas para o Wheat. Vou abrir isso e aqui, você pode ver isso. Ok, essa é a configuração. Então, eu tenho plug-ins de reação. Agora, aqui embaixo disso, eu vou dizer servidor. Ok, e vou dizer dois pontos, vou acrescentar um elogio aberto e fechado. Vou adicionar uma vírgula Vou terminar com uma vírgula. E aqui, vou dizer porto, Colin, vou dizer 3.000 e vou terminar com uma Está bem? Isso está feito. Vou salvar esse arquivo aqui, podemos dizer NPM, corra surdo Está bem? Se você fizer isso, verá que o servidor está funcionando no host local 3.000 Opa, eu acidentalmente encerrei o servidor, mas ele está rodando em 3.000 Agora, se você atualizar o 5173, não encontrará nada aqui Aqui em 3.000, se você atualizar isso, este é nosso aplicativo antigo que criamos Você verá t plus react correndo por aqui. Está bem? Então, sim, você tem um contador. Você pode ver que tudo está igual. OK. Então, é assim que você pode alterar a porta adicionando uma configuração simples em et config chas e você pode fazer isso da maneira que eu mostrei Está bem? Agora, aqui você verá todas as pastas e tudo o que foi criado, que são semelhantes, devo dizer, ao que vimos no projeto que geramos usando o aplicativo Create React. Você verá o ponto médio principal SX. Está bem? Portanto, no arquivo react ou no projeto anterior que tínhamos, se você criar um projeto usando create react app, verá que será mean dot js e não JSX Aqui você tem app dot jsx e não app dot Gs. Está bem? Então, aqui, tudo está sendo definido na extensão GSX E a razão para isso é porque ele tem código JSX. Está bem? Então esse código aqui que você está vendo não é HTML. Ok, deixe-me minimizar isso. Portanto, isso não é HTML. Na verdade, isso é código JSX. Ok, que é semelhante ao HTML. Quase semelhante, eu diria que, se você conhece HTML, você pode realmente ler esse código. Mas há pequenas diferenças, como o nome da classe. É assim que você define classes. Então, em HTML, você terá uma classe como essa, certo, com essa tag de classe. Mas aqui, você tem o nome da turma, ok? E você pode ver que, no resto, tudo parece semelhante ao HTML. Está bem? Então esse é o JavaScript XML, JSX, ok E você encontrará os nomes dos arquivos como jsx dot JSX aqui. Está bem? Então, isso é algo que você precisa saber, certo? E em qualquer RRS, tudo é semelhante. Índice ou TML, você tem fora da pasta pública aqui Você pode ver. Você tem o pacote dot JCN que é usado basicamente para empacotar ou não empacotar, devo dizer que é basicamente usado para gerenciar dependências para o seu projeto aqui E todas as dependências que você adicionar virão em módulos de nós, que não abordaremos Sua pasta pública, que tem um arquivo SVG. Está bem? Portanto, é uma estrutura semelhante, quase a mesma, eu diria. E você entendeu que, se entender o projeto criado usando a ferramenta de aplicativo Create React , também entenderá isso. Tudo bem. Então, sim, espero que isso seja útil e espero que você tenha conseguido acompanhar. 11. Introdução à sintaxe e regras do JSX: Então, agora é hora de começarmos a falar sobre JSX. Agora, o que é JSX? Então, eu adicionei alguns comentários a este aplicativo ou arquivo JSX . Tudo bem Como você pode ver aqui, o JSX é uma extensão de sintaxe para JavaScript que se parece com HTML Está bem? E com a ajuda do JSX, você pode escrever código semelhante a HTML em JavaScript Então, você pode escrever código HTML em JavaScript? Não, mas com a ajuda do JSX, você pode escrever, e essa reação transforma isso em objetos JavaScript. Ok. Então é isso que o GSSix é, e é por isso que ele está sendo usado, certo? Então, vamos dar uma olhada em alguns exemplos aqui, ok? Você pode ver que já existe algum código escrito no Gasix quando criamos o projeto, e é isso que está sendo renderizado, ok, com a ajuda Está bem? Mas vamos esclarecer isso e abordaremos exemplos muito mais simples Ok. Mas uma coisa a lembrar é que é disso que você deve se lembrar. Parece HTML, mas não é HTML. Ok, se você conhece HTML, você pode facilmente entender, ler e escrever, desculpe, não Ja Script, GSX, e isso permite basicamente ajudá-lo a criar componentes de reação, e você pode ver como será a aparência da sua interface diretamente no seu código, porque é semelhante ao HTML. Está bem? Então, o que eu vou fazer é, você pode ver aqui que há algumas variáveis e tudo criado, então eu vou me livrar disso, de tudo isso. Ok. Vou me livrar de tudo isso. Ok. E eu vou guardar isso. Portanto, não há literalmente nada agora na página. Ok. Está totalmente vazio, como você pode ver. Ok. Eu vou me livrar dessas importações também, ok? Vou apenas manter o arquivo CSS. Se você for para o arquivo CSS. Ok, é um CSS bastante decente, certo. Então, algo foi escrito lá. Ok. Então, vou ficar com esse arquivo. Ainda não vamos mexer no CSS, certo? Mas vamos começar a escrever cerca de seis códigos. Está bem? Então, o que eu faria é dizer aqui, aqui dentro disso. Está bem? Então, aqui, digamos que isso é DIF. Ok, então eu vou ter um elemento TF. Ou era uma etiqueta vazia. Eu posso dizer aqui H um, não. E eu posso dizer como eu posso dizer um mundo, algo assim E você verá hello world sendo impresso aqui como uma saída. Está bem? Agora, isso é JavaScript. Essa coisa é inteiramente JavaScript, certo? E dentro do JavaScript, você tem permissão para escrever HTML como código, e isso parece HTML, mas na verdade é JSX Está bem? Você pode até mesmo pular essas tags Div, se desejar Vou explicar a importância de ter um DIV, como tudo embrulhado em um TIF Mas você pode ver que isso também está funcionando perfeitamente bem. Está bem? Agora, o que você pode até mesmo fazer é levar isso para cá, ok? Posso dizer const ligment aqui, e posso atribuir isso aqui, algo assim Ok. Então, aqui, você pode simplesmente dizer, ok, lamento dentro do par, em troca Está bem? Agora, se você salvar isso e vier, tudo bem, você não verá nenhuma saída. O motivo pelo qual você não está vendo nenhuma saída é porque ela precisa ser encapsulada em um TIF, ok? Então, vou cortar isso e colar aqui. Está bem? Algo parecido com isso. Ok. E eu vou guardar isso. E se você vier aqui, verá hello world como saída. Está bem? Então, sim, essa é outra maneira de renderizar a mesma coisa. Você pode até mesmo recortar e colar aqui, como fizemos no início. Está bem? Mas sim, existem algumas regras quando você está usando o GSX, existem algumas regras sobre as quais eu quero falar. Tudo bem Agora, a primeira regra são os elementos GSX. Então você está retornando elementos JSX aqui como parte da declaração de retorno Está bem? Então, dê uma olhada na estrutura desse código, ok? Você tem essa função. Isso é retornar os elementos JSX, tudo o que você está retornando aqui está sendo renderizado na interface Então, se você não retornar nada daqui, se eu não retornar o elemento, ele não será renderizado na interface, você pode ver, certo? Se eu salvar o arquivo, ele não será renderizado. Se eu salvar o arquivo novamente, ele será renderizado. Então, tudo o que você está devolvendo aqui está sendo renderizado na interface, e é isso que você está exportando aqui E a razão pela qual está sendo renderizado é porque no ponto principal Jx, você está renderizando o aplicativo aqui como parte do elemento raiz E o que é aplicativo , aplicativo, está vindo daqui, é esse componente. Ok. Portanto, o que quer que você esteja renderizando, quaisquer elementos que você esteja retornando aqui como parte da instrução return devem ser agrupados em um único elemento pai. Está bem? Então, deixe-me explicar isso melhor. Está bem? Então, o que eu vou fazer é comentar isso por um tempo, ok? E eu vou dar olá mundo por aqui, ok? Diretamente, em vez de ter esse elemento. Está bem? Então, digamos que eu tenha hello world simple. Está bem? Agora, sem esse elemento pai, eu posso ter hello world. Não há problemas como tais. Você pode ver. Se eu tiver isso, funcionará bem. Está bem? Mas no momento em que eu adiciono mais um elemento aqui, digamos que eu diga aqui no alto. Ok. Primeiro de tudo, você vê que eu recebo um erro. Ok, então você pode ver que as expressões JSix devem ter um elemento pai E se eu vier aqui, você pode ver o erro aqui. Você pode ver que ele deve estar envolto em uma etiqueta de fechamento e você pode ver que não está funcionando, certo? Portanto, tem que haver um elemento pai. E se você tiver vários retornos, vários elementos que você está retornando, vários seis elementos J, o que você pode fazer é agrupá-los em um único elemento pai, o erro desaparecerá e você verá a saída aqui. Então você vê hello world, e então você vê high, que está escrito na tag P. Tudo bem Então, espero que isso esteja fazendo sentido. Essa é a regra número um, ok? Os elementos JSX devem ser agrupados em um único elemento pai. Você trabalhará muito com o JSX se estiver desenvolvendo o React e se lembrar dessa regra, porque as pessoas sempre se perguntam por que você precisa agrupar tudo em uma única dica e tudo Está bem? Então essa é uma das regras. Está bem? Outra regra é em HTML, você usa a classe, certo, para atribuir um nome de classe a um elemento específico, certo? Mas com o JSX, você precisa usar o nome da classe. E não é uma aula. Portanto, o nome da classe é usado em vez da classe, e a classe não é usada porque classe é, obviamente, uma palavra de reserva no Ja Script. Ok, então estamos usando o nome da classe aqui. Está bem? Então, isso é algo que você precisa ter em mente. Então, se você quiser adicionar nomes de classes que eles possam ser estilizados corretamente, você deve usar o nome da classe Está bem? E lembre-se da sintaxe aqui. Opa. Então lembre-se da sintaxe, tem que ser o nome da classe Então N, você pode ver a caixa do camelo em ação aqui, ok? Então, essa é outra regra, então existe uma regra sobre tags de fechamento automático. Está bem? Agora, haverá tags que não precisam de nenhum tipo de criança, por exemplo, tag de imagem. Ok, então eles têm que ser fechados sozinhos. Está bem? Por exemplo, eu preciso ter aros Então eu posso dizer, eu tenho que fazer uso de uma imagem como essa. Eu posso adicionar SRC e tudo mais aqui. Está bem? Mas a etiqueta tem que ser uma etiqueta de fechamento automático. Está se fechando sozinho, certo? Então, isso é algo que você precisa ter em mente. Ok. Então, essas são algumas das regras sobre o GSX, ok. Mas lembre-se de que os pontos principais desse vídeo em particular são que JSX não é HTML Ok, parece muito, muito parecido, mas não é TML. Você também pode usar o JavaScript no JSX incorporando-o em Ok, aqui, algo assim. Você pode dizer sete mais seis mais sete, algo assim, aqui, e você verá 13 como saída A. Assim, você pode ter o código JavaScript incorporado em um único par de urbass Isso é algo que pode ser feito. Está bem? E os elementos JSX devem ser agrupados em um único elemento pai, como DV aqui Está bem? Então, sim, isso é sobre J six, sobre introdução ao JSix Espero que isso esteja claro e espero que esteja sendo útil. 12. Expressões e atributos com JSX: Então, vamos começar a falar sobre expressões e atributos com o Jax Então, eu tenho alguns comentários aqui. Ok, então você pode ver esse primeiro. O primeiro ponto diz que você pode incorporar qualquer expressão JavaScript válida dentro da predefinição ondulada no JA six E os atributos JSix usam a sintaxe de maiúsculas e minúsculas do Camel. Então, esses são os dois pontos que vamos abordar. Está bem? Agora, o que vou fazer é limpar um pouco aqui Só vou ter uma única briga aqui. OK. Então, primeiro ponto C, você pode ter ou incorporar qualquer expressão JavaScript válida dentro do curly pres E isso está dentro do JSX. Agora, o que isso significa é que, se eu quiser imprimir uma edição de dois números, ok, dez mais dois, eu posso absolutamente fazer isso porque essa é uma expressão Java válida, ok? Isso é totalmente permitido. Agora, em vez de apenas imprimir o total aqui, posso ter H uma etiqueta, algo assim. Ok, 1 segundo. Então, eu vou ter cada um. Vou dizer olá. Ok, e eu vou ter um nome aqui, algo assim. OK. E aqui, eu posso dizer const, nome, e eu posso dizer ALS, algo assim OK. Então, com isso, você pode ver, estamos cumprimentando Alice, ok E aqui, o que fizemos foi criar uma variável JA Script ou constante JA, posso dizer, chamada nome. E então eu estou fazendo uso disso na sintaxe JSX. Está bem? Agora, essa é uma expressão que está sendo avaliada, ok? Então, o resultado será Hello Alice, e é isso que vemos como saída Está bem? Agora, uma coisa que eu gostaria de mencionar aqui é que mencionei algumas vezes que G six não é HTML. OK. Então a questão é: como ele está sendo renderizado no navegador Portanto, ele é convertido em HTML pelo react e exibido no navegador. Então é assim que a renderização funciona para JSX. Agora, isso é sobre expressões. OK. Vamos dar um exemplo de J seis atributos. Está bem? Agora, sempre que você estiver usando elementos , é claro que você também usará atributos, certo? Por exemplo, um desses atributos está aqui, um desses atributos seria o nome da classe, ok? Ou se você quiser atribuir uma tag H a uma classe, você adicionaria o nome da classe aqui. É assim que você atribuirá uma classe a um elemento no JSX, ok E você pode chamar isso de saudação aqui. OK. Agora, lembre-se que isso é um caso de camelo, ok? E você não pode ter aula aqui, ok, porque isso é HTML, certo? E isso é JSX. Tudo bem. Então tenha isso em mente, ok? Você pode até mesmo ter em linha. Você pode até mesmo usar atributos que permitem usar o estilo embutido Está bem? Deixe-me dar um exemplo disso também. Está bem? Então, digamos que eu queira ter um botão aqui, ok? E eu vou dizer, clique em M, algo parecido aqui. OK. E digamos que eu queira ter estilo aqui. Ok, então eu vou dizer estilo. OK. E vou adicionar peras duplas encaracoladas e vou ver. Então, sem um estilo, vamos ver como esse botão está chegando. Então, está vindo dessa maneira. Você pode ver, clique em mim. OK. E aqui eu posso ver agora a cor de fundo. OK. Cor do plano de fundo. Você pode ver isso aqui e eu vou atribuir, digamos, verde. OK. Você pode atribuir qualquer cor que quiser. OK. E eu terei que a cor seja a do branco. Ou aqui. Algo parecido com isso. OK. Vou guardar isso. E se eu vier aqui, você pode ver, clique em mim. OK. Você pode ver como isso foi renderizado. OK. Deixe-me mover essas duas linhas separadas para que fiquem visíveis para todos. OK. Tudo bem. Então você pode ver. Estou usando estilos embutidos aqui em vez de um estilo externo Está bem? E eu posso até remover isso, me livrar desse texto. Está bem? Eu posso adicionar isso como uma expressão. Então, posso dizer const button, label, algo assim, e posso clicar em M aqui em códigos únicos como uma string Ou você pode usar códigos duplos. Isso seria melhor. OK. E aqui você pode atribuir o rótulo como expressão e verá a mesma saída. Você pode ver. Está bem? Então é assim que você pode usar os atributos, ok? Você pode até ter outro botão. Ok, então deixe-me pegar um botão, opa. Vou copiar esse botão. Vou adicioná-lo aqui. OK. E aqui, você pode dizer alerte-me, ou este é o texto. OK. E aqui, você pode dizer. Então, aqui, o que estou fazendo agora é atribuir um evento ao clicar. Está bem? Então eu criei um botão. Você pode ver o alerta para mim. OK. Mas digamos que eu queira ter um evento onclick aqui Está bem? Agora, clicar em HTML é clicar assim, certo? Mas em J six, como eu disse, segue a sintaxe camel Kaye Então C será a capital aqui. Apenas tenha isso em mente. Ok, C será maiúsculo aqui, e então, dentro do par de chaves, você pode criar esse tipo de função aqui, e você terá um alerta, e eu posso dizer botão de acento invertido, clique, algo clique, Está bem? Se eu salvar isso, vamos ver como isso funciona. OK. Você pode ver o botão clicado Isso está funcionando perfeitamente bem. Está bem? Então, essas são pequenas coisas sobre JA six que as pessoas sempre se perguntam. Então, se você é um iniciante, se você pular isso e ir diretamente para o código react, e se você ver um código escrito assim, você se perguntará por que isso é maiúsculo, em primeiro lugar Está bem? Portanto, você precisa entender que é assim que ele é usado no JA six. Está bem? Então, lembre-se dessas duas coisas você pode incorporar qualquer expressão válida do Jascript dentro de um Curly Breeze no código JSix, e os atributos do JSix usam a sintaxe das teclas Camel, atributos do JSix usam a sintaxe das teclas Camel Então, espero que você tenha conseguido acompanhar Vou dar um último exemplo aqui de exibição de uma imagem. OK. Então, o que vou fazer é usar a tag IMG aqui OK. E exibiremos uma imagem. Vamos dizer SRC aqui. OK. E o que vou fazer é que precisamos de uma imagem aqui, então vou dizer, por favor, segure a imagem, algo assim. OK. E eu vou a este site e obteremos a imagem do espaço reservado de 600 por 400 Portanto, este é um site que fornecerá qualquer tipo de imagem reservada OK. Então eu vou dizer SRC, esta é a parte da imagem E se eu salvar isso e se eu vier aqui para ver a saída, você pode ver. OK. Ok, 600 por 400 é muito grande. Então, vou mudar isso para cem por 100. Se isso vier aqui, você pode ver uma imagem de 100 por 100. E isso pode até ser convertido em uma expressão. Então eu posso cortar isso. Ok, eu posso ir até aqui. Eu posso dizer consimage URL, algo assim. Eu posso adicionar isso aqui, e eu posso vir aqui e posso ter o caminho da imagem aqui, URL da imagem. Assim. Está bem? Posso até adicionar um espaço reservado Eu posso ver Alt e esta é uma imagem dinâmica. Assim. OK. Você pode ver. A saída não mudou, ok? Está funcionando perfeitamente bem. Ok, então é assim que você pode trabalhar com imagem. Você pode até mesmo mover essa declaração para cá, vamos ver. OK. Opa, você não pode. Você não pode. Então, considerando isso, tem que estar aqui no topo, ok? Logo após o retorno, ok? Isso não pode fazer parte da escrita. Me desculpe por isso. OK. Então, sim, este é o J six, e espero que esteja bem claro para você e espero que tenha achado isso útil. 13. Renderização condicional: Tudo bem, então vamos agora falar sobre renderização condicional e Agora, a renderização condicional é usada quando você deseja renderizar diferentes elementos da interface com base em determinadas condições e, em reação, você pode usar a renderização condicional de Portanto, há várias maneiras de implementar a renderização condicional Está bem? A primeira maneira é fazer uso de declarações IL. Agora, se você conhece JavaScript, deve estar ciente da declaração FL. Portanto, você pode usar a instrução FFL para fazer renderização condicional Você também pode usar o operador ternário e também pode usar o operador Deixe-me mostrar isso para você como funciona. Então, aqui, eu tenho essa função que está retornando um TIF vazio Ainda não está retornando nada. E se você vier aqui, não verá nenhum tipo de saída. Agora, digamos, se eu quiser verificar se um usuário está bloqueado ou não. E dependendo se o usuário está bloqueado ou não, eu quero exibir uma mensagem, certo? Então, o que eu posso fazer é ter uma variável aqui. Posso dizer que está preso, não, e posso dizer que é verdade. Está bem? Então, o usuário está bloqueado. Eu posso dizer que está trancado. OK. Então, nesse caso, o que você pode fazer é ok, isso não virá aqui. OK. Então, vou ter que adicioná-lo aqui. OK. Portanto, se o usuário estiver bloqueado, você poderá retornar. Está bem? Então, vou remover essa devolução aqui. Eu posso voltar e posso ver cada um por aqui. Está bem? Bem-vindo de volta. Algo parecido com isso. Eu não preciso desse retorno aqui. OK. Então isso é o que se torna meu retorno, ok? E se ele não estiver preso, ok, então eu posso dizer devolver, e eu posso dizer H um e eu posso dizer, por favor, faça o login. Por exemplo, e eu vou guardar isso. OK. Então aqui você pode ver, bem-vindo de volta. E se eu mudar a bandeira para falsa e se eu salvar, você verá, por favor, faça o login. Então, dependendo da condição, essa variável está controlando a condição. Dependendo dessa variável, avalie o valor que essa variável está mantendo, seja verdadeiro ou falso. Na verdade, você está renderizando mensagens diferentes na interface Está bem? E é assim que a renderização condicional funciona Você pode ver se estamos usando duas declarações de retorno, o que é absolutamente correto. Eu até pulei os colchetes redondos. OK. Então, esses colchetes redondos são ignorados Você pode adicioná-lo se quiser, mas eu só queria dar uma olhada mais limpa aqui. Está bem? Algo parecido com isso. Está absolutamente bem. OK. Vou me livrar desses colchetes redondos Então é assim que a renderização condicional funciona usando a instrução if OK. Espero que isso esteja fazendo sentido. Agora, você também pode converter tudo isso em um operador Turnary Está bem? Então, o que eu faria é simplesmente adicionar o comentário aqui. OK. Vou apenas converter isso em um comentário. E agora, vou usar o operador de toner. Está bem? Então, o que eu posso fazer é dizer const aqui Ok, eu posso dizer comida. OK. E eu posso ver cada um. OK. Agora, se sim, terei isso como uma expressão. OK. Agora, a expressão diz que se ele estiver preso, tudo bem, então eu serei bem-vindo. De volta. Ok, algo assim, ou então, eu direi Qual é a mensagem? Por favor, faça o login. Então, eu vou ter isso aqui. OK. Agora, o que eu posso fazer é retornar T, então eu posso dizer retornar aqui, e eu posso simplesmente retornar H ou eu posso simplesmente retornar o elemento aqui, algo assim. E eu posso salvar isso. OK. Opa, então isso não vai funcionar. Preciso embrulhá-lo dentro de um TIF. OK. Portanto, isso deve fornecer a saída. Ok, você pode ver, por favor, faça o login, e se eu mudar isso para verdadeiro aqui. Opa. É verdade aqui. Então, nesse caso, você verá Bem-vindo de volta. Está bem? Então, estamos usando o operador ternário, ok Vou levar isso para novas linhas para que fique visível para todos. Você pode ver como isso está sendo usado, ok? O elemento constante é igual a H, um está logado. Está bem? Então, aqui estamos fazendo uso dessa expressão que está bloqueada em Bem-vindo de volta, login e estou fechando a tag H one. E com base nisso, estamos retornando esse elemento aqui. Ok, então aqui estamos usando o operador ternário, essencialmente, para fazer renderização condicional, é o que Está bem? Então eu espero que isso esteja fazendo sentido, certo? Deixe-me dar mais um exemplo. Agora, esse exemplo é renderização condicional usando Ok, agora o que é operador? Usando e duas vezes? Ok, então você também pode usar isso, basicamente para renderizar um elemento somente quando uma condição for verdadeira. Certo? Agora, deixe-me dar um exemplo para isso também. Está bem? Então, digamos aqui, o que eu posso fazer é, logo acima, escrever mensagens constantes Então, digamos que eu esteja mantendo uma lista de mensagens, ok? Digamos que seja um aplicativo de bate-papo. Agora, se houver qualquer número de centenas de mensagens. Ok, então essas são 100 mensagens, digamos, ok? Há uma série de centenas de mensagens. Agora, se houver centenas de mensagens, gostaria de mostrar uma notificação ao usuário de que, Ei, você tem X centenas de mensagens aqui. Está bem? Como eu faria isso? Então, aqui, o que eu faria é simplesmente dizer o tamanho do ponto das mensagens. Se o comprimento dos pontos das mensagens for maior que zero. Ok, e eu vou operar aqui. Eu vou dizer H dois, algo assim. OK. E eu direi que as mensagens têm comprimento de pontos. OK. Centenas de mensagens, algo assim. Está bem? Se eu salvar isso, você verá que não há nada sendo exibido. Ok, porque o tamanho das mensagens é zero. Agora, se eu adicionar uma mensagem a ela. Ok, você pode ver que tem 100 mensagens. Se eu adicionar mais uma mensagem, ok? Qualquer mensagem, ok, estamos apenas dando uma olhada na contagem. Você pode ver que tem 200 mensagens. Está bem? Como isso está funcionando? Então, na verdade, isso está levando em consideração o comprimento da matriz e vendo se o comprimento da matriz é maior que zero. Agora, deixe-me explicar para você como essa linha está funcionando e como ela está renderizando condicionalmente a mensagem para nós, ok Então, estamos fazendo uso da lógica e aqui. E se você estiver familiarizado com JavaScript, você deve estar ciente do operador lógico. Então, quando e está sendo usado, o lado esquerdo está sendo avaliado primeiro. Então essa é a expressão no lado esquerdo. A mensagem tem um comprimento maior que zero. OK. Então, ele avalia isso e se essa expressão for verdadeira, ele avalia e retorna o lado direito Está bem? Se isso for verdade, ele avalia e retorna o lado direito E se isso for falso, o lado esquerdo é falso, ele não retorna para o lado direito e, essencialmente, causa um curto-circuito. E isso é conhecido como curto-circuito, ok? Onde ele não avalia o lado direito e, basicamente, não renderiza nada aqui Está bem? Então, sim, é assim que funciona por aqui, ok? E isso está sendo usado para fazer renderização condicional. E você verá muito esse tipo de expressão, ok? Então, se você tiver alguma condição aqui e estiver usando e, em seguida, o que quiser renderizar no lado direito. Está bem? Então é assim que esse curto-circuito está sendo aproveitado aqui para exibir mensagens condicionais E eu diria que isso é muito mais conciso do que escrever declarações FL e operadores ternários, na Está bem? Então você também pode converter essa expressão inteira, uh, em algo desse tipo, ok? Mas o operador ternário , na verdade, também é útil se você quiser receber uma mensagem de falha Ok, então você está recebendo duas mensagens. Bem-vindo de volta e, por favor, faça o login, ok? Então aqui está você recebendo apenas uma mensagem, ok? Mas aqui você tem duas mensagens que estão sendo renderizadas quando algo é verdadeiro Então, na verdade, os dois não são iguais, ok? Mas sim, se você está exibindo apenas uma coisa, tudo bem, então essa pode ser a melhor opção disponível. Tudo bem. Então, sim, isso é sobre renderização condicional Então, analisamos a renderização condicional várias maneiras O primeiro é usar FL. Em seguida, usamos o operador ternário e, em seguida, vimos com a ajuda da lógica e do operador. Tudo bem. Então, espero que você tenha conseguido acompanhar e espero que tenha sido útil. 14. JSX e funções: Então, vamos agora falar sobre J seis e funções. Agora, o JSix permite que você use funções dinamicamente para gerar e retornar elementos ou componentes, e isso pode ser útil se você quiser encapsular uma lógica dentro de uma função e reutilizá-la Deixe-me dar um exemplo disso. Então, digamos que eu tenha essa saudação aqui, que é uma saudação simples, olá, certo Digamos que eu adicione um nome a ele e esteja personalizando, para que eu possa dizer Alice Olá, Alice aqui. Ok. Agora, digamos que eu queira cumprimentar vários usuários que passaram seus nomes, para que eu possa duplicar Olá Alice, olá, Bob, digamos. Ok. Ok, isso não vai funcionar porque eu preciso de um pai, de acordo com as regras, certo? Então eu preciso mover isso. Vou cortar isso e colar aqui, algo assim. Ok. Agora, isso funcionaria. Olá Alice, Olá Bob. Agora há uma maneira melhor de lidar com isso. Está bem? O que estou fazendo é basicamente replicar a maneira como estou cumprimentando os usuários em vários blocos. Está bem? Mas essa coisa também pode ser gerada com a ajuda da função . Tudo bem O que eu posso fazer aqui é dizer função. Opa, preciso desativar as tampas. Eu posso dizer função. Posso dizer uma mensagem de boas-vindas aqui. Ok. E eu posso ter o nome como parâmetro aqui, então , e eu posso cortar isso, eu preciso disso. E aqui, eu posso dizer “volte”. Eu posso adicionar isso aqui. Em vez de Alice aqui, vou apenas dizer o nome Está bem? Então, estou gerando JSX com a ajuda dessa função Agora, como faço uso disso? Eu posso usá-lo com a ajuda da sintaxe de expressão. Eu posso dizer uma mensagem de boas-vindas, e posso passar a Alice aqui Algo parecido com isso. Ok. E eu posso salvá-lo, e você verá Hello Alice, hello boop Então, eu ainda não mudei isso para pop, ok, mas vou me livrar da saudação do Pop aqui e vou converter a saudação do Bob na saudação do Está bem? Agora, você verá Hello Alice, Hello Bob Eu posso até adicionar mais um. Olá, John. Ok. Você pode ver. Então é assim que você pode usar a função que retorna seis e esse Aix pode então ser renderizado em um componente dentro de um componente Tudo bem Então, sim, como funciona é que temos uma função de mensagem de boas-vindas aqui, função Ja Script simples que usa o nome como parâmetro e retorna uma mensagem de saudação. Esta é uma mensagem de saudação E no componente do aplicativo, você pode chamar essa função e passar o nome como argumento, passar nomes diferentes para renderizar saudações personalizadas Espero que isso esteja fazendo sentido, ok, agora você pode até mesmo fazer isso condicional Está bem? Portanto, você pode condicionalmente ou usar funções para decidir quais elementos JSX renderizar com base em Então é isso que eu quero dizer com renderização condicional. Está bem? Então, deixe-me dar um exemplo. Digamos que, dependendo da hora do dia, eu queira dar bom dia ou boa noite. Está bem? Então, o que eu posso fazer é ter uma função aqui. Eu vou dizer função. Ok. Vou dizer saudação, vou dizer que é manhã Está bem? Agora, se for de manhã, se for de manhã, tudo bem. Então, o que fazemos? Eu devolvo cada um. Por aqui, algo assim. Eu posso dizer que é bom. Opa, bom dia, algo assim Ok. E se essa condição não for satisfeita, posso devolver boa noite, algo assim. Ok. Agora, o que posso fazer aqui é usar Const agora igual a um novo oito, algo assim Posso dizer que Const está de luto aqui, e posso dizer que agora ensinado, e posso dizer que agora ensinado, Então, essa é a lógica que eu estou usando para verificar se é a lição 12 ou maior que dez aqui, o que eu estou fazendo é que eu preciso fazer é dizer dentro de uma expressão, eu posso dizer saudações, e eu posso passar luto aqui, Agora estou vendo boa noite porque é noite aqui, ok? Então, na verdade, estou me divertindo aqui, certo? Mas sim, se é uma hora matinal para você, então essa lógica vai devolver o bom dia por aqui. Ok. Então, o que está fazendo é pegar a data atual, ok, a atual, e depois obter os Rs. Ok, então se RS for menor que 12, significa que é de manhã. Se não for, significa que é noite. Então, isso será falso aqui nesse caso e, dependendo disso, se o valor booleano é verdadeiro ou falso, ou se estamos realmente renderizando a saudação aqui Então, sim, isso pode ser feito, e você pode Eu também gostaria de mostrar mais um exemplo em que você mais um exemplo em que você pode ter funções que retornam JSX e também podem ser passadas como argumento para outras funções permitindo uma lógica de interface de usuário mais complexa Então, digamos que queremos exibir uma caixa de alerta dependendo de uma condição. Ok. O que eu faria é criar mais uma função. Está bem? Eu vou dizer mostre o alerta aqui. Ok. Eu vou ter a condição aqui e vou receber uma mensagem. Agora, essa condição, opa, não é uma mensagem de boas-vindas. Será uma mensagem. Agora, essa condição que eu estou tendo como parâmetro, isso é um booleano, ok? Então, vou ter um cheque booleano para isso. Se houver condição, retorne. Ok. E eu posso retornar o alerta aqui. Está bem? Então eu posso dizer TIF e posso adicionar uma mensagem aqui, algo assim. Assim. Ok. E eu posso até mesmo estilizá-lo ou o que eu quiser fazer. Está bem? Então isso pode ser feito. Tudo bem Caso contrário, estou retornando nulo, certo? Agora, deixe-me chamar isso aqui. Então, aqui, o que você pode fazer é ter um tipo de sintaxe de expressão Você pode dizer mostrar alerta. Verdadeiro. Ok. E então você pode dizer que isso é importante, algo assim. Essa pode ser sua mensagem. Vou guardar isso e você pode ver que isso é importante. Isso é o que você está vendo aqui, certo? Agora, aqui, o que podemos fazer é dentro dessa função específica, eu posso ter outra chamada de função. Está bem? Então, aqui estamos renderizando esse alerta, estamos criando esse alerta dentro dessa função específica Está bem? Então, em vez disso, o que vou fazer é aqui que eu possa ter uma função. Ok, eu posso dizer caixa de alerta, assim Ok. E aqui eu posso ter uma mensagem. Ok. E aqui, eu posso dizer “volta” e “isso”. Ok. Agora eu também posso estilizá-lo aqui. Posso tornar o alerta um pouco complexo porque separei o código em uma função separada E aqui, posso simplesmente chamar essa caixa de alerta com uma mensagem, e isso não afetará a saída aqui ou a saída que estou recebendo. Ok. E se você vier aqui, verá que isso é importante. Então, estamos vendo a saída, ok? Isso é importante e você pode ver como isso está chegando. Temos uma função separada para gerar a caixa de alerta estilizada Você pode dizer: Ok, isso não é realmente estilo. Precisamos escrever CSS para isso, mas você entendeu o que estou explicando aqui. Está bem? Preciso adicionar ponto e vírgula aqui nas declarações de retorno . Está bem? Portanto, todas as declarações de retorno terão ponto e vírgula. Ok, eu percebi que perdi alguns. Ok. Acho que sim, isso deve ser bom por aqui. Ok. Então, sim, essa função específica está sendo chamada por essa função aqui. Então, estamos fazendo uma chamada de função dentro da chamada e retornando o Jx daqui, dependendo da condição E então essa condição está sendo renderizada aqui. Está bem? Então isso também é permitido, e é assim que funcionaria. Se eu salvar isso, você pode ver que a saída está aqui. Tudo bem Então, espero que tenha sido útil e espero que você tenha conseguido acompanhar. 15. Comentários em JSX: Então, agora é hora de começarmos a falar sobre bens comuns em JSX Portanto, este é um arquivo JSX simples de pontos de aplicativo. Está bem? Tem código JSix aqui. Então, esse é o código JSix que estou retornando, você pode ver, e o resto do arquivo tem código JavaScript. Está bem? Agora, estou vendo essa saída aqui. Está funcionando bem. Agora, se eu quiser adicionar bens comuns, ok? Agora, há dois lugares aqui ou há dois tipos de código. Um é o código JSX que está aqui e, em seguida, temos o código JavaScript que existe no resto do arquivo Portanto, no código do Ja Script, você pode usar os comentários regulares que normalmente usa. Portanto, este é um comentário de uma única linha. Isso é um comentário, e você também pode ter o comentário de várias linhas no código Jscript Assim, isso é um comentário de várias linhas, algo assim É assim que você escreve comentários em JavaScript, ok? Mas você não pode fazer isso quando se trata de JA six. Então, dentro do código J six, se você tentar fazer isso, não funcionará, certo? Agora, como você escreve um comentário aqui? Assim, você pode adicionar comentários como esse. Então, eu apenas usei o atalho Control e a barra frontal, então ele adicionou essas tags para Está bem? Então, se você quiser adicionar comentários dentro do Jasix, é assim que você faria OK. Você pode ver, isso é um comentário. OK. E você pode adicionar um comentário de uma única linha ou um comentário de várias linhas, dependendo da sua necessidade OK. Então, na verdade, este é um comentário de uma única linha. Posso até adicionar um comentário de várias linhas aqui. OK. Eu posso dizer isso. Vou ver que este é um comentário de uma única linha, e este é um comentário de várias linhas, posso dizer que anote isso aqui, algo assim Espero que isso esteja fazendo sentido sobre como os comentários funcionam no arquivo GSX e espero que seja útil 16. PROJETO: criando um site de portfólio usando o React: Então, agora é hora de fazermos um projeto usando tudo o que aprendemos até agora e reagirmos. E o que vamos construir? Vamos criar uma página web de portfólio simples. Tudo bem. Então você pode ver esse portfólio aqui. Isso é o que vamos construir. Então você pode ver o nome, o slogan. Você tem seções como sobre projetos em contato. Esta é a seção A, você pode clicar aqui e ir para Sobre também. OK. E aqui você tem projetos. Assim, você pode clicar em projetos e em Bons projetos. Você tem esse Projeto um, a descrição do projeto e o link para o projeto, Projeto dois, o Projeto três e assim por diante. E então você tem a opção de entrar em contato aqui, e depois com o FUTA, ok? Bem simples. Está bem? É um aplicativo de página única, aplicativo web de página única, devo dizer, em que estamos fazendo uso do react J. Então é exatamente isso que vamos construir Vamos manter as coisas bem simples, e o objetivo é aprender e reunir tudo o que aprendemos até agora na criação desse aplicativo para que possamos praticar. Então, vamos começar. Então, estou aqui no Visual Studio Code e tenho o app dot JS aberto, ok? E está simplesmente imprimindo uma mensagem muito simples chamada olá. Tudo bem. Agora, o que eu vou fazer é que nós vamos vir até aqui. E dentro do aplicativo de funções, ok, vamos criar algumas variáveis. OK. Agora, essas são as variáveis que nos ajudarão a exibir todas as informações que queremos mostrar no aplicativo de página única que estamos criando, ok? A primeira variável que teremos é, obviamente, nome. Ok, você pode ter o nome de sua escolha aqui. Vou usar esse nome fictício chamado John Doe. Você pode ter uma profissão aqui. OK. E você pode dizer desenvolvedor full stack. Algo parecido com isso. OK. Você pode ter projetos aqui, algo assim. E aqui, teremos que isso será em uma espécie de formato JCN Ok, eu posso dizer título. Opa, Title Colin e eu faremos o Projeto Um. Você pode adicionar qualquer tipo de detalhe do projeto aqui, ok? Descrição aqui, algo assim, e você pode ver o aplicativo web. Construído usando React e Node Chase, algo assim. Qualquer tipo de descrição que você possa ter. OK. Eu também vou ter um título. Desculpe, não é título. Deve haver um link aqui. O link, vou mantê-lo como hash. OK. Não há necessidade de adicionar um link agora, ok? Isso é o que eu acho porque não é um projeto real, certo? Então, adicione uma vírgula, e é por isso que estamos recebendo o erro. Eu acho que isso está feito, ok? Você pode duplicar isso para mais um projeto, vírgula Aada, mais um projeto, Projeto dois OK. E você pode dizer que é uma plataforma de comércio eletrônico. Opa, então eu errei. Tudo bem. Portanto, é uma plataforma de comércio eletrônico. Podemos dizer que é uma plataforma de comércio eletrônico. Construído usando o Gingo. Você pode dizer algo assim. Está bem? Eu só vou ter dois projetos por enquanto, ok. E agora podemos vir aqui. Está bem? Então, isso é um olá de volta. OK. Eu não preciso voltar olá por aqui. OK. Então, o que podemos fazer é mover isso. OK. Em primeiro lugar, para essa guia específica, terei o nome da classe como aplicativo. E estou fazendo isso porque, mais tarde, eu também gostaria de estilizá-lo. Está bem? Agora, aqui eu tenho um cabeçalho. OK. Então, este é um cabeçalho HTML que estou adicionando. Ok, deixe-me acrescentar. Último nome. OK. E isso é chamado de cabeçalho, algo assim aqui. OK. Agora, esse cabeçalho está dentro do cabeçalho. Eu vou ter algumas coisas por aqui. Eu vou ter cada um, e isso seria nome, isso renderizaria nome aqui. Eu vou ter uma etiqueta P. Isso renderia profissão, algo assim. E então eu posso ter o par E NAF aqui. Eu vou ter a NAF aqui. Eu posso dizer, opa, eu posso dizer a tag E aqui, e isso pode ser sobre e isso pode apontar para HF e isso pode apontar para hash, sobre para HF e isso pode apontar para hash 17. Introdução aos componentes e criação do seu primeiro componente: Oi, aí. Bem-vindo. E agora é hora de começarmos a falar sobre o que são componentes e como eles funcionam no React. Então, aqui, estou no site oficial do react, que é react dot TEF, e vou analisar esse site, entender e conhecer esse conceito de componentes, certo? Agora observe este site, ok? Você pode observar qualquer site, mas eu usei esse exemplo porque estamos aprendendo a reagir, e esse é o oficial. Se você ver no topo, há uma barra superior aqui, ok? Você pode chamá-lo de cabeçalho ou barra de navegação superior ou o que quiser Agora, dentro disso, há um logotipo no lado esquerdo, a versão, ok? Você pode ver a barra de pesquisa, os itens de navegação, como referência de aprendizado , blog da comunidade e mais algumas opções aqui. Está bem? Você pode navegar pelo site, certo? Agora, se você alterar a página aqui, referenciar, comunidade, aprender, você pode ver essa barra superior permanece como está. Isso não muda, certo? É estático em todas as páginas. E o mesmo vale para o rodapé. Por aqui. Está bem? Então, o que eu quis dizer aqui é sempre que você estiver criando qualquer tipo de aplicativo web ou qualquer tipo de software, haverá alguns componentes ou algumas coisas em seu aplicativo que seriam iguais e podem ser reutilizados, certo? Agora, no desenvolvimento web tradicional, o que costumava acontecer é se você estiver construindo esse tipo de site, você criará esta página aqui. Você terá esse código escrito na parte superior para renderizar essa interface do usuário. Ao criar a página para aprender aqui, nesta página, você replicará novamente esse código que cria essa coisa específica na parte superior Está bem? Se você estiver criando uma página de referência, você a criará novamente na parte superior. Então isso costumava acontecer no desenvolvimento web tradicional, ok? E como você pode imaginar, houve muita repetição, certo? Agora, se você tiver que fazer algum tipo de alteração na barra de navegação superior amanhã , quero adicionar mais uma opção aqui Então eu tenho que lembrar de fazer alterações em todos os arquivos, onde quer que eu tenha essa barra superior sendo usada, certo? E isso era entediante, não era fácil e não era uma boa prática, certo Agora, com o conceito de reutilização. Está bem? Portanto, existe um conceito de reutilização, que significa que você cria coisas uma vez e reutiliza várias vezes ao longo do ciclo de vida do aplicativo Então, o que significa reutilização é que você criou essa barra na parte superior, um rodapé na parte inferior e pode simplesmente reutilizá-la em Está bem? Isso é o que significa reutilização, certo E isso é possível com a ajuda de componentes no react. OK. Então, o que é um componente de reação. Então, se você for aprender a reagir aqui, ok? Então, na verdade, eu o abri aqui. Ok, então você pode ver aqui. Um componente é uma parte da interface do usuário que tem sua própria lógica e aparência. Está bem? Ele pode ser tão pequeno quanto um botão ou tão grande quanto uma página inteira. Está bem? Então, deixe-me colocar desta forma. Os componentes do React são o alicerce de qualquer aplicativo de reação. Está bem? O que é, é uma peça reutilizável de interface de usuário ou interface que pode ser definida pelo desenvolvedor e permite que você a use reutilize em vários locais em Então, por exemplo, eu te dei o exemplo dessa barra no topo, ok? Você o cria uma vez e o reutiliza em todo o aplicativo, ok? E é independente. Ele tem seu próprio trecho de código. OK. Amanhã, se você quiser fazer qualquer tipo de alteração, basta fazer a alteração em um arquivo, e ela será refletida em todos os lugares. Esse é um benefício dos componentes. Está bem? Agora, você pode ver que é assim que você pode criar componentes, certo? Agora, antes de falar sobre esse trecho de código, deixe-me dizer mais uma coisa. Os componentes no react podem ser criados de duas maneiras. Uma delas é fazer uso de funções, como você pode ver aqui na minha tela. Outra forma é fazer uso das aulas. Agora, classes, se você explorar qualquer tipo de código mais recente no react, não verá muito uso de classes por lá. Então, funções são o que está sendo usado em todos os lugares. Então é isso que vamos manter. E os componentes criados usando funções são conhecidos como componentes funcionais, certo? Então você pode ver esse trecho de código aqui. É uma função de script Ja. Você pode ver que os componentes de reação são funções de script Ja que retornam uma marcação. Certo. Então aqui você pode ver que isso é uma função, uma função de script Ja, que está retornando JSX, a marcação E esse é um exemplo muito simples de um componente que é apenas um botão. Está bem? Então você pode ver como ele está retornando esse botão, e você pode usar esse botão em seu aplicativo, ok, onde você quiser usá-lo. OK. Então, aqui você pode ver que ele está usando isso no meu aplicativo aqui e está renderizando o botão aqui Está bem? Agora, uma coisa que você precisa observar aqui, então diz que começa com uma letra maiúscula. Está bem? Portanto, os nomes dos componentes do react devem sempre começar com uma letra maiúscula, enquanto tags HTML devem estar em minúsculas Está bem? Então você pode ver aqui. OK. Isso está começando com a letra maiúscula, certo? Então é assim que os componentes são criados. Agora, aqui, você também tem um editor para testar. Ok, você pode ver que este é o botão que foi criado. Claro, tudo isso está no mesmo aplicativo de arquivo dot js. Você pode criar vários arquivos. Então, por exemplo, você pode criar button ou mybutton Js aqui separadamente, e você pode ter myapp dot js onde você está usando o Está bem? Isso também pode ser feito. Mas aqui, o exemplo está demonstrando isso em um único arquivo aqui Está bem? Então, aqui, se você ver meu botão, ok? E eu posso reutilizar o botão aqui. Então, se eu quiser, posso usá-lo umas dez vezes ou quantas vezes eu quiser. Você pode e se eu quiser fazer uma alteração no texto aqui, eu tenho que fazer uma alteração em um lugar, e eu sou um botão dizendo olá. Desculpe. Cante olá. Você pode ver. Eu me refleti em todos os usos. Você pode ver que eu o estava usando em vários lugares, certo? Assim, você pode ver que isso está sendo refletido em todos os lugares. Portanto, esse é um benefício dos componentes. Agora imagine que, se você não estiver usando um componente, você está realmente pegando esse botão de código e renderizando-o dessa forma dez vezes Amanhã se você quiser fazer uma alteração na cópia aqui ou amanhã se quiser atualizar qualquer tipo de texto ou qualquer tipo de estilo, você tem que fazer isso em todos os lugares, certo? E isso não é bom porque, você sabe, introduz a possibilidade de erros no aplicativo porque somos humanos, certo? Nós, desenvolvedores, somos humanos. Você pode sentir falta de fazer uma mudança em uma jogada específica, certo? E isso introduziria qualquer tipo de erro no aplicativo. Então isso não é recomendado, mas essa forma de componentes é recomendada, certo? E você pode usá-lo em seu aplicativo, certo? Então, o que eu faria é já que agora temos alguma clareza sobre quais são os componentes de reação, ok, mudaríamos para nosso aplicativo. Eu tenho esse aplicativo de reação criado, ok, com o aplicativo muito simples dot Jx Agora, aqui no ApdT Jasix aqui você vê, eu tenho uma saudação muito simples, muito simples que estou retornando aqui E isso é na verdade um componente, ok? Então, se você ver aqui em main.j6, verdade estou renderizando o aplicativo aqui no E eu estou importando o aplicativo do app dot Jx, e o aplicativo está sendo exportado aqui, você pode ver, você pode ver Então, sim, esse também é um exemplo de componentes. Está bem? Estamos vendo o ponto e vírgula de exportação do Oops IMS aqui Vou apenas adicioná-lo. OK. Mas você pode ver como isso está funcionando. Você também pode adicionar componentes aqui no próprio arquivo. Está bem? Então, o que eu posso fazer é pegar esse trecho de código. Eu posso criar um botão. OK. Então, o que eu vou fazer é vir até aqui. OK. Vou adicionar um botão dessa forma. Está bem? Sou um botão dizendo olá e posso realmente adicionar um botão. Está bem? Mas antes de fazer isso, deixe-me mostrar como é a saída atual. Portanto, a saída atual diz olá porque não há nenhum botão envolvido no momento. Ainda não vi o arquivo. Está bem? Agora eu criei um botão. Eu disse função, meu botão. Eu sou um botão e estou dizendo olá aqui. OK. Agora eu posso vir aqui e dizer meu botão, algo assim, e eu vou fechá-lo e você pode ver um botão entrando aqui, certo? E eu posso simplesmente replicar isso do jeito que eu quiser, ok? Assim, posso adicionar quantos botões eu quiser. Você pode ver que muitos botões estão sendo adicionados, certo? Esses são todos botões. Amanhã, se eu tiver que fazer uma mudança na interface do usuário, como eu disse, tenho que fazer isso em um só lugar, certo? E tudo isso está vindo em um único arquivo, certo? Talvez eu queira modularizar o código. Portanto, não é uma boa prática ter vários componentes em um único arquivo. Então, o que eu deveria fazer é criar um novo arquivo aqui. Em SRC, vou dizer meu botão. Ensinou JAX aqui. OK. E eu vou cortar esse código, e vou movê-lo para cá. Está bem? Algo parecido com isso. E aqui, eu vou dizer exportar ou padrão, e vou dizer myPton aqui, algo assim E aqui, eu vou apenas importar isso. Então, no momento em que pressiono Controle e espaço aqui, ok, essa linha é importada. Você pode até digitar essa linha na parte superior. Está bem? Na verdade, você está importando meu botão desse arquivo aqui, ok? Se você mantiver o controle e passar o mouse sobre isso, verá que isso é convertido em um link e você pode acessar esse arquivo se quiser Tudo bem? E se você salvar isso, a saída não mudará, mas o código agora está muito mais modularizado. Está bem? Então você tem um componente que você criou e o está usando em seu aplicativo. Tudo bem? Espero que isso esteja fazendo sentido. E espero que isso seja útil. Espero que você esteja entendendo a importância de como os componentes são importantes. Então, esse é um exemplo muito simples que eu demonstrei. Mas imagine que você está criando um aplicativo complexo em que gerencia vários perfis de usuário, certo? Agora, pode haver vários tipos de usuários e talvez você queira exibir as informações do perfil em locais diferentes no aplicativo. Então você pode ter um componente, certo? Você pode ter um componente de imagem de perfil para exibir a imagem de perfil de uma determinada maneira. E você pode reutilizá-lo várias vezes em vários lugares Por exemplo, se você quiser exibir a imagem do perfil na tela inicial, certo? Então você pode usar esse componente. Ok, se você quiser exibi-lo na página Editar perfil, você pode exibir o uso desse componente, certo? Portanto, isso é válido se você tiver algum tipo de requisito personalizado. Então, por exemplo, normalmente as fotos do perfil são exibidas em um círculo, certo? Sempre que você acessa qualquer aplicativo, as fotos do perfil são exibidas em um círculo, certo? Portanto, talvez você queira ter uma visão circular na qual exiba a foto do perfil do usuário Assim, você pode criar um componente para isso e reutilizá-lo em todo o aplicativo sempre que quiser exibir a imagem. Certo? E se houver alguma alteração na interface do usuário amanhã para exibir a foto do perfil, você faz uma alteração nesse arquivo e ela é refletida. É tão bom e muito útil, certo? Então, espero que você tenha uma boa compreensão de como os componentes são importantes e os alicerces da aplicação react, e espero que isso tenha sido útil. 18. Indo com as mãos: Então é hora de colocarmos as mãos na massa e praticarmos um pouco com os componentes, certo? E aqui, o que eu tenho é um aplicativo react, que está renderizando um portfólio de um desenvolvedor, então você pode ver esse aplicativo aqui Está bem? É um aplicativo muito simples. Mas o problema com esse aplicativo é que tudo está chegando ou sendo renderizado a partir de um único arquivo Então, se eu tiver que te dar uma lista aqui, ok? Uh, deixe-me rolar para cima. Então, ok, esse é o app dot JSX, que está sendo renderizado pelo ponto principal JSX E dentro do app.j6, você está usando esse arquivo CSS e tem esse aplicativo de funções que está sendo usado E dentro disso, você tem essas variáveis. Ok, primeiro, temos essas variáveis. E então o que estamos fazendo é retornar esse JSix que está fazendo uso dessas variáveis, como os dados armazenados nas variáveis, e renderizando os O que vamos fazer é modularizar isso e introduzir alguns componentes aqui Então, isso nos dará um pouco de prática com componentes. Então, em primeiro lugar, vamos modificar o cabeçalho aqui. Então, o que eu vou fazer é vir aqui no SRC. Vou adicionar o ponto de cabeçalho Jx. Ok. Ok. Primeiro, criarei todos os arquivos. Então, o cabeçalho JSix é o que eu vou precisar. Vou precisar de cerca de seis. Ok. Eu também vou precisar que você possa dizer, lista de projetos que eu tenho seis aqui. Também vou precisar entrar em contato com Jix aqui, e vou precisar de um rodapé no final, que é Puta tout, J Ok. Agora, para organizar isso melhor, posso introduzir uma pasta aqui e posso dizer componentes aqui, e posso mover todos os arquivos recém-criados que acabei de criar para essa pasta específica. Está bem? Portanto, isso parece um pouco limpo, inclusive sobre a lista de projetos do cabeçalho de contato. Eu mudei tudo. Tudo bem Agora, o que vamos fazer é vir aqui no app dot JSX e, primeiro, trabalharemos no cabeçalho dot Então, vou pegar essa seção de cabeçalho aqui, ok, toda essa seção de cabeçalho aqui. Certo? E eu vou mover isso para o componente. Está bem? Então, o que eu vou fazer está aqui no cabeçalho. O que precisamos fazer é criar a primeira coisa. Eu preciso ter uma função. Declaração de função, vou dizer cabeçalho. E aqui nos parâmetros, eu não preciso de nada. Ok. E eu vou voltar. Tudo bem? Precisamos devolver o JSX Ok. Então, vou devolver essa parte aqui. Vou colar isso. Tudo bem Agora, faltam nome e profissão por aqui. Então, o que eu preciso fazer é rolar para cima, cortar ou colocar essas duas coisas aqui, e adicionar nome e profissão aqui, algo assim. Está bem? Então isso está feito, ok? E, sim, é isso. Preciso adicionar uma declaração de exportação aqui. Posso dizer exportação padrão e vou exportar cabeça. Ok, algo parecido com isso. E é isso. Agora, aqui neste arquivo em particular, vou rolar para baixo e aqui no lugar da seção de cabeçalho, posso dizer cabeçalho. Você pode ver esse componente e eu posso pressionar Enter. No momento em que faço isso, preciso ter certeza de fechar a etiqueta também aqui. No momento em que adicionei ou selecionei isso na sugestão de pedido, você pode ver essa declaração de importação sendo adicionada na parte superior, que significa que estamos importando o componente aqui E tudo bem, há algum problema. O aplicativo não está funcionando conforme o esperado. Deixe-me ver qual é o problema aqui. Então, vou verificar o erro aqui no console. Está bem? O erro diz que a profissão não está definida no App JA 626 Ok, eu entendi o erro, a propósito. Então mudamos a profissão para o cabeçalho, ok? E é necessário no aplicativo dot JSX, devo dizer que está aqui Você pode ver a profissão e também, eu diria que o nome é necessário. Ok. Então, vou manter as variáveis aqui. No final, excluiremos essas variáveis para evitar problemas. Tudo bem E agora, se você vier aqui, verá que o cabeçalho está funcionando perfeitamente, ok. Sem problemas. Então, isso está absolutamente sendo renderizado a partir daqui. Você pode ver a seção do cabeçalho. Está bem? Vou remover esse comentário agora. Ok. E sim, ou vamos continuar com o comentário. Vamos removê-lo no final. Está bem? Agora, vamos fazer o mesmo com o A. Ok? Agora vou cortar essa seção sobre aqui. Ok. E para A, já criamos um arquivo chamado at JSX aqui Está bem? Então, o que vou fazer é adicionar uma função, sem parâmetros, e vou dizer return, o e colar esse Jx, algo assim Ok, então isso está feito. Ok. E vou pressionar a tecla tab para isso. Tudo bem Então, isso é sobre, e eu preciso adicionar exportação aqui, exportação padrão, A aqui, algo assim. Tudo bem Vou guardar isso e se você vier aqui, preciso importar cerca de. Tudo bem Isso está feito, e se você vier aqui, ok, vemos novamente um problema. O problema é que nome e profissão não existem. Então, eu preciso dessas duas chaves também. Então, vou pegar os esquis, desculpe, não pegue essas variáveis aqui e vou vencê-las aqui Ok. Vou salvar isso e você deverá ver a saída. Você pode ver. A também está sendo convertido em um componente. Está bem? Se você vier até aqui, role para baixo. A está pronto. Temos projetos. Então, vou pegar a seção do projeto assim. Eu vou até aqui. Vou adicionar uma função, algo assim, projetos ou lista de projetos. Algo parecido com isso. Sem parâmetros, LO, e vou pegar a lista de projetos também que estamos definindo aqui, esta lista. Está bem? Então, vou adicionar essa lista aqui. Opa. Então, há um problema. Isso deve fazer parte da declaração de devolução, certo? Portanto, ele deve ser devolvido. Então, vou cortar isso. Algo assim. Está bem? Então isso está feito. Ok, estamos devolvendo este GA six, e temos esses projetos para levá-lo ao topo. Tudo bem? Isso está fazendo sentido, e eu vou exportar como padrão, e vou dizer que falta a lista de projetos. Algo parecido com isso. Ok. E aqui no app.j6, eu vou vir aqui Seção de projetos, direi lista , tag de fechamento automático, e veremos a lista se ela está sendo renderizada da maneira certa, certo? Também faremos o mesmo com o contato. Está bem? É praticamente a mesma coisa de mover isso. Está bem? Então entre em contato, eu virei aqui. Eu vou dizer função, contato. Vou me livrar disso, e depois direi voltar aqui. Assim. E então eu terminei, ok? E eu vou dizer exportação padrão, e eu vou dizer contato. Opa. Então, vou dizer que entre em contato aqui. Assim. Ok. E você precisa fazer uso do contato aqui. Está bem? Então eu vou dizer contato. E sim, Footer também fará o mesmo. Vou cortar isso. Vamos para footer.j6 e eu direi function, Futter Okay. E então eu direi para voltar aqui. Assim. E eu vou ter o Puta t, e vou adicionar a tag **** Ok. Ok, então você não está vendo **** como uma importação aqui porque você não exportou. Está bem? Então, eu preciso dizer exportar Puta padrão. Ok. E depois aqui, Puta Você deveria ver Puta entrando aqui. Ok. E bronzeado, bronzeado, certo? Agora, se você vier aqui, tudo deve funcionar, certeza, ok? Você pode ver. Tudo bem, faremos uma pequena limpeza aqui neste arquivo específico, então não precisamos dessas variáveis. Vou me livrar deles. Ok. E eu vou me livrar dos comentários, ok. Então, algo assim. Tudo bem E sim, estamos bem. Vou apenas alinhar isso um pouco. Estamos bem agora. Você pode ver. Então, este é o nosso componente de aplicativo agora, ok, que tem vários outros componentes como a lista de projetos headbo, entre em contato com FUTA E esses são todos componentes individuais agora, ok, que estão sendo renderizados ou que estão sendo criados separadamente. Tudo bem? Esses são todos componentes individuais, e qual é a lição aqui, ok? Então, amanhã, se você quiser adicionar vários componentes em um único projeto, isso é absolutamente possível. Não é como se você pudesse ter um único componente em um projeto de reação ou algo parecido. Essa regra não existe. Você pode ter quantos componentes quiser, ok? E você pode usá-lo dessa maneira. Agora, amanhã, se eu quiser alterar a ordem por aqui, se eu quiser passar para baixo lista de projetos, posso fazer isso facilmente. Você pode ver que isso mudou. Eu posso fazer controles e trazê-los volta ao estado original, certo? Então isso é possível, certo? Além disso, uma coisa que você lembra é que o aplicativo aqui é um componente em si. E dentro desse componente, estamos inserindo outros componentes. Você pode ver que o aplicativo é um componente em si mesmo e, dentro desse componente, estamos inserindo outros componentes, como cabeçalho, arco, lista de projetos, contato, oleiro Então isso é possível, certo? Um aplicativo em si é um componente, ele está sendo renderizado aqui Então, se você for para o ponto principal Jx, ele está sendo renderizado aqui no elemento raiz aqui, certo? Portanto, elemento raiz no main.j6, o que está sendo renderizado como app dot JSX, componente do aplicativo E o componente do aplicativo está renderizando esses muitos componentes sozinho, certo? Portanto, o componente também pode renderizar outros componentes, o que é perfeitamente válido e há nenhum problema nisso, certo? Então você pode imaginar como os componentes são modulares. Então, eles permitem que você inclua modularidade em seu código. Eles permitem que você divida todo o aplicativo em pequenas partes gerenciáveis Então, amanhã, se eu quiser fazer uma alteração no cabeçalho, ok? Cabeçalho em todo o aplicativo. Eu tenho que apenas fazer alterações neste único arquivo. Ok, se eu tiver que fazer alterações no FUTA em todo o aplicativo da web, tenho que fazer alterações aqui É isso, certo? Portanto, é reutilização. Depois que o componente for criado, você poderá reutilizá-lo várias vezes. Você pode reutilizar o FUTA várias vezes em qualquer lugar que quiser, capacidade de manutenção, é claro, devido à reutilização e modularidade, permite que você mantenha esses componentes individualmente separadamente A capacidade de manutenção, é claro, devido à reutilização e modularidade, permite que você mantenha esses componentes individualmente separadamente. Além disso, há uma separação de preocupações, é o que eu diria, porque os componentes ajudam você a organizar o código separando coisas diferentes em seus próprios arquivos individuais, certo? Então, é um indivíduo, é um bloco independente, é o que eu diria, certo? Portanto, há uma separação de interesses em que você tem sua própria função O componente tem sua própria função, seu próprio JSX, sua própria interface em seu próprio arquivo, certo? Portanto, é independente, certo? Então, sim, isso é sobre componentes no react. E mais uma coisa que eu gostaria de mencionar se você quiser usar ou reutilizar o componente, você tem que adicionar essa exportação na parte inferior sempre que estiver criando essa função dessa forma, certo? E que depois de adicionar a exportação, só então você poderá inseri-la dessa forma no arquivo onde quiser usá-la, certo? Então, não escrevemos essa entrada porque, se eu remover isso, digamos. Puta. Se eu salvar isso, obterei um erro, é claro. Isso não vai funcionar. E se você ver o console, ele gerará um erro. Você pode ver. Potter não está definido Agora, para trazer o Putter, você pode digitar toda essa linha de entrada, ou o que eu sugiro é pressionar Control e espaço Controle e espaço no Windows, comando e espaço no Mac, você pode ver essa sugestão, com essa importação aqui. Você pode ver que vou selecionar isso. E no momento em que eu seleciono isso, a entrada é adicionada automaticamente na parte superior. Não há problemas como tais. Se eu salvar isso, o aplicativo começa a funcionar novamente, você pode ver, está funcionando novamente, certo? Então, sim, espero que tenha sido muito bom e espero que você tenha uma boa clareza sobre como criar vários componentes e organizá-los em um único aplicativo. E espero que isso tenha lhe dado algumas dicas sobre a importância dos componentes ao trabalhar com o react. 19. Acessórios - Uma introdução: Bem-vindo, e é hora de falarmos sobre adereços no react. Agora, para demonstrar o mesmo, eu tenho esse aplicativo muito simples. Então, aqui, se você ver, eu tenho esse ponto principal Qx, que está renderizando esse aplicativo no elemento raiz E este é o aplicativo aqui, que está apenas renderizando olá aqui Então você pode ver Hello como a saída aqui, certo? Agora, deixe-me criar um cenário. Digamos que você esteja criando ou mostrando perfis de usuário, certo? Então, você está criando um aplicativo no qual deseja mostrar perfis de usuário para diferentes conjuntos de usuários, certo? Agora, o que eu faria seria criar outro componente. Está bem? Eu chamaria isso de cartão de perfil aqui, ou pontuaria Jx aqui OK. E dentro disso, eu vou ter uma função. Eu vou dizer cartão de perfil. Opa. Então, vou dizer cartão de arquivo aqui. Vou me livrar dos parâmetros. E aqui, vou devolver um pouco de GSX. Está bem? Portanto, precisamos retornar à interface. Agora, qual é a interface que você está retornando? Vou manter as coisas bem simples, certo? Vou tomar um TIF. Eu vou ter H dois. Vou dizer o nome aqui. Mostraremos o nome e os Is. Ou vamos ficar com o nome aqui. Está bem? Vamos nos limitar ao nome agora. E, claro, adicionarei exportação aqui, padrão, e direi cartão de perfil, algo assim. Está bem? Agora, preciso usar o cartão de perfil aqui. O que eu preciso fazer é dizer cartão de perfil, algo assim, e eu vou importá-lo. Está bem? Assim, você pode ver a declaração de entrada diretamente na parte superior. Vou simplesmente derrubar isso para que tenhamos mais espaço. E agora, se você acessar o aplicativo aqui, poderá ver o nome sendo exibido aqui, o que significa que nosso componente está sendo renderizado com sucesso Está bem? Agora, vamos vir aqui. Preciso mostrar o nome de usuário aqui, certo? Então, o que eu posso fazer aqui é dizer constante. Vou criar uma variável. Vou dizer o nome, e vou chamá-lo de Alice Está bem? Então, este é um script Java que estou escrevendo, e vou usar esse JavaScript no JSX dessa forma, e vou dizer OK Agora você vai dizer que vai ver o nome Alice aqui, ok? Então, por uma questão de conveniência, vou mudar isso para H três, algo assim. Está bem? Então você pode ver, o nome é Alice aqui. Está bem? Então tudo bem, então isso está funcionando bem. Agora, digamos que nosso aplicativo se expanda e seja um aplicativo multiusuário Agora, talvez você queira usar esse cartão de perfil para exibir informações de vários usuários, certo? No momento, o que estamos fazendo é exibir ALS codificado aqui. Eu não quero fazer isso. Quero mantê-lo o mais dinâmico possível, e haverá cenários que poderemos obter dados do back-end, poderemos obter dados da entrada do usuário. Podemos obter dados de qualquer lugar, certo? Então, eu deveria ser capaz de ter algum tipo de dinamicidade nesse componente específico, que me permite renderizar esse nome com base no que é passado ou no que está disponível, certo? Então, como podemos fazer isso acontecer? Então é aqui que o conceito de adereços entra em cena, certo? Então, adereços em reação, o que são? Eles são usados para passar dados de um componente para outro. Então imagine isso. O que quero dizer com isso é esse componente, esse é outro componente, certo? Você quer usar o cartão de perfil neste componente aqui, certo? Agora, onde quer que você esteja usando, você teria algum tipo de dado, certo? Por exemplo, eu poderia fazer uma chamada de EPI aqui, digamos, chamada de API aqui, e eu poderia buscar o nome de usuário desse servidor, certo Eu busco buscando o nome de usuário, certo? Agora, na verdade, não estou fazendo isso, mas digamos que eu tenha uma chamada de API em que estou buscando o nome do usuário no servidor usando JavaScript, certo E talvez eu queira usar esse nome e talvez queira exibi-lo com um cartão de perfil, certo? O cartão de perfil é um componente que eu quero usar. Então, como posso passar esse nome que tenho aqui? E exiba-o com cartão de perfil. Não há como fazer isso, certo? Mas com a ajuda de adereços, você pode fazer isso. Então você precisa fazer uso de adereços para habilitar essa funcionalidade, certo? Então, o que está acontecendo aqui é entender que esse aplicativo aqui é um componente principal, que está renderizando esse cartão de perfil infantil Por que o cartão de perfil é infantil? Porque está sendo renderizado no aplicativo. E, portanto, o aplicativo é o componente pai e esse é o componente filho, certo? Portanto, adereços no react são usados para passar dados de um componente para outro, especificamente de um componente pai para um componente filho E com a ajuda de adereços, os adereços ajudam a tornar os componentes mais flexíveis e reutilizáveis No momento, codificamos Alice por aqui. Então, é claro, você só pode usar isso para exibir as informações de Alice Está bem? Mas se eu remover essa coisa codificada aqui e torná-la dinâmica, algo dinâmico aqui , isso me permitiria usar esse cartão de perfil para exibir qualquer tipo de informação do usuário, certo? Deixe-me demonstrar isso. Então eu vou me livrar disso aqui, ok? E vou adicionar um parâmetro aqui. Vou dizer adereços, algo assim, ok? E aqui, vou dizer adereços. Nome do ponto, certo? Agora, de onde vêm esses adereços? Então, no momento, ele não exibirá nada, ok, porque não estamos passando nada. Então, aqui, eu preciso passar. Então eu preciso dizer que o nome é igual a, e eu posso dizer, vamos lá. Ok, então eu posso ver a Alice. Você pode ver Alice, certo? Agora, se eu duplicar este cartão, deixe-me duplicar este cartão aqui. Eu posso ver Joan OK. Você pode ver John sendo renderizado. Então é disso que eu estava falando. Essa é a dinamicidade que os adereços adicionam. OK. Sem isso, se você tiver codificado Alice Ok, imagine isso. Você codificou Alice aqui OK. Então isso não vai funcionar. Está bem? Então, eu não estou programando no momento. Não estou revertendo meu código, ok? Mas se você codificar Alice aqui, você pode imaginar, como se eu duplicasse esse cartão de perfil, eu veria Alice em todos os lugares, eu veria Alice Porque é codificado. Mas agora o que está acontecendo é que estou passando dinamicamente esse elemento aqui ou devo dizer essa propriedade aqui, e isso está sendo usado para exibir as informações Tudo bem. Então, sim, isso é o que são adereços Então, adereços é uma forma abreviada de propriedades, ok? E eles são uma forma de passar dados de um componente para outro no react, ok? E eles são usados para tornar os componentes mais reutilizáveis, passando valores diferentes como entrada para o componente, certo Então, em vez de codificar o nome e todo o outro tipo de informação dentro do componente, você pode passá-los como adereços, ok Mais uma pergunta que eu gostaria de abordar que você pode estar pensando: ok, eu disse, terei as informações do usuário disponíveis neste componente, certo? Porque estou fazendo uma ligação para a EPA, ou posso fazer uma ligação para o banco de dados aqui, certo? Agora, a pergunta que você pode fazer é: em vez de usar adereços, se eu mover a chamada da EPA daqui para aqui? Certo? Essa é uma pergunta muito boa. Mas vou te dizer uma coisa, se você está fazendo isso, você não precisa usar adereços, certo, porque você tem as informações do usuário aqui, você pode buscá-las e exibi-las aqui OK. Mas deixe-me dizer aqui, se você está codificando a chamada de API , o que você está fazendo é definir como esse componente específico está buscando dados Está bem? Talvez você não queira fazer isso porque, dependendo do cenário, você pode buscar as informações em lugares diferentes Então, por exemplo, se aqui você está exibindo as informações do perfil, você está buscando os dados do servidor, digamos Se você estiver usando esse cartão de perfil em algum outro arquivo e quiser exibir as informações do banco de dados. Então, em vez de uma chamada de API, você pode ter uma chamada de banco de dados aqui ou algum tipo de outra chamada aqui. Está bem? Portanto, a busca de dados está completamente dissociada aqui do componente Se você começar a codificar a coleta de dados no componente, ela será restrita ela será Então, aqui compramos o componente de dados como a parte de busca. Está bem? busca de dados está fora do componente, e estamos apenas passando os dados que recuperamos para o Portanto, o componente se concentra apenas em renderizar as informações Espero que isso seja útil e espero que você consiga ter uma ideia disso. Agora, algumas coisas que você precisa ter em mente sobre os adereços é o fluxo dos adereços Portanto, os adereços são passados de um componente pai para um componente filho Eu já discuti o que é o componente principal. O componente principal, no nosso caso, é o aplicativo aqui. Portanto, nesse caso, ele será passado de pai para filho, que significa aplicativo para perfil porque o cartão de perfil está sendo renderizado dentro do aplicativo Então, o cartão de perfil é um componente infantil, certo? Então é assim que o fluxo funcionaria. Então esse é o fluxo de adereços de pai para filho. Outro ponto sobre o qual quero falar é a imutabilidade. Está bem? Portanto, os adereços são apenas para leitura Isso é algo que você precisa se lembrar. Os adereços são somente para leitura, ou seja, componentes secundários. Portanto, quaisquer que sejam os adereços que você esteja transmitindo, os componentes secundários não podem modificar os adereços que recebem Em vez disso, o pai controla os dados e os transmite conforme necessário. Tudo bem? Então, se você tentar modificar adereços aqui, digamos Então, se eu tentar dizer adereços esse nome aqui é igual a test, por exemplo, se eu tentar salvar isso, a saída desaparecerá E se você for até o console aqui, se você rolar para cima, você pode ver, não é possível atribuir a propriedade somente de leitura e você está tentando modificar isso. Isso é o que está tentando dizer. Está bem? Se você se livrar dessa linha, o erro desaparecerá. Se eu salvar isso, você verá a saída está lá e o erro desapareceu. Você pode ver, certo? Então, sim, adereços são imutáveis. Eles são somente para leitura. Eles não podem ser modificados por componentes secundários e dependem do componente pai para passar os dados para eles, certo? Então, espero que isso seja útil e espero que você tenha conseguido acompanhar. 20. Vários adereços?: Então, eu tenho este exemplo em que estamos renderizando o cartão de perfil passando o nome como adereço aqui, e estamos exibindo o nome assim no cartão de perfil, e estamos vendo o nome sendo renderizado aqui Agora, pode parecer que, olhando para este exemplo, estamos passando apenas um adereço aqui Então, o que é uma possibilidade? Está bem? Então, eu gostaria de mostrar e dizer que você também pode passar vários adereços Então eu posso dizer 23 e posso dizer que H é 42, por exemplo. Está bem? Então, aqui estou passando mais um adereço aqui, que eu posso exibir aqui Está bem? Então eu posso dizer H e posso dizer H aqui. OK. Algo parecido com isso. E se eu vier aqui, você pode ver Alice e John, ok, com seus respectivos Hs Ok, então isso é completamente possível, pois você pode passar vários adereços para um componente filho Agora, em nosso exemplo, H que estamos passando aqui está sendo passado como uma string. Haverá um cenário em que talvez você queira passar os dados como número inteiro ou Então, o que você pode fazer nesse caso é dizer um número aqui, vou passar outro parâmetro. Vou dizer que um tinha dois aqui. Está bem? Ou deixe-me passar isso como uma corda, ok? Vou passar por um lugar na corda e outro por aqui desta maneira. OK. Então é assim que você pode passar como um número. OK. Isso não é uma string. OK. E aqui, deixe-me experimentar uma coisa. Posso dizer que a soma constante é igual aos adereços ensinados, num mais um Está bem? E eu vou mostrar os dados aqui. Está bem? Então, aqui, você pode dizer que num é para que eu não precise. Não preciso disso, vou ver a soma aqui. Está bem? Agora, se você vier aqui, você pode ver que num é 21 aqui, que significa que dois mais um, tornou-se 21 porque estava sendo passado como uma string aqui neste caso. Está bem? No segundo exemplo, nós o passamos dessa maneira, e aqui ele está sendo exibido como três, que significa que está sendo passado como um número inteiro, certo? Então, espero que isso esteja fazendo sentido, como você pode trabalhar com dados e passar vários adereços em um único componente Tudo bem? Espero que isso tenha sido útil. 21. Gerenciar valores booleanos e tipos de proposição: Agora vamos falar sobre como você pode usar os Pollans ao trabalhar com Então, aqui em nosso exemplo, temos um cartão de perfil, que estamos exibindo que estou passando para strings e números, Allr? E eu estou exibindo esse número dessa forma com a ajuda de cálculos. Então, vou me livrar dessa tela para o número. Nós não precisamos disso. OK. E eu também vou me livrar de Num aqui. OK. Então, agora vamos falar sobre booleano. Digamos que eu queira passar um adereço booleano, direi que é membro aqui Ok, e eu vou dizer a verdade aqui. OK. E eu vou passar uma coisa parecida aqui também. Opa, eu preciso fechar isso aqui. OK. Vou deixar seu membro, e vou dizer que cai aqui. Algo parecido com isso. OK. Agora, estou passando Boolean aqui, mas isso está sendo passado como uma string OK. Deixe-me mostrar para você. Então, se eu duplicar isso, se eu disser que é membro aqui, me desculpe É membro? OK. Algo como esse início de adereço é um memorando OK. Agora, se você ver aqui, verdadeiro e falso, está sendo impresso como uma string E. OK. Agora, para passá-lo como booleano E aqui, eu preciso, tipo, remover esses colchetes redondos Desculpe, essas vírgulas invertidas e preciso adicionar as Cobras. OK. Isso também é o mesmo para números inteiros. Agora, se eu salvar isso e vir aqui, você verá que não consegue ver os valores booleanos Está bem? Então, qual é o propósito de passar os valores booleanos Portanto, os valores booleanos são usados para a tomada de decisões. Está bem? Então, digamos que você queira mostrar ou mostrar uma mensagem dependendo se o usuário é membro ou não Portanto, você pode usar esse membro booleano is aqui e exibi-lo Ok, deixe-me mostrar isso para você. Então, eu posso dizer status aqui. Status. E se você der uma olhada no status agora, não há nada porque é um valor booleano Então, posso dizer se posso usar o operador ternário, na verdade, aqui Está bem? Então, posso dizer que props é membro Então, se isso for verdade, eu diria membro ativo ou então, diria adivinhação. Algo parecido com isso. Eu salvo isso e você pode ver o membro ativo e o convidado. Então, Alice é membro ativo porque passamos por Alice aqui Você pode ver que Alice era verdadeira. E John não é um membro ativo, então você pode ver um convidado aqui porque falhamos. Ok, se você quiser que isso também seja verdade, você pode passar por verdadeiro assim. Opa. Então, vou selecionar isso, salvar isso e você poderá ver o membro ativo. OK. Por uma palavra, você verá Johns adivinhar OK. Então é assim que você pode usar valores booleanos em adereços Então, adereços, exceto o membro booleano do suporte, tudo bem e isso permite que você gerencie o estado dentro Então, se você quiser adicionar algum tipo de exibição condicional ou algo parecido, você pode usar adereços booleanos exibição condicional ou algo parecido, você pode usar adereços booleanos, certo? E como você passa por isso? Você o passa dentro de um par de passagens curvas e não com vírgulas invertidas como esta e não com vírgulas invertidas como Essa é uma forma de passar uma string para cá. Tudo bem. Então, espero que isso seja útil. 22. Desestruturando adereços: Então, vamos começar a falar sobre a desestruturação de adereços. Então, aqui, eu tenho um exemplo em que eu tenho esse componente de aplicativo, que está usando o cartão de perfil duas vezes, certo? Você pode ver que ele está renderizando o cartão de perfil duas vezes e está passando esses dados aqui, e esses dados estão sendo passados na forma de adereços, e esse componente do cartão de perfil está usando Com a ajuda da notação de pontos. Assim, você pode ver como ele o está usando. Agora, o que quero dizer com notação de pontos é que esses dados que você está passando daqui, nome, H é membro Esses atributos estão sendo passados na forma de objeto aqui. Está bem? Então, os adereços se tornam um objeto, e você pode acessar o que foi passado com a ajuda da notação de pontos, o que significa usar esse ponto aqui Certo, então você pode ver o nome do ponto adereço, o ponto do adereço h e o membro do ponto do adereço Essa forma de acessar as coisas é conhecida como notação de pontos, e podemos usar a notação de pontos aqui porque os adereços aqui são porque os adereços aqui são Está bem? Está em um objeto JavaScript, certo? Agora, em JavaScript, é comum fazer uso da desestruturação, certo? E quando você está usando adereços no react, desestruturação é comumente usada para tornar o código limpo e mais legível. Deixe-me dar um exemplo. Primeiro, vou fazer uma análise do que é desestruturação Então pense dessa forma, ok? Você tem um objeto JavaScript aqui. Está bem? Isso não é reagir. Este é um script Java simples que estou escrevendo aqui. Ok, estou dizendo nome, John. OK. E tem que ser, tem duas coisas nele. Tem nome e cada um. Então, cada um é 30 aqui. Está bem? Agora, uma maneira de extrair os dados desse objeto é uma maneira de descompactar, é você pode dizer nome, pessoa, tenso, nome aqui. Essa é uma maneira. OK. Então, isso é sem desestruturação, ok? E usando notação de pontos, certo? Isso é o que você está usando, ok? Você pode dizer g aqui e dizer a idade da pessoa. Essa é uma maneira de fazer as coisas, certo? Outra forma de fazer as coisas é com a ajuda da estruturação em T, com a desestruturação Como você faria isso? Então você pode dizer const, ok? Você pode dizer o nome, vá aqui. Está bem? E você pode atribuí-la a uma pessoa. Opa. Então, isso descompactaria todos os valores que existem no objeto pessoa e os atribuiria a essas duas variáveis Agora estou recebendo um erro porque isso é redundante, certo O nome e a idade já foram criados, então vou apenas comentar isso, ok, para que não vejamos o erro. Mas você tem a sensação de que isso é uma reestruturação em que você está descompactando uma pessoa em um nome e cada reestruturação em que você está descompactando uma pessoa em um nome e cada uma, certo? E o que é nome e idade? O nome e cada um são atributos que você pode ver aqui dentro do objeto aqui. Então, descompactamos as propriedades que existiam dentro desse objeto Você pode ver que isso foi descompactado. Agora, isso é conhecido como desestruturação. É uma sintaxe melhor em comparação com esta. Está bem? Isso também é possível. Você pode fazer isso, mas isso não é tão legível. É um processo um pouco demorado e complicado, certo? Agora, eu disse que isso está sendo passado como o objeto, ok? E essas são todas as propriedades por aqui. Então, aqui, se você vê que tem adereços, você tem adereços nome do ponto, adereços ponto H. Então, nome, idade e membro não são nada além Portanto, você também pode aplicar o padrão de estruturação de D semelhante aqui. OK. E para fazer isso, o que você faria é se livrar disso aqui. Está bem? Podemos usar a sintaxe semelhante, certo? Você precisa desses colchetes, então vou copiar isso, colar aqui, e aqui eu posso ter o nome H e tenho mais um membro, algo assim Agora, no momento em que faço isso, não preciso acessar todos esses atributos ou todas essas propriedades, nem atributos, todas essas propriedades usando a notação de pontos Então eu posso me livrar do nome do ponto, ponto H, e tot está aqui. OK. Vou salvar isso e isso também pode ser salvo, e você verá que não há alteração na saída. Também não haverá erros. OK. Está tudo bem, certo? Então, isso é o que é a desestruturação de JavaScript, e acredito que você esteja familiarizado com a desestruturação de JavaScript. Mas isso foi só um lembrete. Então, espero que você entenda o que é isso e como isso é usado para a desestruturação de adereços Agora, lembre-se de que a desestruturação em JavaScript é uma maneira conveniente extrair valores de matrizes ou objetos em variáveis, É usado com muita frequência e o termo usado é desestruturação que permite que você descompacte Então, desempacotar é o termo que está sendo usado em todos os lugares, certo? Então, aqui, o que estamos fazendo é realmente desempacotar os adereços, certo Estamos descompactando os adereços em variáveis individuais aqui, ok? E estamos fazendo uso dessas variáveis dentro do componente, certo? Então, aqui, as variáveis estão sendo usadas diretamente, e isso é muito mais legível do que usar a notação tot Então, quando você estiver trabalhando com componentes de reação, esse tipo de sintaxe, você verá muito onde os atributos estão sendo passados dessa forma As propriedades estão sendo passadas dessa maneira, e aqui estão sendo desestruturadas dessa maneira. Portanto, não se confunda. Isso é uma desestruturação normal de objetos com o script Java. Então Javascript, o conceito de JavaScript, está sendo usado aqui, certo? Então, espero que isso seja útil e espero que você tenha conseguido acompanhar. 23. Validando props com PropTypes no React: Vamos começar falando sobre validações de adereços e como elas podem ser usadas para validar as propriedades que você está passando Então eu tenho esse componente aqui, aplicativo, que está usando o cartão de perfil duas vezes, e estamos passando alguns adereços aqui, você pode ver, e esse suporte está sendo desestruturado aqui por nós, e estamos fazendo uso dos dados desestruturados dentro do composto Agora, deixe-me dar um cenário. Aqui estamos passando H e estamos passando H como uma string, certo? Agora, não há nenhum tipo de validação como tal, ok? Não há nenhum tipo de validação que estamos fazendo agora que possa nos ajudar a destacar esse destaque para um desenvolvedor ou para quem está usando esse componente específico de que, ei, g deveria ser um número e não uma string, certo? Então, no momento, não estamos recebendo nenhum tipo de erro. Estamos todos bem, mas haverá cenários em que você projetou um componente e gostaria que quem estivesse trabalhando nesse componente ou usando esse componente em seu arquivo passasse dados de uma determinada maneira, certo Porque normalmente o que acontece é que em uma equipe você está trabalhando em um componente, você está escrevendo um componente, e esse componente está sendo usado por qualquer número de desenvolvedores. Como você comunica isso? Então é aí que a validação de adereços entra em cena. Agora, com a ajuda dos tipos de propriedade, tipo de propriedade é uma ferramenta que pode ser usada para validar as propriedades que estão sendo passadas ou que estão sendo passadas ou que Está bem? Portanto, com a ajuda dos tipos de prop, você pode ajudar a detectar pugs logo no início do desenvolvimento quando os dados estão sendo passados, garantindo que o tipo atual de dados seja passado para o componente E se um componente receber os adereços que não correspondem aos tipos esperados, o react emitirá um aviso no console no modo de desenvolvimento Certo? Então, isso é algo que você deve saber, e vamos ver como você pode adicionar validações. Então, o que eu faria é primeiro usar uma instrução de entrada, então vou dizer entrada, tipos de adereços Está bem? Estou escrevendo isso no cartão de perfil dot Qx, e direi que vou dizer tipos de adereços aqui Ok, então eu estou fazendo essa declaração de entrada no topo. Agora, o que eu faria aqui é escrever a validação que eu preciso ter. Então, para adicionar validação, o que faríamos é aqui, diríamos cartão de perfil. Ok, esse é o nome do componente. Nós diríamos tot, eu diria tipos de adereços ou algo parecido Ok. E então eu vou abrir um par de elogios encaracolados Ok, alinhe isso com um ponto e vírgula. E aqui, vou escrever a validação, o que eu quiser ter. Então eu posso dizer o nome. Para designar o nome, preciso dizer prop types, tot string. Ok. Então esse é um deles. Ok. Eu posso dizer que para cada tipo de adereço, pensei, digamos que é um número Queremos que seja um número, certo, então eu vou dizer número. Ok. E para um membro, Ok, eu vou dizer tipos de adereços, e vou passar o ponto Bool Ok. E eu vou passar em coma. Está bem? Ainda não salvei esse arquivo, mas antes de salvar, quero mostrar que estamos passando uma string agora e não estamos recebendo nenhum tipo de erro, certo? Então, aqui, se você ver em app.j6, estamos passando uma string Não estamos recebendo nenhum erro no console. No momento em que eu salvar isso e se eu vier aqui, você verá esses avisos aqui Tipo de prop falhado, inválida uma idade de prop do tipo string aplicada ao cartão de perfil, número esperado Está bem? Portanto, você recebe esse tipo de aviso no modo de desenvolvimento somente quando está usando a validação de tipos de prop Está bem? Agora, o que acontecerá é se um desenvolvedor estiver usando o componente de cartão de perfil. Digamos que o componente do cartão de perfil seja desenvolvido por você e eu como desenvolvedor, sou seu colega de equipe, estou usando esse cartão de perfil e, por acaso, passei H S 23. Que é uma corda. Ele simplesmente começaria a enviar avisos para o console e para o desenvolvedor, eu sou o desenvolvedor. Nesse caso, eu saberia que, ei, eu não deveria passá-la como uma string, mas sim como um número Está bem? Agora, eu posso mudar isso para o número também aqui, e o aviso desaparecerá. Então eu posso dizer 23. Se eu salvar isso, ainda recebo um erro, ok, porque eu mudei apenas em um lugar, certo? Então, eu preciso fazer uma mudança aqui também. Apenas salve-o. Ok. E agora, você verá que não há nenhum erro como tal. Está bem? Então, está tudo resolvido. Agora, mais uma coisa que eu quero falar é se eu não passar como membro, vamos ver o que acontece, ok? Então, se eu pular um membro, você verá que não há nenhum problema como tal, certo? Então você pode ver, não há problema, certo? Estou recebendo algum tipo de erro que eu deveria passar para o membro? Não, certo? Portanto, você também pode adicionar validação para isso. Então, se algum tipo de adereço for obrigatório, ok? Você pode adicionar qualquer tipo de validação ou adicionar esse tipo de validação. Solicitando que o usuário passe o valor dessa propriedade específica. Está bem? Então aqui, Boll, eu posso dizer tot, e aqui eu posso dizer que é obrigatório. Você pode ver. Se eu salvar isso, se eu vier até aqui, você verá que o adereço do membro está marcado como obrigatório no cartão do perfil, mas seu valor é indefinido, certo Então, antes de passar, eu não estava passando esse adereço e não estava recebendo nenhum tipo de erro, mas agora tenho que passar isso compulsoriamente. Ok, é Não há como escapar. E se eu salvar isso e fizer uma atualização, você verá o erro desaparecer. Tudo bem Então, espero que esteja claro como a validação dos adereços funciona Agora, lembre-se, isso será mostrado. Esses serão os erros que você está vendo serão mostrados no modo de desenvolvimento e serão mostrados como avisos, ok, no console do navegador, o que ajudará os desenvolvedores a corrigir o problema e resolvê-lo, Então é para isso que servem os tipos de adereços, ok? Então isso significa que você quer uma string. Isso significa que você quer um número. Isso significa que você quer um booleano, assim como é obrigatório, ok? Ele e o nome são opcionais, mas o membro é obrigatório, ok? Você pode fazer com que T também seja obrigatório aqui, passando isso aqui. Se você adicionar é obrigatório , significa que H também é obrigatório e não é opcional. Tudo bem Portanto, dependendo da sua necessidade, você pode adicionar esse tipo de validação e fazer as coisas Tudo bem? Espero que você tenha conseguido acompanhar e espero que tenha sido útil. 24. Usando adereços com arrays: Então, vamos começar a falar sobre como você pode usar matrizes como adereços aqui Portanto, temos esse aplicativo componente, que usa o cartão de perfil duas vezes aqui. E eu tenho esse cartão de perfil, que está reestruturando os adereços que estou recebendo Estou exibindo os adereços e tenho alguma validação para os adereços aqui Está bem? Agora, o que vou fazer é dizer que eu queira mostrar os hobbies aqui, e os hobbies podem ser múltiplos Então, o que eu gostaria de fazer é ter hobbies armazenados na forma de matrizes aqui Digamos que eu tenha hobbies, então eu posso dizer com um hobby Ok. Eu posso dizer hobby um, e eu posso ter E desse tipo. Ok, algo assim, e eu vou dizer ler, e eu vou ter apenas dois hobbies para cozinhar agora Ok. Vou passar isso. Ok. E o que eu posso fazer aqui é adicionar um adereço aqui, hobbies, e eu posso transmitir Eu posso dizer hobby. Um. Tudo bem, então isso está sendo aprovado agora, e o que eu preciso fazer é usá-lo aqui. Está bem? Então, eu posso dizer hobby aqui. Ok. E sim, eu entendo o hobby aqui. Ok, hobbies, não será um hobby. Serão hobbies porque você está passando isso por hobbies por aqui Está bem? Então eu tenho hobbies. Agora, o que precisamos fazer é mostrar os hobbies, certo? Então, primeiro de tudo, eu vou vir aqui. Vou dizer três ou três anos, hobbies. Ok. E aqui, o que vou fazer é dizer que vou adicionar uma lista não ordenada, L, e então aqui, vou escrever um roteiro de Ja Eu vou dizer mapa de hobbies. Então, vou usar o método map aqui. Ok, mapa de pontos de hobbies, e eu vou dizer hobby Eu vou ter dois parâmetros aqui, ok. Então, caso você não saiba o que estou fazendo, estou usando o mapa aqui e estou usando o mapa para iterar essencialmente sobre cada elemento na matriz de iterar essencialmente hobbies Então, hobbies são uma variedade aqui que eu recebi. Ok, estou passando isso como uma matriz. Você pode ver aqui, certo? É uma matriz. Está bem? Agora eu preciso iterá-lo e exibi-lo para o usuário Então, matrizes em JavaScript. Então, isso é JavaScript e matrizes em JavaScript têm esse método incrível chamado map, que você pode usar, certo? Então, eu estou fazendo uso do mapa de pontos de hobbies. Agora, o que o mapa faz é anunciar cada elemento na matriz de hobbies ou em qualquer matriz com a qual você o esteja usando Então, neste momento, a matriz em questão são hobbies. Estou dizendo que ele avalia cada elemento na matriz de hobbies, e o que você faz é, para cada elemento na matriz, executar essa função de seta Então eu tenho essa função de seta que você vê, então vou cortar isso. Ok, isso é um mapa. Ok. Agora, dentro disso, estou colando essa função de seta. Você pode ver? Ok. Essa é a função de seta que estou usando, e essa função de seta é o que será aplicada ou executada e retornará em um novo valor. Está bem? Então, isso está considerando dois parâmetros, essa função de seta, hobby e índice. Agora, hobby é o elemento individual ou atual na matriz de hobbies durante cada iteração Portanto, ele representa o elemento atual durante cada iteração. Por exemplo, se nossa lista de hobbies for ler e cozinhar, primeiro, o hobby será ler e depois será cozinhar. E o índice correspondente será passado aqui. Está bem? Então, o que eu faria é devolver algo aqui. Então, tudo o que você está adicionando aqui é retornado. Então, vou criar um elemento LI aqui. Ok. E eu vou dizer que a chave é igual a, vou adicionar o índice aqui e hobby será adicionado aqui, algo assim. Assim. Está bem? Então, o que fizemos foi adicionar essa função aqui, e essa função basicamente é executada para cada elemento na matriz. Está bem? Ele tem dois parâmetros. Um é o elemento atual na matriz de hobbies durante cada iteração Isso é chamado de hobby. E então temos o índice. Este é o índice do elemento atual na matriz, ok? E o que acontece é que, depois essa função é executada, um valor é retornado, e o valor retornado nesse caso é esse markdown, ok, ou esse código JSX que estamos retornando Agora isso está acontecendo, o que isso está fazendo é que é LI, ok? Portanto, é uma lista que está sendo construída. Ele representa um único item da lista. Ok. E eu tenho essa chave aqui. Ok. Agora, a chave prop está sendo adicionada aqui com o valor do índice Então, para o primeiro elemento, a chave será uma. Para o segundo elemento, a chave será duas. Desculpe, para o primeiro elemento, a chave será zero. Está bem? E para o segundo elemento, chave será uma e assim por diante, porque os índices começam com zero, é claro, certo? Agora, por que adicionamos essa chave aqui? Está bem? Então, adicionar essa chave é uma das melhores práticas sempre que você estiver trabalhando com listas no react, certo? Ou sempre que você estiver renderizando matrizes no react. Então, isso é muito importante porque o uso da chave aqui está sendo feito para gerenciar com eficiência a renderização da lista, ok? E essa chave ajuda a reagir, acompanhar cada item da lista e atualizar apenas aqueles que mudam e que precisam das alterações quando a lista é alterada. Então, se houver alguma alteração na lista ou na matriz aqui, ok, com base nesse valor de chave, ele fará uma atualização dinâmica, ok, porque ele precisa realizar uma atualização, certo? Se houver alguma alteração no valor, ele não será recarregado instantaneamente Portanto, com base no valor da chave, dependendo de como essa chave está sendo atribuída e renderizada na interface, o hot reload será feito Então, basicamente, do ponto de vista da otimização, react precisa dessa chave, e é importante incluí-la sempre que você estiver renderizando uma matriz ou uma lista, devo dizer Ok, então isso é o que fizemos. E se você vier aqui, ok, não estamos vendo nenhum tipo de saída. Por quê? Por que isso? Ok. Então, ok, estou recebendo um erro aqui 11, ok? E não é possível ler as propriedades de indefinido. Tudo bem É porque estou repassando isso para provavelmente apenas 11 componentes e não para o outro. Então, se eu salvar isso, devo ver a saída aqui Você pode ver a saída que estou vendo. Ok. Agora eu não estou vendo hobbies sendo mostrados aqui. Os hobbies não estão sendo mostrados. Ok, hobbies não estão sendo renderizados, na verdade, ok? Então, vamos ver por que o hobby não está sendo renderizado. Então eu acho que tenho o problema aqui. Estamos apenas criando este LI, mas não o estamos devolvendo Então, certo? Precisamos adicionar uma declaração de devolução aqui. Ok. E no momento em que adicionarmos a declaração de devolução, deixe-me salvá-la aqui. Também vou fechar isso com um ponto e vírgula, ok, e vou salvá-lo E se você vier aqui, verá leitura e a culinária sendo mostradas. Ok. Ignore a interface. Tudo bem. Não está muito bonito, mas espero poder comunicar os conceitos que estamos aprendendo, certo? Então aqui você pode ver Hobby, Hobby one sendo aprovado. Ok. O que você pode fazer é cortar isso diretamente em vez de usar uma variável. Vou me livrar disso aqui. Ok. E aqui, o que eu posso fazer é simplesmente colar o hobby. Está bem? Então, aqui eu posso ler e fazer caminhadas. Ok, e nadando. Então, primeiro um lê, cozinha, outro nada e faz caminhadas. E se você ver aqui, lendo , cozinhando, nadando e caminhando. Está bem? Portanto, está sendo exibido corretamente. Isso é absolutamente ótimo aqui. Está bem? Agora, aqui, o que estamos fazendo é passar a matriz da string aqui, certo? A matriz da string está sendo passada. Agora você pode adicionar algum tipo de validação aqui, se desejar. Então, aqui, vou falar sobre os tipos de adereços. E eu posso adicionar validação. Digamos que eu queira ter hobbies apenas como matriz de cordas Não quero que nenhum outro tipo entre em hobbies. Está bem? Então, o que eu posso fazer é dizer hobbies aqui. Está bem? Colin, vou dizer tipos de adereços, algo assim Uma variedade de aqui. E aqui, eu posso dizer tipos de adereços ponto, eu posso dizer string, algo assim Portanto, essa é uma sintaxe que você precisa seguir. Ok. Estamos vendo uma matriz de tipos de adereços e estamos vendo que deveria ser string, certo? E isso garante que o hobby seja sempre uma variedade de cordas. Então, se eu salvar isso e vir aqui, ok, se eu estiver fresco, você verá que não há erros desse tipo, ok? Mas se eu mudar isso para o número, e se eu vier aqui, você poderá ver um tipo de prop inválido fornecido por um tipo de Você verá a renderização acontecendo aqui. Nada está impedindo a renderização, mas um aviso é emitido, ok? Esse é o benefício da validação que estamos fazendo. Tudo bem? Então, sim, espero que isso seja útil e espero que você tenha conseguido acompanhar como usar matrizes com adereços no react 25. Configurando callbacks: Agora é hora de começarmos a falar sobre retornos de chamada. Agora, o que são retornos de chamada? Os retornos de chamada são funções passadas como argumentos para outras funções e executadas após a conclusão de uma tarefa específica Agora, essa tarefa específica pode ser algo como uma espécie de operação de renderização ou uma espécie de operação assíncrona chamada de API ou algo parecido Está bem? Então, mostrarei como podemos usar retornos de chamada neste exemplo Então, aqui, o que eu fiz foi ter esse componente de aplicativo que você está vendo aqui. Está bem? Este é todo o componente do aplicativo, que está usando o cartão de perfil aqui. Está bem? E o cartão de perfil é o componente aqui, ok? Ele está renderizando alguns dados, alguns adereços que está obtendo do componente pai E eu adicionei um pouco de CSS apenas para embelezar essa interface aqui Então você verá uma interface um pouco bonita, uma interface decente. Ok, apresentável. Não vou dizer que é muito bom, mas é apresentável, é o que eu diria. Tudo bem E se você vier aqui, este é o CSS que eu adicionei para o mesmo. Está lá no arquivo CSS do ponto do aplicativo. Está bem? É um CSS muito simples, bem direto. E eu também concluí o trabalho adicionando algumas classes, como o App contains aqui e o cartão de perfil aqui. Certo. Agora, voltando ao tópico dos retornos de chamada, ok? Então, digamos que eu queira adicionar um ouvinte de um clique sobre hobbies, e esse ouvinte de um clique trará um alerta, ok E eu quero saber qual hobby foi clicado. Eu quero mostrar isso para o usuário. Está bem? Portanto, a funcionalidade é simples. Ok, poderia ser mais complexo, mas vou me limitar à funcionalidade simples. Tudo bem Agora, o que eu faria é ter uma função definida, certo, primeiro de tudo, dentro do aplicativo, eu diria, vamos ter uma função. Então aqui você pode dizer, const handle, Hobby, clique aqui Ok. E eu vou ter um parâmetro. Ok, por aqui. Vou usar a função de seta e vou dizer alerta. Ok, algo parecido com isso. E aqui, eu vou dizer que você clicou em Eu vou dizer um hobby mais alto Hobby, algo assim. Está bem? Então essa é uma função que eu criei, e eu quero que essa função seja acionada sempre que um hobby for clicado Está bem? Além disso, vou apenas alinhar isso Então, isso se tornou bastante longo, eu diria. Ok. Está saindo da tela, então vou alinhar esse animal de estimação de uma maneira melhor Está bem? Então você pode ver isso aqui. Ok. Vou colocar o nome aqui. Cada um é um hobby para os membros. Ok, então isso agora está legível e não está saindo da tela agora Tudo bem Então, agora o que eu preciso fazer é o que eu posso fazer, eu posso passar essa função específica como um retorno de chamada para esse componente específico Está bem? Como com a ajuda de adereços Tudo bem Então eu posso vir aqui, ok, pressionar Enter e dizer em Hobby, clique, esse é o nome do adereço. Eu posso ter essa sintaxe de JavaScript, e posso dizer handle hobby click, algo assim Ok. E eu posso passar por isso também. Aqui, algo parecido com isso. Está bem? Então, sim, eu passei os dois para os componentes que estou renderizando, as duas placas de perfil, estou passando isso como um suporte Agora, aqui no cartão de perfil, o que eu preciso fazer é entrar no Hobbie, clicar aqui Ok, algo parecido com isso. Está bem? Agora, o que eu vou fazer aqui é eu preciso adicionar um ouvinte no elemento LI quando estamos renderizando o elemento LI, certo Então, o que eu posso fazer aqui é depois de uma chave como essa, eu posso dizer ao clicar aqui, e eu posso ter igual a. Ok. E eu vou adicionar isso e vou adicionar a função de seta, e eu vou dizer que no hobby clique aqui, e eu vou passar o hobby que eu tenho, ok? Então, espero que isso esteja fazendo sentido. Está bem? Então, o que estamos fazendo é adicionar um L ao clicar aqui. Temos acesso ao hobby. Então, com a ajuda desse mapa, ele está iterando sobre a matriz Hobbie, certo E para cada iteração, essas duas coisas têm o hobby atual e o índice Então, estou deixando esse hobby aqui. Ok, sempre que o evento de clique estiver sendo acionado, e eu estiver ligando para o Hobbie, clique O que está no Hobbie Click? chegando como suporte por aqui. E o que está chegando como adereço aqui? Essa coisa está chegando. Essa função. Ok. E o que vai acontecer é essa coisa que estamos passando como parâmetro aqui. Ok. Deixe-me levar isso também para a nova linha, algo assim. Ok. Então, essa coisa que você está recebendo essa coisa que você está passando como parâmetro, hobby, será passada aqui. Ok, vá até esta função, e esse alerta será acionado. Está bem? Vamos ver isso em ação. Vou salvar esse código. Eu virei até aqui. Opa. Então você vê nadando com um clique caminhando com um clique. Há algum problema na renderização. Então, aqui, se você ver um hobby, clique. Opa. Cometemos um erro, então vou cortar isso. Ok. Vou cortar isso. Ok. E, uh, então eu acidentalmente adicionei isso em um lugar errado Ok, então deveria estar aqui. Está bem? Sim, algo parecido com isso. Agora, deixe-me abordar isso em uma nova linha. Deveria estar depois da chave e, seguida, essa tag de fechamento aqui para HTML, e então estamos renderizando a IA como eu espero que isso esteja fazendo sentido agora, ok? Então, como funcionou, a tag LI tem dois atributos. Uma é a chave, outra está no clique, você pode ver. E então estamos fechando essa tag aqui. Estamos entrando no hobby e fechando a etiqueta LI. Ok. Espero que isso esteja fazendo sentido. E se você vier aqui, eu farei isso do zero. Você clicou em Cooking, ok? Você clicou em caminhar. Você clicou em nadar. Você clicou em ler. Então você pode ver como o callback está em ação, ok? Agora, isso pode fazer com que aqui passemos para um componente. Passamos isso como um suporte para o componente. Está bem? Você pode passar isso para qualquer retorno de chamada que normalmente é usado para ser acionado Eles devem ser acionados quando a operação assíncrona ou qualquer tipo de renderização Está bem? Então, nesse tipo de cenário, você pode usar o retorno de chamada Então, digamos que você tenha uma chamada de API, o que você pode fazer é passar essa função como um retorno de chamada E quando a chamada da API for concluída, dependendo de uma determinada operação ou de um determinado evento, você poderá acionar o retorno de chamada, como estamos acionando aqui Certo? Portanto, essa é a função definida no componente pai sendo acionada a partir de um elemento no componente filho com a ajuda de um clique de Lissner Tudo bem Então, espero que isso tenha ficado claro e espero que você consiga acompanhar isso. 26. Acessórios e a sintaxe de Spread: Vamos falar sobre como você pode usar o operador spread ao trabalhar com react e passar adereços aqui Está bem? Agora, operador de propagação é um conceito de JavaScript, ok? E veremos como podemos aplicá-la aqui. Agora o que está acontecendo aqui é que eu tenho esse componente do aplicativo, ok, que tem essa função criada, ok, essa função, manipular hobby clique dentro do componente do aplicativo, e eu estou passando esse identificador hobby clique junto com alguns outros adereços aqui para o cartão de perfil, e eu estou renderizando o cartão de perfil aqui, E o cartão de perfil é um cartão muito simples que renderiza essas informações na interface do usuário Tudo bem? Também tem algumas validações. Então, o que vou fazer é passar adereços do cartão de perfil com a ajuda do operador de propagação, certo? E o que vou fazer primeiro é criar um objeto com todos esses valores. Agora, esses adereços estão sendo passados para o cartão de perfil, e esses são adereços de diferentes usos, certo Então, essas são propriedades que representam Alice e John, certo? Então, o que podemos fazer é converter esses adereços em objetos aqui. Está bem? Então, o que eu faria é aqui, eu diria const, eu diria perfil de Ale Ok, eu vou dizer o perfil de Alice aqui, e eu os adicionaria como objetos aqui Oh, desculpe, mas propriedades. OK. Então, aqui, eu estou construindo um objeto, ok, eu não preciso dessa cinta encaracolada. OK. E aqui, então eu vou ter, uh, esse membro, ok, algo assim. Eu não preciso de True, algo assim. Eu terei hobbies. E quando você se livra desses aparelhos ondulados, isso era necessário no GSX, mas não aqui, ok? Eu vou ter vírgula E, uh, vou adicionar isso. OK. E sim, eu ainda estou recebendo erros, eu sei. E a razão para isso é que deveriam ser pares de valores-chave e não iguais a, ok? Então, eu vou Opa. Eu vou Opa. Estou bagunçando o teclado. OK. Então, vou copiar isso. OK. Vou apenas copiar isso e colar. Opa. Então, sim, algo assim. OK. E sim. Então é assim que o perfil de Alice se parece. Está bem? Então, estamos passando os dados para a Alice aqui Está bem? Precisamos fazer o mesmo John também. Então eu vou cortar isso. Ok, corte isso aqui. Eu virei até aqui. OK. Isso está feito. Vou dizer const, John, perfil OK. E aqui, vamos comer isso. OK. Em primeiro lugar, vou colocar isso aqui com uma vírgula. OK. E precisamos formatar isso um pouco, ok? Então, 42, eu não preciso de um colete encaracolado. Esses eram necessários para sexo mastigável. E vou adicionar cólon. Ok, coma. E aqui, novamente, vou adicionar cólon e esses coletes encaracolados não são necessários Vou adicionar coma e isso será cólon. Os colchetes encaracolados não são necessários, e então eu vou alinhar isso Isso está feito. Tudo bem. Temos o perfil do John e o perfil da Alice. Agora o que podemos fazer é vir aqui, no cartão de perfil. Ok, precisamos passá-los como adereços, esses objetos como adereços O que eu posso fazer é adicionar uma base encaracolada. Posso dizer três pontos e posso dizer o perfil da Alice aqui E aqui, eu posso ver três pontos e eu posso ver o perfil de John. Eu posso ver se isso. Agora, se você der uma olhada na saída, ela não mudou. Não há alteração na saída, nenhum erro como tal, ok? Tudo é o mesmo. Só que melhoramos um pouco as coisas , criando primeiro perfis para cada membro, tudo o que queremos transmitir, e estamos transmitindo isso usando o operador de propagação para esse componente específico. Portanto, o operador de spread é usado para passar todos os principais pagadores de valor do objeto como adereços para o componente do cartão de perfil Dessa forma, em vez de listar cada prop manualmente, você espalha o objeto e o componente recebe o valor correspondente como props Tudo bem. Deslize os benefícios em relação à abordagem mais antiga. Muitas pessoas também prefeririam a abordagem mais antiga, mas alguns benefícios aqui são um código mais limpo. Você está reduzindo a reputação e, basicamente, você tem objetos criados agora, com base nos dados que deseja transmitir. Agora, esse objeto que estamos construindo em tempo real, certo? Estamos construindo, codificando todos os valores. Haverá cenários em que você obterá esse objeto diretamente da API. Ok, você obtém alguns dados do EPI, converte nesses tipos de objetos e os passa dessa forma para os Desculpe, para o componente na forma de adereços. OK. Portanto, não se confunda com esse tipo de sintaxe É a mesma coisa, certo? Ele faz o mesmo trabalho. São apenas as diferentes maneiras de fazer as coisas. Está bem? Isso é muito útil se você estiver recebendo alguns dados de uma chamada EPI ou de uma chamada de banco e os tiver na forma de objetos, ok? Então, em vez de construir os adereços inteiros manualmente aqui, basta usar o operador spread e passá-lo porque você já o está obtendo na forma de objetos Certo? Então, espero que isso seja útil e espero que você tenha conseguido acompanhar. 27. Conclusão do curso: E isso nos leva ao fim dessa empolgante jornada no mundo dos fundamentos do react Juntos, exploramos os principais conceitos do react, desde a criação de seu primeiro projeto, domínio da cadeira sX, componentes, adereços Ao longo do caminho, desenvolvemos habilidades práticas e até concluímos um projeto para solidificar seu aprendizado. Mas lembre-se, isso é só o começo. O React é uma ferramenta poderosa e muito versátil, com infinitas possibilidades para criar aplicativos web dinâmicos , como você entendeu até agora. Eu o encorajo a continuar experimentando, explorando tópicos avançados e aplicando o que aprendeu em seus próprios projetos Estou entusiasmado em ver como você usa o react para criar aplicativos incríveis para seu portfólio Seja um projeto pessoal, uma tarefa profissional ou qualquer outra coisa, sinta-se à vontade para usar o react, e ele servirá como base para criar um grande aplicativo As habilidades que você adquiriu aqui servirão como um trampolim para avançar em sua carreira Obrigado por ser um grupo de alunos tão engajado e motivado Espero que este curso não tenha apenas ensinado novas habilidades, mas também tenha incentivado você a pensar de uma perspectiva e dimensão completamente diferentes sobre o desenvolvimento web. Além disso, não se esqueça de conferir a seção de projetos deste curso onde temos um projeto que você pode concluir e compartilhar com toda a turma. Obrigado por se juntar a nós nessa jornada. Boa programação, tudo de bom.