Fundamentos do reato moderno: crie um gerador de citações | David Sealey | Skillshare

Velocidade de reprodução


1.0x


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

Fundamentos do reato moderno: crie um gerador de citações

teacher avatar David Sealey, Web Developer

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

      2:44

    • 2.

      Apresentação do projeto

      2:48

    • 3.

      O que é React e por que usá-lo?

      1:18

    • 4.

      Como configurar seu projeto React

      10:34

    • 5.

      Componentes e JSX

      12:49

    • 6.

      Acessórios

      12:29

    • 7.

      Introdução aos ganchos e ao usoEstado

      8:36

    • 8.

      useEfeito gancho

      6:36

    • 9.

      Os dados e a conexão nossos... ganchos

      11:44

    • 10.

      Teste

      3:32

    • 11.

      Como adicionar estilos

      10:27

    • 12.

      Como implantar seu trabalho

      5:44

    • 13.

      Para onde ir a partir daqui?

      4:24

    • 14.

      Resumo e razões pelas quais você é incrível

      1:26

  • --
  • 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.

195

Estudantes

3

Projetos

Sobre este curso

Se você quiser aprender todas as técnicas principais do React.js para colocar você em operação na criação de um aplicativo web completo, este curso do React é para você!

Neste curso, você vai aprender como codificar um aplicativo React gerador de citações que será em uma única página da web. As técnicas modernas do React usadas para criar este projeto vão abordar uma ampla gama de conceitos e abordagens para garantir que você vai embora com a confiança para ser capaz de usar o React em futuros projetos por conta própria. Tudo neste curso será fundamental para dominar os aspectos importantes da criação de um aplicativo do React.

Vou explicar como uso o React para criar um aplicativo funcional e de alto desempenho que vai aprimorar a experiência do usuário geral.

O curso vai abordar:

  • Fundamentos como a configuração de um projeto React, componentes funcionais, adereços, ganchos, gerenciamento de estado básico etc

  • Reaja ganchos como useState e useEffect

  • Como usar o React DevTools para depuração

  • Como trabalhar com dados no React

  • Como adicionar estilos

  • Extensões e ferramentas úteis do React para ajudar a tornar o desenvolvimento mais fácil

Você vai ser mostrado como publicar seu trabalho (de graça!) usando o Netlify para você poder compartilhar seu trabalho com outros estudantes neste curso.

Mesmo que você seja iniciante no React, vai descobrir que essas técnicas simples e eficazes são fáceis de usar e pode aplicar tudo o que aprender aos seus próprios futuros projetos na web.

Conheça seu professor

Teacher Profile Image

David Sealey

Web Developer

Professor

Hi, I'm David. I am a senior front-end web developer from Norwich, England.

I have had various roles within the digital marketing sector including SEO, digital advertising management, and user experience but it is my current role in web development where my passion truly lies.

I have many years of front-end experience building websites, apps, infographics, digital ads, and data visualisation tools for many high-profile international clients.

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: Nesta aula, vou ensinar-lhe os fundamentos do react, o que é, por que acho que é uma ótima biblioteca para lidar com e como implementar as práticas mais recentes e recomendadas em seus projetos web. React é uma das principais estruturas ou bibliotecas na criação de UIs interativas perfeitas. Portanto, é realmente essencial que qualquer desenvolvedor web front-end tenha alguma experiência em. Ao longo desta aula, ensinarei como trabalhar com componentes funcionais do React, JSX, props, hooks, gerenciamento de estados, como depurar e testar seu aplicativo. Difícil adicionar estilos e muito mais. Todas são partes cruciais para saber ao construir ótimas UIs com o react. Ao seguir junto comigo em todas essas lições, você usa essas habilidades recém-adquiridas para construir seu próprio gerador de cotações. Cada etapa da construção deste gerador de cotações cobrirá tantas habilidades importantes que você precisará para ser um desenvolvedor React completo e confiante. Ei, eu sou David e sou um desenvolvedor web front-end de Northridge, na Inglaterra. Tenho muitos anos de experiência na criação aplicativos digitais para uma variedade de clientes internacionais. Divirta-se ajudando outros desenvolvedores da web como você a melhorar suas habilidades, o que os ajudará a promover suas carreiras e finalmente, ajudá-los a se tornarem o melhor desenvolvedor ou aleatório que podem ser. Mas eu odeio falar sobre você mesmo. Então, vamos seguir em frente rapidamente. Esta aula sou eu sob alunos que têm algum conhecimento básico de tecnologias front-end incluindo JavaScript, mas gostariam de aprender a reagir. Mesmo que você tenha vindo de um plano de fundo de linguagem de codificação diferente, ainda poderá acompanhar desde que conheça os conceitos básicos de funções, matrizes e objetos. Se você é um iniciante completo para reagir, isso é absolutamente bom. Tudo o que você precisa para criar seu projeto de classe é seu IDE favorito. Vs code será meu editor de código preferido usado nesta classe. Mas qualquer outro que você se sinta confortável em usar é absolutamente bom. Quando você terminar de construir seu gerador principal, você estará implantando um produto na Web usando o Netlify. Eles se preocupam, vou te mostrar como é fácil fazer isso e tudo é totalmente gratuito. Com as habilidades que você ganhará com essa classe, você poderá oferecer muito mais como desenvolvedor, seja você freelancer ou se trabalha para uma empresa, react ainda é a biblioteca JavaScript mais popular usado no mundo. E muitos aplicativos da Web são criados usando o React. Depois de precisar dessas novas habilidades, você poderá demonstrar seu conhecimento para qualquer empresa que procura desenvolvedor front-end altamente qualificado e sólido. No final desta classe, você poderá criar um desempenho elegante e alto, usar interfaces usando os recursos react mais recentes. Sem mais delongas, vamos começar. 2. Apresentação do projeto: Nesta classe juntos estaremos construindo um gerador de cotações aleatórias por dentro, reagir. Quando você pressiona este botão e novas citações aleatórias aparecerão instantaneamente. Este será um aplicativo de página única, que incluirá uma área para preencher a cotação, um rodapé simples. E mostrarei como gerenciar o estado do seu aplicativo. Se você estiver seguindo comigo, o que eu encorajo fortemente que você faça, você também pode criar algo como um gerador de fatos aleatórios ou um aplicativo semelhante que olhe algum texto dados e preencha aleatoriamente uma string de texto aleatória. O texto em si não era muito importante. Serão todas as técnicas do React que mostraremos em cada lição que são importantes. Agora eu escolhi um gerador de cotações como um projeto para construir, pois este é um aplicativo web ideal que abordaremos muitos conceitos importantes do React. Isso inclui trabalhar com componentes filho do paradigma de gerenciamento de estado, trabalhar com adereços, trabalhar com ganchos e dados de altura que Kennedy usou dentro do react. Primeiro projeto bem-sucedido. Tente usar todos os conceitos que vou mostrar neste curso. Se você está se sentindo particularmente confiante em pontos de bônus, não tenha lido os documentos oficiais de desenvolvimento do React e inclua mais contextos que não são abordados neste curso. Você também pode tentar incluir componentes adicionais, como um cabeçalho ou até mesmo páginas adicionais. Tente também iniciar seu tribunal gerado de forma diferente à mente usando seu próprio layout, fontes e cores. Os alunos devem usar o IDE favorito ou o editor de código para criar o projeto da classe. Vou usar o código VS, mas qualquer IDE funcionará tão bem. Agora você precisará usar um terminal disponível na maioria dos sistemas operacionais. Mas usarei o terminal que vem junto com o VS Code. Qualquer um fará, é claro, você usa o terminal para criar o projeto e também para ajudá-lo a implantar seu projeto final usando o Netlify. Não se preocupe, mostrarei como é fácil configurar isso e empurrar seu trabalho para uma página da Web ao vivo para que todos possam ver. E podemos fazer tudo isso em menos de um minuto. Todo o meu trabalho estará no GitHub neste URL. Então você pode ver meu projeto final. Eu usaria isso para referência se você ficar preso. E incluirei esse URL nas notas do curso para quando você tiver implantado seu projeto, será ótimo para você compartilhar capturas e vincular ao gerador completo. Você pode fazer isso enviando seu trabalho para a seção do projeto no Skillshare. Esta é uma ótima maneira de receber feedback de mim, dos outros alunos e realmente priorizar mostrar seu trabalho e seu novo amigo reagir habilidades. Claro, se você tiver alguma dúvida, por favor me avise. Agora, vamos dar uma olhada no que React realmente é na próxima lição. 3. O que é o React e por que usá-la?: Então, o que é o React e por que aprendê-lo? Simplesmente, como dito no site oficial do react, React é uma biblioteca JavaScript útil criando interfaces de usuário. Com o React, você pode criar visualizações simples para cada estado do seu aplicativo. Reaja a tão eficiente que saberá atualizar apenas componentes corretos quando seus dados forem alterados, em vez disso, recarregando a página inteira. Isso o torna ideal para o aplicativo de página única que estaremos construindo nesta classe. Isso significa que seu aplicativo React terá um ótimo desempenho e será super rápido. Cada componente é encapsulado, o que significa que cada componente gerencia seu próprio estado. Componentizado, trabalhe misto, fácil de gerenciar todo o seu código, permitindo que você reutilize componentes em todo o aplicativo. Reagir agora é usado em mais de 10 milhões de sites em todo o mundo. Isso também significa que há uma comunidade forte com ótimos recursos por aí para ajudá-lo em sua jornada. Houve também uma curva de aprendizado muito mais suave em comparação com sua contraparte Angular. E espero mostrar-lhe exatamente isso neste curso. Vamos montar nosso projeto? Vamos fazer isso na próxima lição. 4. Como configurar seu projeto do React: Agora deixe-me mostrar como criar seu projeto React e como colocá-lo em funcionamento. Então eu já abri o código VS aqui. Portanto, este é o editor de código que vou usar. Então, por favor, faça o mesmo, abra o seu e acompanhe comigo. A primeira coisa que fiz foi criar uma pasta vazia chamada gerador de cotações. Curse o que você quer e salve onde quiser. Não há arquivos lá ainda, mas é isso que estaremos configurando. Agora, para criar um projeto React, você precisará ter certeza de que você tem o Node JS instalado. Se você ainda não tiver JS baixado, acesse Node js.org. Você será apresentado com esta página. Agora, como você pode ver, já detectou que estou em um Mac iOS e você quer baixar os arquivos de download mais recentes ou atuais aqui. Agora, já tenho o Node instalado, então não preciso fazer isso. Mas quando você clicar nisso, você receberá um assistente de instalação. E você só precisa passar pelas etapas até que você tenha o nó no seu sistema. E então, como você verifica se você tem nó? Só vou abrir um terminal. Então, se o VS Code no novo terminal, se você não estiver usando o código VS e não tiver um terminal dentro do editor de código. Você não pode simplesmente usar qualquer terminal que esteja empacotado com macOS ou Windows. Então acabei de abrir um terminal aqui, mas vou fechar isso porque usarei o total dentro das curvas S. Então, espero que isso faça sentido. De qualquer forma, para verificar se eu tenho o Node instalado, vou escrever o nó dash V, que fica com a versão. E ele pode ver que 17.9, então isso está instalado. Se você vir esses números aqui, depois de escrever o nó b, você terá o nó instalado corretamente. O que exatamente é nó e por que precisamos dele? Basicamente, é um ambiente de servidor e é totalmente de código aberto, multiplataforma. Agora, o que isso faz, ele permite que você use JavaScript para escrever ferramentas de linha de comando ou terminal para scripts no lado do servidor. E é exatamente isso que precisamos para criar este aplicativo React. Como criamos o aplicativo React? Escrevemos n px, criamos traço, reagimos, traço, espaço. E então você pode escrever o nome da sua pasta ou aplicativo. Mas eu só queria usar o gerador de cotações, que é o nome da minha pasta aqui. Então, para fazer isso, eu só uso um ponto em vez de um nome e pressiono Enter. Preciso instalar, Create, React app. Ok, para continuar, sim, eu apertei Y. E aqui está abarrotado o aplicativo React e todos os arquivos e pastas necessários. Apenas dê um segundo a isso. Pode levar algum tempo dependendo do alto phos para uma máquina é desculpa, não preciso gastar todo o nosso processo de instalação porque estava demorando um pouco de tempo. Aqui queremos armazenar completo, correto. Tudo com bom aspecto. Como você pode ver à esquerda aqui, temos essa estrutura de pastas que ela criou. Então, temos molho com vários arquivos. App.js como o aplicativo raiz base. Muitos outros arquivos aqui. Chegaremos a eles em um minuto. Agora, para iniciar este aplicativo no seu navegador, novamente no terminal, deixe-me limpar tudo. Se eu escrever npm parado, não MPS, NPM, que significa Node Package Manager, que fornece vários scripts que você pode executá-lo. Então eu só queria parar esse espaço MPM. Interrompeu Enter. Presumo que é um pouco passar bem. Ele deve abrir uma guia ou uma janela. E se isso não acontecer, ou você precisa fazer é ir ao anfitrião local três vezes e lá vamos nós. Agora, se você puder ver esta página, sua replicação reagiu durante a configuração. Começando. Tudo bem. Agora, se você não vir isso, você não verá isso no host local 3 mil. Então eu devo ter sido um erro em algum lugar. E então vale a pena verificar o que seu terminal está dizendo, porque provavelmente lhe dará algumas mensagens de erro, que explicaremos exatamente onde está o problema. Ok, agora sabemos que isso está funcionando. Vamos arrumar alguns arquivos dentro do app.js, que é o arquivo pai do aplicativo. Não precisaremos de metade disso, então vamos nos livrar de tudo dentro da div, o cabeçalho. Vou incluir um H1 para dizer. Jen. Só para garantir que saibamos o que é isso. Isso é atualizado em tempo real, como você pode ver, perdemos a animação e ela tem o novo texto. Portanto, não há necessidade de continuar atualizando isso ou continuar iniciando o servidor. Tudo está parecendo boas atualizações em tempo real. não precisamos importar o logotipo. Salve isso. Dentro da fonte como estamos aqui, vamos configurar uma estrutura de pastas. Agora, é assim que eu gosto de fazer para manter as coisas arrumadas e arrumadas. Você pode me copiar ou você pensa diferente? Mas precisaremos de uma pasta para nossos componentes. Esta é a fonte interna, a propósito. Também dentro da fonte, vamos ter uma pasta para nossos dados, nossos dados de texto. E depois faremos o mesmo para a pasta de estilos. Para estilos. Tudo isso parece bom. Do que mais podemos nos livrar daqui? Livre-se de ferramentas legais web phi sempre que estamos fazendo algum teste e nos livrarmos dos testes de configuração. Está tudo bem. O que significa que é index js. Podemos nos livrar do que excluímos lá. E também esta parte da parte inferior. Lá vamos nós. Compilado com sucesso. Index js mantém nosso app.js, que deve simplesmente ter o tribunal de janeiro para também se livrar desse teste. Sim. E meio para fazer isso, mas não tem usado esses arquivos. Vamos mantê-lo limpo e arrumado, agradável e simples. Com a escola carregando bem nesta fase, deixe-me mostrar algumas extensões úteis que estou usando no código VS apenas para economizar algum tempo. Então, ao longo deste curso, você me verá usando alguns atalhos de teclado e coisas apenas para economizar tempo e esforço. Você pode achar isso útil para mostrar isso em. Então, componentes, vou criar um componente para o rodapé apenas para testar essas coisas que eu mostrei a vocês. Então vamos chamar esse ponto de rodapé js. Geralmente é a convenção normal para iniciar o componente js com uma letra maiúscula. O primeiro atalho útil é criar um componente funcional React. Vou simplesmente digitar II e tab e ela é criada uma estrutura de componentes aqui. O que está fazendo isso é uma extensão que estou usando trechos de código, trechos DX7 e atualizei. Então isso está me dando um monte de atalhos de teclado apenas para economizar algum tempo. Portanto, fique de olho nessa extensão exatamente. Outra extensão útil que estou usando é chamada de mais bonita. Se eu fosse apenas mover isso para que isso não pareça muito bom. Se eu destacar a escola e usar o atalho de teclado, Bennett a formata no lugar. Agora isso está usando o belo Act. Então, se formos para Extensões tempo, novamente, eu vou ter isso já instalado. Desde que você é mais bonita. Deve ser esse resultado principal aqui. Código todo o assunto. Você pode ver que esse arquivo está usando proteína morrendo na parte inferior aqui. Eu não vi muito bem que isso é mais bonito aqui. Deixe-me apenas mover isso para cima. Só para você saber, isso está sendo executado neste arquivo. Isso é uma ótima economia de tempo. Outro, deveríamos mudar essa tag de abertura. Se eu mudar isso para um, digamos, você pode ver que a tag de fechamento também atualiza e obtém suas extensões. Este é chamado de tag auto complete. No entanto, lá vamos nós. Então este top aqui. Novamente, muito útil, especialmente se seus arquivos estão crescendo em tamanho, então você não precisa encontrar essa tag de fechamento inferior na parte inferior da documentação. Você sabe, se você atualizar isso, a segunda tag bem, a tag de fechamento também será atualizada. Com isso, seu aplicativo está pronto e pronto para uso. Vejamos mais um código. E isso é realmente criar o aplicativo em si. 5. Componentes e JSX: Vamos falar sobre componentes e JSX. Primeiro de tudo, na tela, temos o componente de custo e um componente funcional. Ao longo deste curso, estaremos trabalhando com componentes funcionais por apenas queria mostrar a diferença entre os dois. Quando o react foi feito pela primeira vez, era bastante comum usar componentes de custo. Isso envolveria o balanço, a classe da palavra, o nome que você pode componente. Você teria que estender o componente ponto React. Você teria que incluir uma renderização para retornar o código HTML real. E se você estiver mudando de estado, você teria que incluir um construtor. Você teria que incluir super, ter que usar esta, a palavra-chave, esta para alterar um estado. Componentes funcionais. Estamos realmente acostumados se você estiver renderizando um componente ou algum código. Se você estivesse trabalhando com a mudança de estado, você teria que usar um componente de classe. Mas isso tudo mudou agora. Você pode usar ganchos para gerenciar o estado dentro de componentes funcionais. Acho a função Comparando. É um pouco mais fácil de entender. Mas isso pode ser diferente para alguém de de fundo de programação orientados a objetos, como Java. Mas acho que os componentes da função usam menos código. E, como eu disse, com a introdução de ganchos, agora você pode gerenciar o estado. Há menos código. Eu acho que é mais limpo, então estaremos trabalhando com componentes funcionais por toda parte. Não, o componente funcional é basicamente apenas uma função JavaScript declarando o nome constante Hayek ou fitter. E é apenas uma função de seta simples. E então estamos retornando o código HTML. Agora, na verdade, não há mais necessidade importar o React do react de importar o React do react porque esse aplicativo já sabe que este é um arquivo React. A única vez que iremos importá-lo dessa forma é quando começamos a usar ganchos mais tarde na linha. Mas, por enquanto, podemos remover isso. Isso torna o código ainda mais limpo. Isso pode parecer estranho. Colocar mock-up dentro do JavaScripts não mostra que você se acostumará com isso, mas isso é essencialmente o que o JSX é. Agora, toda a lógica e o trabalho para o rodapé disposto permanecerão dentro do arquivo js de ponto de rodapé. E é mais fácil gerenciar marcação e lógica no mesmo arquivo. React está focado em separar as preocupações mais do que qualquer coisa. Aqui embaixo, é aqui que exportamos o rodapé. E estamos dizendo que esse rodapé é a coisa padrão a ser exportada. Você pode retornar outros componentes ou funções aqui. Estamos apenas dizendo que há o rodapé que é o padrão a ser explorado a partir deste arquivo. Agora, dentro do retorno aqui, está a marcação, que é essencialmente HTML. Então, se você já está familiarizado com o HTML, você pode escrevê-lo da mesma maneira. No entanto, há alguns casos em que alguns atributos são nomeados de forma ligeiramente diferente. Por exemplo, se você quiser adicionar uma classe, digamos que a classe seja uma palavra reservada, como acabei de mostrar anteriormente. Você pode usar componentes baseados em classe no React. A classe se torna ClassName assim. E já meu candidato, está me dizendo ou sugerindo o nome da classe, Aqui está a coisa certa a usar. Portanto, lembre-se de usar o ClassName e não a classe. Além disso, se você estava trabalhando com o Forms, digamos criar, digamos um rótulo para um tempo mais suave do formulário para outra linha. Se você estiver vinculando isso a uma entrada, normalmente você teria quatro e em seguida, o ID da entrada. Quatro também é uma palavra reservada. Você precisa se lembrar de incluir HTML completo com CamelCase assim. Só é útil lembrar que isso foi removido. Ainda não adicionaremos nenhum estilo. Mas enquanto estiver no rodapé. Vamos mudar isso para uma etiqueta de rodapé. Então vou colocar o texto dentro de um parágrafo assim. E então vamos atualizar isso ainda mais para dizer algo como co-geração para David JC Lee, sou eu. E, em seguida, adicionaremos um símbolo de direitos autorais como este, e uma cópia comercial. Remova esses caracteres. Estou dizendo copiar ponto e vírgula 2022. Outra coisa a estar ciente é nesse retorno, se o seu HTML está começando a ficar bastante grande, o que está aqui, você pode, claro, mu é M em duas linhas separadas. É assim, mas lembre-se incluir parênteses em torno de tudo entre parênteses como este. Usando mais bonito, vou apenas formatar isso na imprensa Command a para selecionar tudo. Então eu vou segurar a opção Shift F para Formatar. E então vamos economizar muito mais limpo. Esse é essencialmente nosso rodapé completo. Vamos passar para outro componente. Você pode selecionar o diretório de componentes. Vamos criar um componente para a cotação. Então, a citação ab.js, porque este é apenas um arquivo JavaScript. E, em seguida, usando meus atalhos de extensão S7 ou a guia ICF, na verdade removeu a entrada porque ela já sabe que está reagir. Citação. Certo, ótimo. Já temos parênteses para várias linhas no retorno quando ele está retornando a maquete. Então isso é útil. Vamos apenas espaçar isso um pouco. Dentro da div. Vamos realmente usar uma tag blockquote e, em seguida, vamos apenas codificar alguma consulta. Esta é uma ótima citação que vou fazer por enquanto. E então, para o nome da pessoa que disse a citação, vamos colocá-lo em tags de parágrafo. Vamos colocar seu nome. Claro, quando eu estiver trabalhando com dados reais na linha, tornaremos isso dinâmico tanto a citação quanto o nome. Mas, por enquanto, estamos apenas juntando o componente base. Mais uma vez, vou pressionar Command a shift opção F, adorável em formatado. E esse é o nosso segundo componente filho. Agora, quando digo o componente Charles, isso significa que tanto a foto quanto a citação precisam morar dentro de um componente pai. Agora, o componente aparente é o app.js, que deveria ter sido criado quando você criou seu aplicativo React. Mais cedo. Nós apenas codificamos isso neste gerador de aspas. Enquanto aqui, vamos mudar para o maquete. Então, na verdade, vamos deixar aquele Davidson, mas vamos colocá-lo em uma seção, envolver tudo nesta seção assim. Eventualmente teremos a área de cotação aqui. Comente que eles estão entre a div, A seção, eventualmente teremos o rodapé aqui. Vamos apenas comentar essa matemática por enquanto. Abaixo da consulta, precisaremos um botão para aleatorizar cada grupo. Então, vamos apenas criar um botão lá. E vou escrever o texto gerado para o botão. Agora você pode ver que nada está mudando à direita. Isso porque precisamos iniciar o servidor. Basta iniciar o npm inter. Aguarde que isso carregue. Iniciando o servidor de desenvolvimento, eles são compilados com sucesso. E então podemos ver nosso botão Gerar. Antes de trazermos a citação e o rodapé, apenas gostaria de apontar uma dica útil enquanto já é dica é algo que você deve saber. Dentro do nosso retorno, temos essencialmente um invólucro. Então, é a seção. Se eu fosse colocar um segundo aqui. Segunda seção. Segunda seção, você pode ver que há linhas vermelhas em todos os lugares. Está reclamando , não gosta. Se passarmos o mouse sobre o texto, você poderá ver que as expressões JSX devem ter um elemento pai. O que acontece se você realmente precisar dois irmãos como essas duas seções? Bem, você precisa de algum tipo de invólucro. Funcionaria se você tivesse uma div externa. São ambos. Mas se você não quiser incluir um dia de apenas por causa disso, você pode usar um fragmento React e tudo o que é uma div vazia como esta. Você pode ver uma tabela vazia aqui e uma div de fechamento vazia aqui. Estes são Fragmentos do React. Felizmente, não precisamos de uma segunda seção. Eu só estava mostrando isso como um exemplo para que você possa se livrar disso. Livre-se desse fragmento de abertura e salve isso. Então. Vamos importar nosso componente de cotação que fizemos sempre cabeça. Abaixo desta entrada do CSS. Novamente, este CSS de ponto de aplicativo foi empacotado com seu aplicativo Create React. Talvez não precisemos disso, então vamos excluir isso por enquanto. Para importar um componente filho para o pai, podemos fazer cotações de entrada de. Então, como uma string, precisamos entrar em componentes de barra de pontos, aspas de barra. Certo, ótimo. Ele diz que a citação é declarada , mas seu valor nunca é lido. Tudo o que fazemos aqui é ter um componente de cotação de fechamento automático como este. Somente o nome do colchete do colchete de fechamento da barra do componente. Isso vamos salvar. E então, no ouvido direito, podemos ver que temos nosso cuidado com o coração feito bem. Vamos fazer o mesmo pelo rodapé. Rodapé de desculpe, barra de componentes de barra de ponto. Melhor. Fazendo o mesmo rodapé. Feche esse salvamento. E esse é o nosso rodapé. Importamos componentes filhos para nosso componente pai. Agora, o melhor de separar esses componentes é que você pode usá-los em todos os lugares porque eles são componentizados. Portanto, esse é essencialmente quo componente. Poderíamos dobrar, triplet, salvar. Lá vamos nós. Temos três desses. Portanto, esse é um componente bastante pode ser deixado em qualquer lugar dentro do nosso aplicativo e funciona de forma independente. Cada um comparando-os, gerencia seu próprio estado, seus próprios estilos e tudo assim. Então, pode ser deixado cair em todos os lugares enquanto estamos aqui. Antes que eu esqueça, se você quisesse parar seu servidor, você pode ver que isso ainda está sendo executado dentro seu terminal ou você faz é fazer Control e C. E então você pode ver que isso parou. E então, se eu fosse atualizar esta página, não há nada lá porque paramos o vendedor. Espero que tudo faça sentido. Agora vamos continuar trabalhando com prompts. 6. Props: Vamos dar uma olhada em trabalhar com propriedades ou adereços. Agora, primeiro deixe-me iniciar o servidor novamente. Faremos npm parado, clique em Enter. props são uma classificação útil para passar dados dinâmicos do proponente pai para seus vários componentes filho. O que você pode passar para baixo? Bem, quase tudo realmente. Neste exemplo, você não precisa me acompanhar. Estes são apenas alguns exemplos antes de começarmos a trabalhar com nossos dados reais. Então, o que vou fazer primeiro é dizer que queríamos mudar o nome no rodapé. Então aqui está nosso rodapé nos pais. Podemos adicionar um atributo, digamos nome. Você pode chamar isso de qualquer coisa que você quiser. Mas mudamos o nome. E então vamos mudar esse nome para dizer, Jim, vamos salvar isso. Estão dentro do nosso rodapé. Como recebemos a string de texto de volta? Bem, os parênteses aqui, o parâmetro precisa ser props. Adereços, jogo puxado no mesmo. É declarado que seu valor nunca é lido. Como atualizamos esse texto aqui? Vamos excluir isso. E então o que precisamos fazer é abrir alguns aparelhos encaracolados. E é assim que usamos JavaScript dentro deste JSX. Podemos escrever qualquer tipo de droga aqui, mas vamos trabalhar com as variáveis de adereços. Usamos props e , em seguida, paramos e seja qual for o nome do atributo aqui, que é chamado de nome de ponto aproximado. Vamos salvar isso e ele é atualizado para Jim aqui. Também podemos usar isso várias vezes na segunda foto e vamos mudar o Dave, é que a coisa honesta chamada Julie vai bater em salvar. E lá vamos nós. Temos o mesmo para dois componentes, usado três vezes, mas está aceitando três tipos diferentes de adereços. Agora você também pode passar variáveis, entrar no dentro do nosso aplicativo. Vamos criar um const. Vamos chamar esse nome de um. Vai salvar como uma string chamada Jamie. O nome um pode ser usado aqui em vez de Jim, mas não é uma string. Portanto, certifique-se de usar chaves encaracoladas. E vamos colocar o nome um lá dentro. Eu digo Save. E há Jamie. Remova os rodapés. O que mais podemos passar aqui? Vamos nos livrar do nosso nome um, vamos passar algum tipo de booleano. Então, teremos um verdadeiro ou falso. E o que podemos fazer é, digamos que o rodapé vai aparecer ou ocultar essa data. Vamos chamar nossa pontuação constante do ano. E definiremos isso como false porque vamos ocultá-lo no rodapé e vamos remover esse atributo. Digamos que vamos chamar isso. Isso é chamado de um ano. Então, em alguns aparelhos encaracolados, estamos passando nossa variável acima. Isso é chamado de ano, então isso significa que no rodapé, precisamos mudar isso de volta para o meu nome. Tão difícil de levar de volta. Como mostramos e nos escondemos? Este ano? Mais uma vez, precisamos abrir chaves encaracoladas. E vamos usar uma abreviação condicional. Então vamos passar para baixo adereços, ponto de adereços, apenas chamado ano. Acho que estamos apenas passando. Se o ano do ponto de adereços for igual a verdadeiro, mostraremos a string de 2022. Caso contrário, teremos apenas uma árvore vazia, cordas vazias, então vamos nos esconder de volta. Isso é apenas uma taquigrafia. O ponto de interrogação é basicamente um if, se verdadeiro, e esse códon é basicamente um outro. Vamos ver, vamos salvar isso e realmente o temos em nosso ano. Então, se voltarmos para nossos pais, vamos mudar isso para falso. Desculpe, mude isso para verdade porque queremos mostrar aqui. Vamos salvar isso e mostrar o ano. Isso é realmente útil para mostrar e ocultar coisas como conteúdo de texto ou até mesmo alterar nomes de classes devido ao estilo diferente. Vamos reverter isso de volta para quando tivemos o nome aqui. Sim, aproximadamente o nome aqui. Alteraremos isso de volta para nome, mudaremos isso para nome e, em seguida, vamos alterar o nome da nossa variável. Mudou o nome para Keith. Keith criou este gerador de consultas, bem, dentes de burro. Meu próximo exemplo é que você pode definir props padrão. Por exemplo, temos o nome do ponto de adereços aqui. Mas se Keith não estiver mais disponível, podemos fazer tubo duplo, o que significa todos os nomes de pontos de adereços ou agrupamento. Isso não mudou, isso ainda diz dentes porque Keith foi declarado aqui em cima. Se essa fosse uma string vazia, digamos que os adereços não estejam mais disponíveis. Então, remova isso. Então temos agrupamento aqui porque o nome está em branco. Estamos passando por um adereço de mistura. Dentro dos adereços, o nome do ponto de adereços não está disponível. Então, nos dedicamos a puxar. Isso também é útil para backup se você não tiver nenhum dado ou se não houver dados passados para baixo. Ok, espero que isso faça sentido. Não, podemos deixar isso ainda mais limpo. Imagine que você tem vários textos. Então você está tendo que escrever adereços repetidas vezes. Usamos a palavra adereços quatro vezes lá. Mas o que precisamos é de nome. Agora, podemos o que é chamado D estruturar esses adereços. Então, podemos apenas obter o nome e fazer isso. Exclua prompts novamente em chaves, podemos simplesmente escrever o nome da palavra. Apenas se livrar desses vários nomes. E isso significa que só precisamos do seu nome como gordo. Isso é muito necessário. Você é apenas poupança e mensagens de texto isso. Portanto, lembre-se de usar as chaves para se apossar de qualquer um desses prompts que estão sendo passados pelo pai. Mesmo que tenhamos usado o rodapé aqui e na verdade não precisamos passar nada para o rodapé. Então, vamos nos livrar disso. Vamos reverter isso de volta para o meu nome. Será seu nome. Claro, se você criou uma foto sua, diga isso novamente. Isso está de volta ao normal. Acho que acabamos com uma foto por enquanto até começarmos a estilizá-la. Portanto, estamos mais preocupados com a cotação gerada para o componente de cotação. Portanto, esse código é codificado e esse nome é codificado. O curso que queremos transmitir dados reais dentro do aplicativo. Vou criar seu objeto e vamos chamar esses dados iguais, e isso será um objeto. E a razão pela qual isso é um objeto é porque estamos passando para baixo. Bem, preciso de duas coisas aqui, a citação e o nome. Digamos que o nome seja igual a Joe Bloggs. E digamos que a citação esteja na string. Este é um tribunal incrível. Esses dados são o que gostaríamos de passar para o nosso componente de cotação. Vamos chamar esses dados. Estamos referenciando o objeto de dados acima. Citações internas, vamos começar com um nome aqui. Vamos excluir isso, algumas chaves encaracoladas. E antes que eu esqueça, devemos trazer adereços aqui. Ele está aceitando adereços e M, precisamos referenciar dados de pontos de props. E então, em nosso objeto, temos nome, nome. Vamos salvar. E lá temos. Joe Bloggs usaria o mesmo para que a citação precisasse do texto codificado, chaves abertas, adereços, dados de pontos, aspas de ponto. Esta é uma citação incrível. Ótimo. Ok, eu vou ser muito chato e apenas adicionar algumas citações lá para que pareça que uma cotação real melhorou. Lembre-se, podemos destruir isso. Vamos nos livrar dos adereços para fazer esse aparelho encaracolado mais limpo. Vamos chamar esses dados não. O que significa que podemos nos livrar dos dados do ponto de prop, nome do ponto de dados deve permanecer exatamente o mesmo. Estaremos trabalhando com várias aspas porque a ideia é pressionar Gerar e, em seguida, ela mostra uma cotação aleatória. Por enquanto, vamos apenas código rígido, digamos cinco citações diferentes. Então isso significa que isso não vai conter um objeto. Ele contará com cinco objetos, o que significa que devemos incluir isso em uma matriz. Então, o colchete quadrado torna o espaço mais fácil e claro do lado e tudo o que vou fazer é acertar uma vírgula lá e eu vou copiar isso cinco vezes. E então vou alterar o nome e a consulta de cada um. Então use qualquer texto que você queira usar, seja qual for o nome que quiser, onde quiser, você não precisa apenas ter cinco, você pode ter três onde você pode ter 100. Apenas certifique-se de que ele siga esse formato. Portanto, certifique-se de usar suas próprias cotações onde quer que você colete informações. Você não pode simplesmente escrever esse ato, mas eu só vou acelerar isso. Farei isso muito rapidamente e então voltaremos em breve. Ótimo. Se codificado por cinco aspas lá, cinco objetos dentro do formato de matriz de dados. Ou seja, isso é tudo arrumado. Agora você pode ver que isso não está preenchendo aqui. E isso porque agora estamos trabalhando com objetos dentro de uma matriz. Então, não sabe o que acabei de passar para baixo. Essencialmente, não estou passando um array. Portanto, a cotação final. Isso não faz mais sentido porque os dados são uma matriz, então ele não sabe qual consulta extrair dessa matriz. Vamos apenas puxar a primeira citação para baixo. Então, vamos fazer o colchete quadrado de dados 0. Por enquanto, diremos que isso está passando pela nossa primeira citação. Mais uma vez. Em breve mostrarei como mudar isso. Portanto, isso é dinâmico e compartilha citações e nomes aleatórios. Não, para fazer tudo isso, vamos começar a olhar para ganchos e ganchos nosso conjunto antes são uma ótima maneira de gerenciar estado e mudar os efeitos das coisas. Vamos passar por isso em seguida. 7. Introdução aos ganchos e useState: Vamos agora falar sobre ganchos e depois vamos nos aprofundar em nosso primeiro estado americano. Agora apenas explique algumas coisas e então vamos dar uma olhada em algum código. O que são ganchos? Como você pode ver aqui, os ganchos permitem que você use recursos encontrados em componentes baseados em classe. Agora podemos usá-los dentro de componentes funcionais, e são componentes funcionais que usaremos neste curso. Esses recursos incluem lógica com estado. Portanto, isso significa que você pode adicionar estados a cada componente de forma completamente independente e reutilizados de componente para componente. Para mim, usando ganchos em componentes funcionais, o código parece ser muito mais curto, mais simples e mais limpo, enquanto eles têm todos esses recursos encontrados em componentes baseados em classe. Porque o código é mais curto? Ou você acha que os ganchos têm uma curva de aprendizado mais rasa em comparação com o equivalente nas aulas, o que é ótimo quando você está aprendendo esse tipo de coisa pela primeira vez no React. ganchos só foram adicionados no React 16.8. Então sim, tipo de novidade na vida do React. Uma dica rápida. Não use ganchos com loops internos dentro de condições ou funções aninhadas. Você chamaria ganchos no nível superior do seu componente. Como meio tocado. E os ganchos evitam muita sobrecarga que as classes exigem, como criar instâncias de classe, como eventos de vinculação e criação de um construtor também. Agora, se isso não fizer sentido e tudo bem, agora vamos mostrar algum código. Então, primeiro, criarei um componente baseado em classe e criarei esse contador. Então, quando você pressiona um botão, aumente o número na tela em um. Então o que faremos é criar um componente funcional usando o gancho do Estado dos EUA para alcançar a coisa equivalente. E então você pode ver uma comparação com a quantidade de código e a diferença no código para obter a mesma coisa usando o gancho do Estado dos EUA. É assim que um componente básico baseado em classe se parece. Vamos apenas criar uma função de estado simples. Então, quando você clica neste botão, ele adiciona 12. Bem, então a Amazon lá no momento, mas mostrarei como isso parece em um segundo. Com aulas. Primeiro precisa importar o componente, precisará usar a palavra-chave class, o nome do nosso componente e temos que estender o componente. Portanto, isso já é mais longo que a primeira linha de um componente funcional. Se estamos atualizando o estado, precisamos incluir um construtor e um super. Então, para definir o estado, digamos que sempre o número padrão, precisaríamos usar o, esta palavra-chave, esse estado é igual. E, em seguida, um objeto que podemos chamar de nossa variável, digamos contar, e definiremos esse padrão de 0. Precisaríamos de uma função para incrementar o número. Vamos chamá-lo de incremento. E então, para definir o estado novamente, precisamos usar a palavra-chave this e usaríamos esse estado definido. Portanto, isso mudará o valor dentro de um objeto. Nossa variável de contagem precisaria ser atualizada para este estado de ponto, contagem de pontos mais um. Então, estamos pegando o valor original e atualizando-o por um de cada vez. Para usar a função de incremento no botão, usamos onclick. Então precisamos chamar esses incrementos de pontos. Então, para realmente fazer com que essa função de incrementos funcione, você tem que ligá-la também dentro do construtor, que é facilmente esquecido. Então, sim, isso está incluído ou necessário em componentes baseados em classe, você faria essa corrente igual a esses incrementos de pontos, ponto de ligação ponto isso. Quando você está aprendendo coisas como essa, especialmente em componentes baseados em classes, isso é bastante confuso. Há muito o que levar aqui. E não faz sentido imediatamente por que isso é necessário. Mas é. Mais uma vez, mostrarei como isso difere dentro de um componente baseado funcional usando ganchos. E, em seguida, para exibir um número, o número agora é essa contagem de pontos do estado do ponto. Vamos salvar esse número agora é um a um. Lá vamos nós. Está mudando o estado a cada vez. Ok, então muito incluído lá, cerca de 20 linhas de código. Agora vamos dar uma olhada no nosso gancho. O que vou fazer é apenas comentar a classe e comentarei no gancho. Certo, o número é nove minutos em branco. Ok, então como conseguimos o resultado equivalente dentro do componente base funcional usando o gancho Estado dos EUA. Primeiro, precisamos importar o estado dos EUA. Terceiro do React. Precisa importar seu estado assim. E então, como se parece o estado de uso? Inicialmente, precisaríamos declarar uma constante, o que seria igual ao seu estado trazido acima. E então dentro dos parênteses está nosso valor padrão, que é 0. Então, sabemos disso. E então o que acontece antes dos iguais. Então, como eu disse, é um const. E então precisamos destruir o que você afirma que nos dá. Existem dois parâmetros que devemos incluir. Na verdade, diz que atingiu. Ele espera que um valor ou retorne ao valor com estado e uma função o atualize. Então essas são as duas coisas. O valor é chamado de contagem, podemos chamar isso do que quisermos. E, em seguida, uma função para atualizar isso. Normalmente, a sintaxe convencional dessa função seria a palavra definida e, em seguida, o nome da variável, ou em CamelCase nesta corrente, neste caso, ela é definida contagem assim. Você não pode contar o set current, use state. Dentro do nosso botão, precisamos que incrementos função ou onclick, pelo menos onclick é igual. Então o que precisamos fazer é usar uma função de seta. Toda vez que você clica nisso, ele aciona a função e podemos usar o set current aqui. Então defina contagem. Podemos contar mais um. Então o número agora está atual. Não precisamos usar o, esta palavra-chave em qualquer lugar que possamos saltar de referência atual. Não há ligação da função. Podemos simplesmente fazer tudo na fila. Então, teoria, pressionar um atualiza o número sem atualizar a página. E veja o quanto isso é mais limpo comparado à nossa classe de componentes baseada em classe. Temos que incluir comparativo. Não há necessidade disso. O nome da função é muito mais simples. Não estamos estendendo o react, não estamos estendendo o componente. Não há uso do construtor aqui ou super. Não precisávamos vincular a função. Nós apenas usamos uma linha do seu estado aqui. Não há necessidade dessa função adicional. Não precisamos usar a palavra-chave, esta aqui. Podemos apenas referir a contagem como fizemos aqui. Você pode ver como economizamos tanta codificação aqui, apenas usando o gancho do Estado dos EUA. Ok, então vamos usar o estado dos EUA em nossa aplicação real, mas chegaremos a isso em breve. Vamos dar uma olhada em um outro gancho útil, mas usaremos o efeito de usuário resfriado na próxima lição. 8. hook do uso: O efeito dos EUA Hooke. Senhoras e senhores, usaremos o efeito US Hooke em nosso aplicativo. Usamos para buscar nossos dados locais, portanto, nossa variedade de cotações e facilidade. Na verdade, o Herc é ótimo para isso porque permite que você execute efeitos colaterais dentro dos componentes e isso é um efeito colateral. Portanto, isso é a busca de dados, como configurar uma assinatura e alterar manualmente o DOM dentro dos componentes do React. Vejamos alguns códigos agora para que eu possa mostrar alguns exemplos práticos do uso do gancho de efeito. Ok, então este é um aplicativo muito grosseiro. O que isso fará é atualizar o título aqui da guia. Quando você clica no botão, ele configurará o número no título e no título do documento. E isso só pode acontecer depois que tudo for carregado, depois que o comparativo tiver pensado. Isso não pode ser feito imediatamente porque estamos acessando o documento. Usamos efeito tão semelhante ao estado dos EUA, podemos trazê-lo em aparência de efeito importante nessas chaves encaracoladas. Como é o efeito das abelhas? Você pode escrever esse efeito. Em seguida, abrimos alguns parênteses e depois esvaziamos parênteses por enquanto. E então usaremos uma função de matriz e abriremos isso com algumas chaves. Ok, então eu disse que queremos atualizar o título do documento depois que tudo tiver meu título de ponto de documento igual, e então mudaremos a mensagem para algo como clicado. Então vamos apenas interpelar a corrente. Então, usando o estado dos EUA, que mostrei em uma lição anterior, para atualizar o contador por um. Você clicou em contagem, mas muitas vezes o padrão é 0. Você pode ver que ele está atualizado sobre o tópico clicado 0 vezes. Então, em teoria, se pressionarmos incremento, você verá esse número mudando lá em cima. Agora isso não funcionaria fora do efeito dos EUA Hooke. E isso porque, como eu disse, isso é um efeito colateral. O que estamos fazendo aqui, estamos atualizando o documento. Precisamos esperar que tudo seja carregado antes que isso aconteça. Agora podemos passar um segundo parâmetro aqui, que será alguns colchetes. O que isso diz ao componente é basicamente assim. Por padrão, esse efeito colateral do efeito de uso é executado tanto após a primeira renderização quanto após cada outra atualização após qualquer renderização na página. Então eu não fiz colchetes significa que isso só acontecerá uma vez. Neste exemplo, isso não é realmente útil porque podemos ver que estou pendurando incrementos. Não está mais atualizando a qualquer momento, porque tudo o que estou dizendo é apenas obter essas informações uma vez e nunca mais. Cenário em que isso é útil é quando você está buscando dados externos ou qualquer dado, na verdade, o que mostrará um exemplo muito em breve. Nesse cenário, você só queria reunir informações na única vez em que tudo diminui. Mas aqui queremos atualizar isso muitas vezes. Na verdade, podemos especificar quando queremos que isso seja renderizado ou mude. Vou colocar toda vez que essa contagem muda. Isso ignorará qualquer outra vez que a página for renderizada, mas somente se contar atualizações , então faça essa teoria. Se eu pressionar incremento agora, ele está atualizando novamente porque está reconhecendo que a contagem está mudando. E quanto a dados externos? Portanto, se quisermos obter alguns dados de uma API ou usar efeitos entrarem em jogo , então é um componente de dados externos get. Aqui estamos apenas listando arte de tarefas. Portanto, esta é basicamente caixa de texto de espaço reservado. Essas informações são provenientes dessa API externa. Você pode ver aqui com nosso estado dos EUA, isso é um monte de tarefas. Portanto, o valor padrão inicial é apenas uma matriz vazia. Desculpe, inicialmente não temos os dados, mas sabemos que serão uma variedade de tarefas ou uma matriz de texto. Então, no nosso efeito de usuário, aqui, apenas buscamos os dados e essa é uma função que estou chamando aqui. Como você pode ver, estou usando a matriz vazia. Isso só é resfriado uma vez na primeira renderização porque só queremos obter essa informação quando tudo for baixo, quando tudo estiver montado, apenas a única vez que estou usando assíncrono aguardar. Eventualmente, você pode esses dados, que é Jason. E então, quando tivermos a resposta, qual é uma variável dinâmica aqui, definindo as tarefas. Então, nosso estado dos EUA é a resposta. A resposta é uma carga de informações dentro de um array. E isso significa fazer o que é. Agora, causamos o mapeamento de resposta por meio de todas as tarefas porque é uma matriz. E então, em uma tag de parágrafo, estou apenas listando o título do item. Essa variável aqui pode ser chamada de qualquer coisa que quisermos. Podemos chamá-lo para fazer se quisermos importar o item, então estou apenas acessando o título do item e ele está exibindo essas informações aqui. Como essas informações, esses dados podem ser um arquivo massivo e massivo, encontrarão centenas e milhares e milhares de entradas, o que significa que não podem ter acesso a isso imediatamente. Temos que esperar por tudo para o Monte. No efeito colateral. Pode levar um segundo para carregar esses dados. E é por isso que estamos usando esse efeito. E então, quando estiver pronto e tiver acesso a todos os dados que podemos exibir. Ele usa o Effect se aplica ao nosso aplicativo e aos nossos dados. Onde mostrarei isso na próxima lição quando começarmos a conectar todos os nossos ganchos e usar nossos dados. Então, usaremos o estado dos EUA e você usará o efeito em nosso aplicativo na próxima lição. 9. Os dados e engatar as nossas: Agora aprendemos sobre o básico dos ganchos. Vamos realmente usar o estado dos EUA e usar o efeito e trabalhar com nossos dados de cotação reais aqui. Então, a primeira coisa que vou fazer é realmente mover esses dados para um arquivo de dados. Criamos esse diretório de dados dentro dos dados de origem que é apenas criar um arquivo js de ponto de dados. Por favor, acompanhe comigo, se puder. Vou copiar esses dados chegados. Veja se isso realmente quebra porque os dados não estão definidos, vamos colá-lo aqui. E não nos esqueçamos de exportar o formato dos dados em si. Certo, isso é exportado. Só precisamos importar data e eu importo, não se esqueça de chaves. Dados de dados de barra. Os dados de barra estão funcionando muito bem em seu próprio arquivo, então é mais fácil de manter. Novamente, se isso fosse um, 100 linhas ou mais do que faria mais sentido tê-lo em seus próprios dados, um arquivo. Então, no momento, estamos apenas codificando na primeira citação da nossa matriz. E estamos fazendo isso passando aspas datadas de tag para abrir o componente de cotação, você pode ver dados e, em seguida, o primeiro é 0, e essa é a primeira cotação. Mas gostaríamos de mudar isso quando você clica no botão. Estará atualizando o estado, o que significa que precisamos trazer estado de uso, novo estado. E então você pode ver que ele diz que você declara snippet, eu só vou clicar em Tab e preenchendo quase o que precisamos. Então vou chamar essa citação, então definir cotação, que precisa ser CamelCase. O que podemos fazer o equivalente à codificação rígida a primeira na matriz é apenas fazer dados. Então o estado 0 não está definido porque não tenho importância aqui em Fort direto do React. Ótimo. E então o que precisamos fazer é, em vez de apenas passar o tempo, todos os dados, só precisamos passar a cotação, citação é declarada aqui e passá-la aqui. Vamos quebrar porque o interior é bastante competitivo. preço de todos os dados em relação a isso precisa ser alterado. Para citar, não vale a pena trimestre. Note que estamos chamando dados de meus erros. Eu mudei esses bytes de dados, mas não precisamos mais dessa matriz excluída da citação e do nome. Lá vamos nós. Certo? Se eu fosse mudar esse valor padrão para um, então é ideal. Outras citações, Judy Smith, se chegarmos aos nossos dados, então sim, é a correta. O próximo na matriz que é codificado, essa é a nossa cotação padrão. Mas, em seguida, no botão, é claro que queremos clicar. Basta usar essa cotação definida para alterar o valor. Por enquanto, vamos apenas codificar um valor como digamos para os dados, para o próximo na matriz. Então, em teoria, ele deve mudá-lo para mim. Pressione Gerar. Lá vamos nós. Isso sempre será apoiado. Terceiro na matriz porque isso é o que o definimos aqui. O que realmente precisamos fazer é aleatorizar esse número aqui, porque a ideia é que você aperta Gerar e ele escolhe uma cotação aleatória de nossos dados já. Então, vamos descobrir um número aleatório. Vamos colocar isso em um const e vamos chamá-lo de número aleatório. Apenas usando JavaScripts padrão, precisamos utilizar pontos matemáticos aleatórios, que escolhe um número aleatório entre 01, então 0.10.2, etc. Mas então precisamos cronometrar isso pelo comprimento dos dados. Então, temos cinco citações aqui. Podemos fazer o comprimento dos pontos de dados. Isso significa que, mesmo se acabarmos com mais 100 e continuarmos adicionando a isso, comprimento dos pontos de dados sempre será o comprimento de nossos dados. Porque não queremos apenas um decimal, queremos que seja um número inteiro. Precisamos adicionar piso de ponto matemático. Certo? Esta é a nossa teoria dos números aleatórios. Acabamos de registrar um número aleatório. E vamos apenas inspecionar o que está acontecendo no console. Estamos recebendo 23340144. Estamos recebendo números aleatórios aqui. Agora, nossa explicação e logo por que isso está acontecendo duas vezes porque só queremos que isso aconteça. E então o que precisamos acontecer é, em vez de codificar isso, precisamos randomizar o número onClick. Então, vamos criar uma função aleatória. Vamos chamar randomizar. Só vou ser uma função de seta. A função simplesmente usaria a cotação definida. Você declara valores aqui onde se apossar dos dados. Mas então, em vez de um número codificado, estamos usando um número aleatório aqui. Então, em vez de na cotação do conjunto de chamadas padrão, podemos usar aleatoriamente assim. Vamos ver o que acontece. Por que isso não está mudando? Claro, precisamos usar o efeito dos EUA. Trazendo você use o efeito aqui. Basta excluir alguns desses valores. Exclua o valor entre colchetes. Então, deixaremos isso vazio porque só queremos obter os dados. A primeira carga. O que vamos fazer é chamar de efeito de uso interno randomizar. Agora você tem um problema? Quando clico em Gerar não está preenchendo continuamente as cotações. A razão é que quando definimos nosso número aleatório aqui só acontece os que acontecem. Claro, queremos obter uma cotação aleatória. Toda vez que algo muda na página, eles estão no primeiro carregamento quando a magnitude de tudo e onclick aleatoriamente a causa está ficando frio e usa um vetor que está correto, mas nós só precisa obter esse número de rodada ser preenchido em cada clique e depois cada teoria da agenda agora estão recebendo as diferentes citações. Excelente. E uma coisa que é útil fazer é se este fosse um enorme arquivo de dados de milhares de entradas, isso pode demorar um pouco para carregar quando você carrega a página pela primeira vez . Portanto, é útil ter algum tipo de carregamento de texto e arquivo de carregamento você usa para dizer ao usuário que os dados estão chegando. Efetue principalmente o que estamos fazendo aqui porque há dados normalizados para trabalhar. Quando você está trabalhando com aplicativos maiores. Isso é útil para saber. Podemos fazer isso com o estado de vocês também. Então, aqui em cima, vamos apenas criar o snippet de dados dos EUA e vamos lembrar que isso está carregando e, em seguida, o set está carregando o I. E então vamos definir isso como verdadeiro. Porque isso será verdade inicialmente quando estiver tentando obter os dados. Ele estará carregando os dados quando você carregar isso pela primeira vez, mas depois quando eles tiverem os dados e podemos dizer que está carregando de volta para false porque os dados foram recebidos. Mas o que fazemos com isso é carregar o valor. Bem, podemos usá-lo como uma condicional para mostrar ou ocultar determinado texto ou conteúdo. Este é um booleano para verdade. Em seguida, definimos como false quando ele obtém os dados. Portanto, não queremos mostrar essa cotação até que o carregamento seja concluído. Por baixo do H1. Para usar algum JavaScript, acabamos de abrir algumas chaves. Então podemos fazer é carregar. Então, se isso for verdade, então o que precisamos fazer? Vamos mostrar um parágrafo que diz citação, carregamento. Isso é bom por enquanto. Caso contrário, se não for verdade, se for falso e o aprendizado foi concluído. É aí que queremos essa citação que pode ficar aqui. Mesmo que eu atualize esta página, você simplesmente não verá isso porque é tão rápido. Vamos definir está carregando para false aqui, ponto de exclamação. Atualize a página e você pode ver que diz citação agora aprendendo, então é assim que seria reverter isso de volta. Lá, basicamente temos nossa configuração de gancho. Estamos usando um novo estado para definir uma cotação, para definir se estiver carregando. Estamos essencialmente usando o efeito do usuário para o efeito colateral, onde estamos obtendo um número aleatório e, em seguida, definindo-o para os dados. Então, tudo isso acontece depois que tudo for carregado na página. Podemos então usar o carregamento condicional para mostrar e ocultar conteúdo diferente. Passando nossa cotação para o nosso componente de cotação, OnClick, estamos aleatorizando o número aleatório e estamos aleatorizando a cotação para obter desses dados que estão em seu arquivo separado. Isso fará sentido, bom e arrumado, apenas usando os ganchos de símbolo. E, na verdade, porque estamos usando esse fato de usuário, podemos excluir esse valor padrão porque um enorme efeito no nó já está aleatorizando esse quarto. Todo tipo de nota que traz uma nova cotação, ótimo. 10. Teste: Testando, testando 123. Certo, aqui está o que vamos fazer. Agora, basicamente, concluímos a parte do React do trabalho. Podemos testar os dados, podemos testar nossos componentes. E a melhor maneira de fazer isso é se você estiver usando o Google Chrome é acessar a loja virtual de barra Chrome.google.com e procurar ferramentas de desenvolvedor React. Estas são as ferramentas oficiais de desenvolvimento porque são oferecidas pela Meta, que é o novo Facebook, que reage se você não soubesse disso. Você pode ver que eu já baixei isso para o meu cromo porque ele diz que foi removido do crescimento, mas sim, certifique-se de obter isso. O que isso lhe dá. Deixe-me fechar isso. Vou te mostrar como você ganha dois. E você chega a isso. Estamos em um aplicativo antes da sua hora para inspecionar. Abra suas ferramentas de desenvolvimento normais onde você provavelmente está familiarizado. E então você pode ver essa nova guia, saquê oponentes e perfil. Clique em Componentes. E ele é o nosso aplicativo. Então, temos nosso aplicativo, que é nosso componente pai. E você pode basicamente ver a hierarquia, senhor. Você pode ver que o aplicativo precisa componentes filho, aspas e rodapé. Clique neles, também o destaca no front-end também. E também é ótimo se formos cotados, sabemos sobre nosso componente atual, estamos transmitindo os dados da cotação. Você vê hélice, talvez seja do outro lado. Temos adereços. Podemos ver o aproximado sendo passado para esse componente principal. E, de fato, são dados que temos um nome e temos uma cotação. Se atualizarmos isso, gerar e, em seguida, atualizações em tempo real, você poderá ver como isso mudou. Podemos até testar nosso proxy para que eu possa escrever o que quiser. E lá vamos nós. Está atualizando no front-end. Tenho que fazer isso. Também podemos ver que há o estado que estamos declarando em nosso componente de aplicativo pai, que na verdade é que isso foi percebido por plantas erradas excepcionais, não muito excepcionais da minha parte. Ignore isso, por favor. Temos nosso estado aqui. Também temos um segundo estado. Portanto, esse é o nosso estado de carregamento. Atualmente, ele está definido como false. Se eu fosse marcar isso, há uma caixa de seleção todo o caminho para a direita aqui. Você pode ver em nossa cotação agora carregando. Portanto, é uma boa maneira de testar coisas que você pode interagir com seus dados reais e avisos aqui, ativando e desativando isso. E você pode ver também na hierarquia a ocorrência oculta o componente principal, que ele deve fazer quando estiver carregando está definido como true. Acontece o falso e está de volta novamente. Outra coisa a mostrar rapidamente, isso não faz parte das ferramentas reativas. Se formos para elementos, podemos ver que o rodapé tem uma classe de Rodapé. Lembre-se de que a classe é uma palavra-chave reservada em reacts. Se eu for para o meu código, você verá que no rodapé estamos usando o nome da classe corretamente. E então mostra que está compilando a palavra correta de classe aqui, o que é bom saber. Então, quando você estiver brincando com o aplicativo URN, sim, definitivamente baixe isso e tenha um clique e veja quais dados você está passando. Além disso, é uma boa maneira de depurar sua mão se você não estiver recebendo os dados, se você não estiver recebendo os adereços corretos passados, se o estado não parecer certo, este é o melhor lugar para ver o que está dando errado e onde você pode precisar consertar algo. 11. Como adicionar estilos: Certo? Bem, mas mais ou menos terminou com a parte React deste curso, que é a coisa mais importante. Nesta lição, vou adicionar alguns estilos que depende completamente de você se você quiser acompanhar ou assistir a esta lição, eu literalmente vou apenas adicionar alguns estilos CSS. Mas se você estiver feliz em adicionar o seu próprio e não precisar acompanhar. Sinta-se à vontade para pular esta lição, certo? Então, de qualquer forma, para aqueles que estão dentro do nosso diretório de estilos, dentro do código-fonte, vou criar um arquivo styles.css. Vamos continuar. No corpo. I'm just going to set a nice font family. Vamos para algo como Gilroy gostou dessa família da fonte. Vamos fazer Helvetica sans-serif para acabar com isso. O que podemos fazer é dentro do App, vamos importar estilos barra barra styles.css, ele depois de estilos. Certo. Vamos criar alguns estilos para a página. Ainda não criamos essa classe. Precisamos adicionar isso à nossa marcação. Mas, por enquanto, vamos apenas adicionar algum estilo para escolher um belo fundo verde, 70 aC para AD, sim, y nada. Então, vamos voltar ao nosso aplicativo. Vamos adicionar o nome da nossa classe à nossa seção. Não se esqueça do nome da classe e não da classe. Página K Existe o nosso verde. Vou alterar o nome dessa classe do aplicativo para contêiner. E então o que mais devemos mudar? Nosso está carregando texto, podemos parar isso como adicionar um nome de classe. Tudo apenas aprender é bom. Nossa citação, e vamos apenas colocar isso em uma nova linha para que possamos ver isso um pouco melhor. Eu vou realmente embrulhar essa citação em um nome de classe div do contêiner quart. Apenas execute o fato. O nosso rodapé estava olhando em nome fértil, tudo bem. Então, que tal nosso comparador queer? Bloqueou o parágrafo da palavra para o nome. Na verdade, vamos adicionar um nome de classe. Nome aqui. Neste ponto, eu encorajaria você a apenas ter uma bagunça com o Oregon College e já estamos em fundos e fazemos este aplicativo você seja dono do seu estilo, o próprio caminho de David. Portanto, é um pouco diferente. Meu. Dentro da página, quero que tudo seja empilhado um sobre outro apenas para ter certeza de que está acontecendo. Vou definir a exibição para flexionar lado a lado, mas então podemos mudar de direção para coluna melhor. E então vou definir a altura para ser 100% da altura da visão, ok, verde em todos os lugares, exatamente o que eu quero. Em seguida, o que devemos olhar? Temos um contêiner. Um contêiner. Também vamos fazer esse display flex. E novamente, vamos colocar isso em uma coluna, coluna de direção flexível. Quero colocar tudo centrado justificado no centro de conteúdo. Em seguida, a altura do recipiente. Vamos fazer a altura da visão 95. Agora no centro. Certifique-se de enviar para corretamente com a margem 0, a parte superior e inferior ou duas no meio. Está parecendo bom. Faremos uma largura máxima de 1200 pixels apenas para telas maiores. Então vamos definir uma largura de 80 por cento porque eu não queria passar por todo o caminho. Lá vamos nós. Isso é cheque. Lá vamos nós. Você pode ver a largura máxima funcionando bem lá. Vejamos nosso cabeçalho H1. H1. Vou tornar isso um pouco verde escuro, então um hash 2676. Vamos fazer um tamanho de fonte de 5050 pixels e bastante grande. Margin zeros 0100 escolhe um pequeno espaço na parte inferior. É assim que nossa cotação contém um x. eu quero fazer é adicionar um pouco de margem. Fundo de gerenciamento 50 pixels. A citação em si blockquote, centrada. Vamos nos certificar de que é branco. Então hash FFF, estilo fonte para torná-lo itálico. Espero que você possa ver como isso é útil para que isso seja atualizado em tempo real. Assim, podemos, em tempo real, afetar os estilos e vê-lo realmente funcionando e como ele se parece, o que é realmente útil. Margem e vamos mover isso. Imagine zeros à esquerda. Faremos um tamanho de fonte de 90 pixels. Bom e grande. Massivo, mas muito parecido. Tudo bem, então o nome abaixo, Joe Bloggs, nome da classe. Vou definir a cor para hash CA 755 C. Sim, bom tipo de cor laranja. Quase como eu pré-preparei essas cores. Incrível. Tamanho da fonte até 20 pixels. Maneira de torná-lo ousado ou 800. Seja bom. Na verdade, farei a transformação de texto em maiúsculas. Sim, Nice. Certo, estamos chegando perto. Em seguida, dê uma olhada no botão. Cor de fundo. Vou colocá-lo para um verde escuro 267, uma fronteira. Vamos nos livrar de 0. Cor do texto e torne-o branco. Vamos garantir que o cursor esteja ponteiro quando você passar o mouse sobre ele. Bom. Família de fontes para o botão. Na verdade, vamos roubar ou você tem aqui peso da fonte, negrito, 800. A largura é muito grande, então é uma largura máxima. 150 pixels. Precisa de algum preenchimento de 5015 pixels em torno de lacunas e boas, e faremos a transformação de texto. maiúsculas. Bom. Assim como adicionar um estado de focalização a este botão, o botão dois-pontos passa o mouse. Vou mudar a cor de fundo para ser branca. E mudaremos a cor do texto para ser o verde escuro. Basicamente, basta reverter tudo para 66 F. Parece bom. Acho que acabamos de colocar o rodapé no fundo aqui. Na verdade, não adicionei uma classe de rodapé a isso. Vamos usar essa classe de rodapé. Cor do texto. Vamos fazer isso cinza. Sim, tudo bem. E garantiremos que o texto se alinhe definido para o centro. Sim, está tudo bem. Isso fará isso procurando nosso texto de carregamento. Deixe-me ir ao aplicativo. O que faremos é definir como aprendendo como falso. Aqui está um ponto de exclamação, carregamento coordenado e veja, meu parágrafo tem o nome do carregamento. Então, vamos para estilos. Certamente não precisa ser para Francine. Aprender constantemente a cor pode ser branca. E faremos apenas um tamanho de fonte maior de seis pixels profundos aqui. Absolutamente bom. Basta reverter isso de volta. Salvar. Isso está parecendo muito decente. Sim, boa. Esse é o nosso gerador de código. Bom e simples. Mas trabalhar, parecer muito bom. 12. Como impulsionar seu trabalho: Agora é hora de implantar seu aplicativo fantástico, mas você acabou de construir para que o mundo inteiro possa vê-lo. E agora vou mostrar como é fácil fazer usando o Netlify. Netlify é uma ótima equipe e tem um ótimo serviço em várias ferramentas para criar e implantar aplicativos. Sim, tenho muitos recursos incluindo análises e testes divididos. A implantação é realmente ótima. E é por isso que usaremos o serviço de implantação do Netlify para implantar seu aplicativo. Vamos fazer tudo isso dentro do terminal aqui. Abra seu terminal. Dentro do aplicativo. Certifique-se de criar um aplicativo pronto para produção. Para fazer isso, vamos executar o npm run build. Como diz no terminal, criando uma otimização de compilações de produção. Então, isso vai compilar todos os nossos arquivos nesses arquivos de tamanho muito pequeno, o que é ótimo. E se olharmos para nossa estrutura de pastas, agora temos uma pasta Build. E isso é exatamente o que vai ser carregado. Então, essencialmente, ele criou um arquivo HTML de índice com todo o nosso trabalho. Há também uma pasta estática com nossos estilos e JavaScript. Isso está pronto para produção, construa nosso aplicativo. Basta clicar uma vez na tela. Então só precisamos instalar o npm, instalar o cliente Netlify, que é o Netlify space CLI, e faremos space dash g. Então ele é instalado globalmente. Se você encontrar qualquer área de permissão como eu tenho, basta escrever tudo de novo, mas coloque sudo na frente. Isso nos dá permissões de administrador para instalar o cliente Netlify. Sudo npm instale o Netlify. Cli, space dash g. Temos o cliente Netlify instalado. Vamos apenas claro que estava no terminal e, em seguida, é apenas um caso de escrever espaço Netlify, implantar. Pressione Enter. Certifique-se de que eu soletre direito. Faltando um T lá. Em seguida lo-fi, escrevi errado novamente. Elevador líquido phi. Implante. Novamente, por ter áreas de permissão faça o mesmo com o sudo na frente. Netlify. Não notifique a implantação. E então isso abrirá uma página que se parece com essa e você precisa fazer login no Netlify. Você pode usá-lo dependendo do que você tem é você tem GitHub ou Bitbucket, ou você pode simplesmente usar seu e-mail. Vou fazer login com meu GitHub. Já povoado para mim. Acabamos de entrar. Temos autenticação de dois fatores. Deixe-me resolver isso. Em seguida, autorizaremos a Netlify. Então, novamente, estamos apenas passando pelas etapas de segurança, autorizar. Acabamos de voltar ao nosso terminal. Vou selecionar esses dois oxigênios. Vou selecionar Creighton, esquecer um novo nome de site como opcional. Vamos apenas ser freelance, indefinidos. E então ele está me perguntando qual diretório publicar. Bem, é nossa pasta Build. Só vou escrever build aqui. Há a implantação do nosso trabalho, apenas esperar que o Go Live seja bem rápido e a implantação esteja ativa. Em teoria. Este URL que foi fornecido em nosso terminal. Vamos para aquela noite. Esse é o nosso aplicativo. Trabalhando conforme o esperado. Tudo isso também é gratuito e conseguimos implantar isso rapidamente. Espero que todas essas coisas do terminal façam sentido. É assim que você pode implantar o trabalho Netlify e ele é gratuito, o que é ótimo. Gráfico para seguir estas etapas, siga as instruções do terminal. Certifique-se de criar uma pasta de compilação que seja o destino que você precisa dizer à Netlify para examinar. Em seguida, como gerador de cotações final no URL fornecido no terminal. Agora eu recomendaria que se você chegou a esse estágio e tudo for bem-sucedido e você tem um link para compartilhar. Por favor, certifique-se de compartilhar seu trabalho no Skillshare. Ou você também pode incluir uma boa captura de tela, se quiser. Seria ótimo compartilhar seu URL. Então eu e outros alunos podem ver seu trabalho incrível e eu não recebi feedback. E enquanto fazemos isso, por que não damos uma olhada no trabalho do outro aluno. Boa. Você acabou concluir a criação de um gerador de cotações ou nenhum react e foi implantado na web também. Muito bem. 13. Para onde ir a partir daqui?: Poderia dizer que você criou seu aplicativo, aprendeu os fundamentos do React. Você é incrível, mas como você se torna mais incrível em reagir? Bem, essas são apenas algumas sugestões de mim mesmo sobre onde você pode ir seguida se quiser fazer alguma leitura adicional, mas com relação a reagir e então é mais intermediário, tipo avançado de coisas que eu acho que você deveria fazer é dar uma olhada em alguns outros ganchos. Há mais ganchos diferentes do que você declara em uso. Aqui estão alguns. Use href e use o contexto. Chegaremos àqueles em um segundo e muitos outros. Então, dê uma olhada na documentação do React. Em seguida, listei o roteador react porque seria ótimo para você saber, entender como você pode trabalhar com outras páginas. Então, acabamos de criar um aplicativo de página única. O que acontece se você tiver outras páginas que precisa lidar com o sistema de rotina, então você pode utilizar algumas estruturas. E Next, JS é uma estrutura React muito popular e tem alguns recursos realmente úteis para simplificar seu processo e otimizar para tornar mais completo e otimizar o aplicativo React. Outros ganchos usam ref que mencionei, e essa é uma ótima maneira de acessar elementos DOM. Neste exemplo, usamos href aqui. Inicialmente é nulo. Adicionamos isso a uma constante chamada elemento de entrada. E na própria entrada estamos usando REF para elemento de entrada. Portanto, esse elemento de entrada agora é um referenciado. Então, quando clicamos no botão, no botão, clique aqui, esta é a função. Temos o elemento ponto de entrada, a corrente escura de referência, foco escuro. Então, estamos adicionando foco a esse elemento. Acessamos este elemento DOM com use ref, use contexto. Então, como escrevi aqui, ele é usado para criar dados comuns que podem ser acessados em toda a hierarquia de componentes devem ser destacados porque essa é a coisa mais importante sem passar a paroxetina manualmente para cada nível. Então imagine que você tem crianças cinco níveis abaixo. Então, quando nosso aplicativo, nosso aplicativo, desculpe, tivemos um dos pais e dois filhos em um nível abaixo, mas imagine se houver mais filhos, netos, bisnetos, os níveis continuam diminuindo. Você não quer continuar passando pela escola Prop todo o caminho para baixo. Vou ficar muito chato. Você pode usar, usar contexto ou criar contexto, o contexto no nível pai. Então, neste exemplo, eles estão usando temas, sistema hey ou sistema de cores para claro e escuro. E então você envolveria o aplicativo com este tema, provedor de contextos constantes passando por seus valores e depois com a criança. Portanto, isso pode ser qualquer nível para baixo, em vez de passar as colheitas até o interior da criança, qualquer criança, você pode usar esse contexto. Escolhemos uma constante chamada tema e, em seguida, você só tem acesso a esse contexto ou plano de fundo. Pense em primeiro plano. Este tema está sendo acessado pelo pai. Mencionei roteamento. Dê uma olhada na documentação oficial que está aqui. O URL é apenas uma coleção de componentes de navegação que podem ser usados em seu aplicativo. Então, dê uma olhada nisso se você quiser trabalhar com várias páginas em suas estruturas de aplicativos, eu mencionei o Next JS. vez, dê uma olhada na orientação eficiente do Dr.. Ele tem muitos, muitos recursos excelentes, renderização estática e no lado do servidor para um bom desempenho, empacotamento inteligente, suporte completo a TypeScript, pré-busca rude e roteamento. Um particularmente parecido no próximo e o torna tão simples. É quase como um sistema de arrastar e soltar, no sentido que você teria um diretório para páginas e arrastaria, você as comparará ou páginas nesse diretório e fonte torcendo para você mais ou menos. Sim, agradável e fácil. Ele também vem com a otimização de imagem e muitos outros recursos. Então, uma vez que você tenha a cabeça reage anualmente confortável, próxima geração x valeria a pena dar uma olhada. 14. Resumo e razões por que você é incrível: Muito bem. Você fez um trabalho incrível passar todo o caminho neste curso e criar seu próprio gerador de cotações usando as técnicas mais recentes que você aprendeu. Certamente recursos importantes do React, incluindo JSX, props, hooks, gerenciamento de estado e testes, só para citar alguns. Ser um desenvolvedor front-end e ter conhecimento dos fundamentos modernos do React é um conjunto tão útil de habilidades para ter, não importa em que nível você esteja, seja júnior, médio ou sênior. React ainda é a biblioteca JavaScript mais popular do mundo. Portanto, o fato de você ter criado um aplicativo React de página única coloca você na parte superior do espaço do desenvolvedor web front-end. Parabéns a você. Agora você pode pegar essas habilidades e usá-las em seu trabalho futuro? Finalmente, eu só queria agradecer muito por não apenas se inscrever neste curso, mas também por completá-lo. Sem o seu apoio, professores como eu não seriam capazes de criar conteúdo como esse. Então, realmente, muito obrigado. Se você gostou desse curso, e eu realmente espero que você tenha gostado, significaria muito para mim se você pudesse tomar um tempo para deixar um comentário. Eu li todos os comentários que recebo e levo qualquer comentário que você possa deixar. Assim, você pode continuar melhorando minhas lições e continuar fazendo os cursos que achar úteis. Então, com isso dito, muito obrigado novamente, você é incrível. noite vai em frente e código.