Curso Para Iniciantes Reagir Js Para Avançar (Aprender Fazendo | Ehizeex Tech | Skillshare

Velocidade de reprodução


1.0x


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

Curso Para Iniciantes Reagir Js Para Avançar (Aprender Fazendo

teacher avatar Ehizeex Tech, Information Is Power

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.

      Tudo sobre o curso React Js

      2:59

    • 2.

      2 O que exatamente é o React js?

      6:08

    • 3.

      3 componente

      4:06

    • 4.

      4 Instalação de ferramentas (Node js, vs código, google chrome)

      5:13

    • 5.

      5 instalação reaja

      4:56

    • 6.

      6 Placa de caldeira react

      3:08

    • 7.

      7 Como reagir funciona sob o capô

      9:51

    • 8.

      8 Introdução ao jsx

      9:45

    • 9.

      9 comentário em jsx

      2:19

    • 10.

      10 tipos de componente

      3:21

    • 11.

      11 Criando nosso primeiro componente funcional

      4:40

    • 12.

      12 Tipos de exportação

      3:49

    • 13.

      13 adereços

      9:18

    • 14.

      14 Props.children.

      4:47

    • 15.

      15 adereços de imutabilidade

      1:11

    • 16.

      16 adereços de destruição

      2:58

    • 17.

      17 Função como adereços

      12:15

    • 18.

      18 Estado de reagir (useState)

      6:06

    • 19.

      19 manipulação de eventos

      5:26

    • 20.

      20 Rendimentos condicionais

      5:24

    • 21.

      21 Método de Mapa (Renderização da lista)

      18:17

    • 22.

      22 adereços chave exclusivos (mapeamento)

      4:30

    • 23.

      23 css regulares

      10:04

    • 24.

      Módulos de 24 Css

      6:21

    • 25.

      25 Entrada de formulário (componente controlado)

      11:52

    • 26.

      26 Fragmento reage

      12:06

    • 27.

      Introdução aos Ganchos

      4:35

    • 28.

      27 useState estatais

      7:33

    • 29.

      28 estado de atualização com base no valor do estado anterior

      9:42

    • 30.

      29 Objeto como variável de estado

      6:56

    • 31.

      30 Array como variável de estado

      9:06

    • 32.

      31 Organizar o código

      2:12

    • 33.

      32 useEffect Introdução

      4:46

    • 34.

      33 Componente fez montagem e atualização

      6:53

    • 35.

      34 Efeito de execução condicional

      7:26

    • 36.

      35 efeito limpar a função

      7:18

    • 37.

      36 Componente desmontará

      7:18

    • 38.

      37 mensagens múltiplas

      9:30

    • 39.

      38 Botão clique id

      4:12

    • 40.

      Introdução à API do contexto

      4:34

    • 41.

      39 Implementar o contexto

      10:40

    • 42.

      40 useContext para múltiplos contextos

      4:10

    • 43.

      41 useReducer redutor

      11:51

    • 44.

      42 useReducer do Redutor e objeto de ação

      12:13

    • 45.

      43 múltiplos useReducer

      4:13

    • 46.

      44 useState e useReducer

      13:05

    • 47.

      45 useState do Estado

      11:30

    • 48.

      46 useReducer DataFetch

      10:17

    • 49.

      47 useCallback de volta

      17:58

    • 50.

      48 useMemo do Memo

      13:45

    • 51.

      49 useRef Ganchos

      4:56

    • 52.

      50 useRef Hooks Timer

      7:07

    • 53.

      51 Edifício Yum Eat Website (reage installation)

      2:57

    • 54.

      52 Limpar a placa da caldeira

      2:33

    • 55.

      53 Criar componentes

      4:00

    • 56.

      54 Instalação do Tailwind

      5:27

    • 57.

      55 Componente TopNav

      21:18

    • 58.

      56 Nav lateral

      8:56

    • 59.

      57 SideNav Design de menu

      11:55

    • 60.

      58 SideNav Toque final

      2:31

    • 61.

      59 Componente em destaque

      20:05

    • 62.

      60 componente de entrega rápida

      8:46

    • 63.

      61 componente superior da seleção

      25:04

    • 64.

      62 Componente para refeições

      19:33

    • 65.

      Chave de componente para refeições

      2:38

    • 66.

      64 botões de classificação

      10:41

    • 67.

      65 Categorias de tendência

      8:14

    • 68.

      66 Categoria tendência contagem baixo

      8:42

    • 69.

      67 Componente do rodapé

      8:25

    • 70.

      68 Testes e fixação

      8:25

    • 71.

      69 Clone da Netflix (Criar aplicativo do React

      3:18

    • 72.

      70 Componentes e páginas

      3:26

    • 73.

      71 Configurando as rotas

      5:44

    • 74.

      72 Componente Reutilizável da Imagem Funcional

      7:33

    • 75.

      73 Componente reutilizável do cabeçalho

      7:58

    • 76.

      74 Página de inscrição

      22:53

    • 77.

      75 Login

      14:39

    • 78.

      76 Correção de login

      2:06

    • 79.

      77 Configurando o Firebase

      6:02

    • 80.

      78 CreateUsers

      11:53

    • 81.

      79 Autenticação de login

      11:58

    • 82.

      80 OnScrollEvent

      5:36

    • 83.

      81 Componente TopNav

      9:30

    • 84.

      82 CSS globais

      1:15

    • 85.

      83 TopNav Css

      12:33

    • 86.

      84 Logout

      3:10

    • 87.

      85 componentes de herói

      13:32

    • 88.

      86 Margem consistente

      1:32

    • 89.

      87 Componente do VideoPlayer

      7:05

    • 90.

      88 MovieCard

      13:07

    • 91.

      89 css de cartão

      12:20

    • 92.

      90 Chave Api

      7:10

    • 93.

      91 Kit de ferramentas Redux

      6:54

    • 94.

      92 gêneros de fixação

      7:44

    • 95.

      93 Fetches Filmes

      18:33

    • 96.

      94 Estado global

      2:42

    • 97.

      95 Pare o laço infinito

      1:12

    • 98.

      96 filme renderizado na tela

      13:13

    • 99.

      97 Componente de filme para estilo

      7:25

    • 100.

      98 Otimização de desempenho

      3:39

    • 101.

      99 Controle deslizante

      9:59

    • 102.

      100 Implementando o Slider

      6:13

    • 103.

      101 Projeto do Painel (Criar aplicativo do Reato)

      2:34

    • 104.

      102 limpando a placa da caldeira

      3:22

    • 105.

      103 Entendendo o fluxo

      7:26

    • 106.

      104 Componente TopNav

      9:07

    • 107.

      105 TopNav Css

      11:10

    • 108.

      106 Componente SideNav

      14:21

    • 109.

      107 Side Css

      6:42

    • 110.

      108 Componente do artigo em destaque

      11:23

    • 111.

      109 Item em destaque Css

      8:30

    • 112.

      Componente de 110 gráficos

      12:25

    • 113.

      111 Gráfico Css

      2:31

    • 114.

      Configuração do estilo 112

      1:11

    • 115.

      113 componentes totais da exposição

      12:06

    • 116.

      114 Display de estilo total

      8:35

    • 117.

      115 Componente do widget do pedido

      13:04

    • 118.

      116 Widget de ordem para estilo

      8:43

    • 119.

      117 Componente de widget para membros

      8:15

    • 120.

      118 Styling O Widget para membros

      8:50

    • 121.

      119 implementando as rotas

      8:55

    • 122.

      120 tabela da lista de usuários

      11:05

    • 123.

      121 Refactoring

      2:09

    • 124.

      122 adicionando dados personalizados

      8:47

    • 125.

      123 Botão de Excluir

      6:25

    • 126.

      124 Perfil do usuário

      16:51

    • 127.

      125 Css do perfil

      16:34

    • 128.

      126 Criar rota do usuário

      3:45

    • 129.

      127 Criar componente do usuário

      13:25

    • 130.

      128 Criar Css do usuário

      9:47

    • 131.

      129 Componente da lista de produtos

      2:55

    • 132.

      130 Design de lista de produtos

      11:27

    • 133.

      131 Lista de Produto Css

      4:55

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

192

Estudantes

--

Sobre este curso

Sobre este curso

Bem-vindo ao Reagir para iniciantes, um curso projetado para ensinar React.js a desenvolvedores da web, mesmo que eles nunca tenham escrito nenhum código React.js antes.
Ninguém será deixado para trás nesta sessão enquanto começarmos desde o início!
Como o React combina HTML e JavaScript, pode parecer estranho escrever no início, mas mostrarei como lembrar quando escrever JavaScript e quando escrever HTML (ou o que é conhecido como JSX).

Reaja a sintaxe, importando de outros arquivos, componentes, divide componentes em novos arquivos e importá-los, estendendo componentes, propriedades dos componentes e estado, clique em eventos e como incorporar uma solicitação de API quando um botão for apertado será coberto neste curso.

Se isso parecer complexo e intimidador, não se preocupe; eu mostrarei tudo o que você precisa saber sobre o React.js para que você possa começar a usá-lo agora.

Por que aprender React.js:

Você pode criar páginas e aplicativos da Web dinâmicas e responsivas com o Reage da estrutura JavaScript. Seu JavaScript pode querer fazer algum tipo de ação quando um usuário digitar ou clicar em algo. Isso é mais simples de escrever e manter graças ao reagir. Além disso, ele pode ser estendido, permitindo que você crie uma pequena quantidade de código uma vez e reuse em toda a placa para evitar ter de escrever código o dia todo.
Além disso, o React é uma habilidade que está em alta demanda. React é usado por muitas startups, grandes corporações e empresas de desenvolvimento. Ele permite que eles construam interfaces de usuário incríveis, como a coleção de filmes da Netflix.
JavaScript de baunilha pode ser usado para construir qualquer coisa que possa ser construída no React, no entanto, o React torna simples de manter e fácil de

Quem usa React.js:

Hoje em dia, quase todos usam o React. Quer seja um site completo como a Netflix ou apenas uma pequena seção de uma com lógica complexa. Hoje em dia, o React é escrito por praticamente todos e seus animais de estimação. E, por esse motivo, o aprendizado é crucial.

Sobre o professor:

Sou seu professor, Edubaba Ehizeex. Desde 2015, tenho instruído outros a codificar como fazer. Dezenas de milhares de estudantes só na Skillshare estão entre as centenas de milhares de alunos que instrui e treinei.
Como instrutor de programação web, consegui garantir uma posição de destaque na comunidade de desenvolvimento.
Hoje vou ensinar-lhe o React.js. Não faz mal se você nunca escreveu um reato; eu guiarei você sobre a curva de aprendizado. Se você nunca desenvolveu o React, você DEVE primeiro se familiarizar com o JavaScript. Então, se você não estiver familiarizado com o JavaScript, aguarde antes de iniciar este curso.

  • Durante todo este curso, vamos criar um totalmente funcional
  • Site da Netflix (clone)
  • Painel profissional
  • Site da receita
  • Aplicativo de questionário
  • Site do Portfólio Profissional para mostrar seus trabalhos.

Finalmente, vamos implantar todo o projeto no servidor para que você possa compartilhar os links com seus empregadores e seus patrocinadores.

Conheça seu professor

Teacher Profile Image

Ehizeex Tech

Information Is Power

Professor
Level: All Levels

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. Tudo sobre o curso no Js no React: Dê uma olhada neste lindo site. Tudo é codificado manualmente com React js usando uma estrutura CSS chamada tailwind. Ele foi projetado com cuidado e profissionalismo para funcionar em todos os dispositivos. E esse lindo clone da Netflix? Não faça como este incrível aplicativo de painel de controle de reações. Dê uma olhada neste site de portfólio profissional atualizado do React js. E aí, seria incrível se você soubesse exatamente como criar e codificar qualquer site do zero. É exatamente aqui que eu entro. Olá, bem-vindo e muito obrigado pelo seu interesse no meu novo React js. Porque para iniciantes, meu nome é, aqui está x e eu vou ser seu instrutor neste curso. Neste curso, começaremos do zero para aprender e entender os conceitos básicos. Reaja. No final, você estará bem equipado para criar aplicativos web complexos usando o React j. Vamos começar instalando as ferramentas necessárias para trabalhar com o React years. E depois disso, criaremos nosso primeiro aplicativo React. Portanto, você não precisa se preocupar , simplesmente porque eu vou segurar sua mão e orientá-lo os fundamentos que são os pontos mais delicados da reunião do React js. E, assim como nosso conjunto de instâncias de bits, se você não consegue explicá-lo de forma simples, você não o entende bem o suficiente. Meu objetivo neste curso é explicar, reagir de forma simples para que todos entendam bem o suficiente. Portanto, vamos tratar de todos os conceitos básicos do React, incluindo tópicos avançados, como quem olha. Na verdade, será uma série completa. E ao final deste curso, você estará bem equipado para criar aplicativos web complexos, como o clone do Netflix, o aplicativo React the Dashboard, aplicativo de receitas de alimentos e site profissional de portfólio React js de alto nível, que você pode usar para mostrar seus trabalhos para seus clientes ou empregadores, incluindo suas famílias e amigos. Sem mais delongas, junte-se a mim e vamos começar. 2. 2 O que exatamente é React js?: O que exatamente é o react e por que o usaríamos? React JS é uma biblioteca JavaScript declarativa, eficiente e flexível para criar interfaces de usuário rápidas e interativas. Eu quero que você sublinhe esses pontos-chave. Interfaces de usuário declarativas da biblioteca JavaScript. Antes de prosseguirmos, quero corrigir uma impressão. O React js não é uma estrutura. É uma biblioteca. E o propósito para o qual essa biblioteca foi criada é criar interfaces de usuário interativas, que simplesmente implica renderizar a visualização e garantir que a visualização esteja sincronizada com o estado. Essa é a única coisa que ele porta. E funciona perfeitamente bem. Portanto, o react não tem uma solução embutida para lidar com chamadas HTTP, roteamento e outras funcionalidades. No entanto, podemos lidar com todas essas funcionalidades instalando bibliotecas externas. Por exemplo, se você implementar um botão clique para redirecioná-lo do Componente a para o Componente B. Você precisa instalar uma biblioteca externa chamada React Router Dome. Outro ponto importante é que o React js é declarativo. E esse paradigma simplesmente implica você reaja o que quiser escrevendo código. E com a ajuda da biblioteca Reactome, react atualizará e renderizará com eficiência apenas o componente real quando seu estado mudar. Tudo bem, então o React terá uma forma abstrata. Elas são senhoras? E facilitar a criação de uma interface de usuário interativa e complexa? E agora a pergunta é: por que aprenderíamos a reagir? E qual é exatamente a vantagem no setor de tecnologia? O ponto número um é a demanda do mercado. Ao conferir a tendência do Google, você perceberá que o React js está dominando o setor de tecnologia em termos de biblioteca ou estrutura para a construção de interfaces de usuário. Se você quiser expandir sua oportunidade como desenvolvedor de front-end, React js é uma das melhores ferramentas que você pode adicionar à sua caixa de ferramentas. O ponto número dois é o alto desempenho. React usa apenas algumas técnicas inteligentes para minimizar o número de operações dispendiosas de cúpula necessárias para atualizar a interface do usuário. que, por sua vez, permite que os desenvolvedores criem um aplicativo web que pode alterar os dados ao longo tempo sem precisar recarregar a página. E, por favor, tome nota disso. Tudo bem, então ele permite que os desenvolvedores criem um aplicativo web que pode alterar os dados ao longo do tempo sem precisar recarregar a página. Deixe-me rapidamente te dar uma metáfora. Por exemplo, um de seus amigos postou a foto dele no Facebook. Então você abre a foto e, em seguida, dá uma curtida imediatamente. Você dá a imagem da mesma forma. O LikeCount será incrementado mesmo sem precisar recarregar a página. E essa é uma grande vantagem das cadeiras OU portões React. Então, meio que reage às mudanças. Mas, embora não seja totalmente reativo em termos de comunicação com o banco de dados, mas com a ajuda do redox e de outras ferramentas de gerenciamento de estado, você pode fazer com que o aplicativo inicialize com o react para ser completamente reativo. O ponto número três é uma forte equipe de engenharia. O React é criado e mantido pela Mehta. Portanto, quando uma empresa como a Metta usa reacts para criar e gerenciar seu próprio produto, você pode ter certeza de que o React js não morrerá tão cedo. No entanto, alguns dos maiores aplicativos do mundo foram construídos com o React. Aplicativos como Netflix, PayPal, Facebook, Instagram, Dropbox e muito mais. Portanto, neste curso, Netflix é um dos aplicativos que vamos criar do zero até o estágio final de implantação. E, claro, Lenin, como construir esse projeto será uma grande vantagem para você. Parece bom, certo? Linda. Outra vantagem é sua grande comunidade e popularidade. O React js tem uma comunidade muito grande. Então, sempre que você tiver problemas, você tem milhares de artigos e bibliotecas na Internet que o ajudarão. Assim, você pode configurá-lo no Stack Overflow, na escola W3 e muito mais. Tecnicamente, as inicializações de aplicativos com o React seguem a abordagem de arquitetura baseada em componentes, que simplesmente implica reclamações, são um dos componentes básicos do aplicativo React. E agora a pergunta é: o que é um componente? A preocupação? Na próxima palestra, discutiremos isso em detalhes. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 3. 3 componentes: Componentes. O componente é uma parte isolada da interface de composta para criar interfaces de usuário complexas. Em outras palavras, ele representa uma parte da interface do usuário. site tradicional pode ser dividido no componente de cabeçalho, mas em uma navegação lateral do contêiner e nos componentes do rodapé. Certo? Então, deixe-me torná-lo mais limpo. Dê uma olhada neste site de portfólio. E com certeza, esse é outro grande projeto que vamos construir neste curso. Agora, vamos entender a estrutura e como ela foi vista. Este site de portfólio é dividido em um segmento isolado menor chamado componentes, que inclui o componente doméstico. E, novamente, o componente doméstico é dividido em partes menores, que incluem o componente do cabeçalho, os componentes do perfil e, por último, a alimentação do perfil. Portanto, temos o restante dos componentes, como os componentes Sobre mim, currículo, depoimento e o componente entre em contato comigo. Então, todos esses componentes aninhados estão agrupados em uma empresa raiz, nós tecnológicos. O componente root é o componente padrão de cada aplicativo React. Portanto, a responsabilidade dos componentes raiz é servir como um contêiner para todos os outros componentes que serão criados ao criar o aplicativo React. Na verdade, chamo esse componente de mãe de todas as empresas. E, a propósito, essa é minha opinião pessoal. Então, ao examiná-lo de perto, você perceberá que cada um desses componentes define apenas uma seção da interface do usuário. E toda essa seção é então reunida para formar todo o aplicativo. Tecnicamente, se quisermos representar esse aplicativo em uma árvore de componentes, teremos no topo, o componente do aplicativo, que são as empresas raiz, certo? Então, abaixo, teremos os componentes domésticos. E dentro dos componentes domésticos estão o perfil do cabeçalho, o pé do perfil, nossa empresa. E então temos o componente pilar, currículo, depoimento e componentes de contato comigo. Então, em resumo, o componente nos permite dividir nosso aplicativo em segmentos menores encapsulados, que podem então ser compostos para tornar a interface de usuário mais complexa. Técnicas mais simples. No momento da gravação, aplicativos como o Facebook tinham mais de 30.000 empresas. Portanto, o tamanho do aplicativo determina o número de componentes a serem usados. Uma coisa boa sobre o componente é que os componentes são reutilizáveis. Portanto, no React js, um componente reutilizável é uma parte da interface do usuário que pode ser usada em várias partes do aplicativo para criar mais de uma instância de UI. Então, em um termo simples, isso significa que um componente pode ser usado com propriedades diferentes para exibir informações diferentes. Certo? Então, isso é tudo por enquanto. Na próxima palestra, prosseguiremos com a configuração e instalação. Mantenha o foco e sempre tome cuidado. 4. Instalação de 4 ferramentas (Node js, vs código, google chrome): Nesta palestra, instalaremos as ferramentas necessárias para trabalhar com o React js, como o Node.js. O Visual Studio Code não é como o Node.js nenhum navegador de sua escolha, mas preferencialmente o Google Chrome. Então, vá rapidamente para o Node js.org. Aqui está o endereço. Então, aqui, vamos baixar e instalar a versão estável mais recente. Eu já o tenho na minha máquina. Mas para ensinar pimentas, preciso baixá-lo e instalá-lo junto com você para maior clareza. Então, ao observar a tela, você verá duas versões diferentes. Então, por favor, não baixe esta versão. Você sabe por quê? É simplesmente porque ele vem com complexidades extras que você talvez não consiga descobrir. Então, vamos fazer o download do LTS. Aqui, foi retirado da tela? Vou apenas clicar para fazer o download. O motivo pelo qual estamos instalando o Node.js é para usar o pacote MPM para instalar bibliotecas de terceiros. Download realizado com sucesso. Aberto. Vamos continuar. Você pode decidir ler o contrato de licença do software. Mas para mim, vou continuar nosso acordo. Vamos continuar. E por último, temos que clicar no botão Instalar. Aqui, não é? Claro, se sua caneca, isso definitivamente apareceria. Então você só precisa digitar sua senha. E se você estiver no Windows, será uma instalação simples. Portanto, o software de instalação oculto, não a instalação do GS, está em andamento. E isso definitivamente levaria algum tempo. Então, eu só tenho que acelerar a palestra. Node.js instalado. Bem sucedido. Vamos fechá-lo. Certo, então você pode decidir mantê-lo ou movê-lo para a viga. Mas para mim, vou ficar com ele. Agora vamos abrir o terminal. Pressione e segure a tecla de comando no Mac e toque na tecla de espaço. Então, vamos procurar um terminal. E aqui está. aqui, temos que verificar a versão do node que acabamos de instalar. Node dash V, pressione a tecla Enter no seu teclado. E essa é a versão de um cabelo. Feche a terminologia. A melhor solução é instalar o editor de código. E o editor de código que vou usar neste curso é o VS Code. Sinta-se à vontade para usar qualquer editor de código de sua escolha. Mas para mim, o VS Code é meu favorito. E eu sugiro fortemente que você use o código VS para não poder me acompanhar no futuro. Role para baixo e vamos fazer o download. Foi retirado da tela. Temos para Windows e, na borda direita da tela, temos para Mark. Então, eu só preciso fazer o download para Mac. E se você estiver no Windows, também precisará fazer o download para Windows. O download definitivamente demoraria um pouco. Então, eu só tenho que acelerar a palestra. Baixar. Bem sucedido. Aberto. Aqui está. Você só precisa lançá-lo. E é isso. O VS Code é aberto. Então, do meu lado, você vai ver o projeto recente. Não se preocupe, isso pode parecer que não acabou simplesmente porque você não abriu nenhum projeto com o VS Code. Portanto, certifique-se de baixar o Google Chrome. E é claro que você já deveria tê-lo. Isso é tudo por enquanto. E na próxima palestra, continuaremos criando nosso primeiro aplicativo React. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 5. 5 Reaja a instalação: Nesta palestra, vamos criar nosso primeiro aplicativo React. Então, vá rapidamente para o React js.org. Aqui está o endereço. Clique em cachorros. Aqui está. Tudo bem, então, à direita da tela, você verá a guia. Então, logo na parte superior, você precisa clicar em Criar um novo aplicativo React. Aqui está. Então, a primeira coisa que vamos fazer é basicamente gerar um padrão de um aplicativo React, que compreende as bibliotecas, os arquivos e pastas iniciais para executar um aplicativo padrão simples do React. Role para baixo, deixe-me te mostrar. Para criar um novo aplicativo React. Temos que seguir essas instruções. O comando NP X seria usado para criar um novo aplicativo React sem precisar instalá-lo em nosso sistema. Não entendi tudo isso. Vamos continuar criando um novo aplicativo React. Vá para a área de trabalho. E aqui, vamos criar um diretório raiz. Causa da reação. Clique com o botão direito aqui em Nova pasta. Reaja, traça, cause, pressione a tecla Enter. Técnicas. Ao nomear seu projeto, sempre use um nome descritivo que indique o propósito do projeto. Então, você quer ser capaz de reconhecê-lo no futuro. Parece bom, lindo. Então, abra rapidamente o VS Code. Vamos fechar esta página de amostra. Agora, o próximo na fila é arrastar e soltar a pasta no VS Code. Novamente, feche a página de amostra e maximize o VS Code. Vamos abrir o terminal integrado do VS Code. E eu vou fazer Control Back Tick. Você pode ver que o Ártico também está localizado no canto superior esquerdo do teclado, logo abaixo da tecla de escape. Se o atalho não funcionar para você, tudo o que você precisa fazer é ir até o topo e depois dominar o novo terminal. Você clica nele, ele se abre para você. Direto no terminal. Temos que criar um novo aplicativo React. E p x Create React app. O aplicativo React será instalado em um diretório chamado Klein's. E você também pode decidir mudar o nome desse diretório. Mas eu recomendo fortemente que você use o cliente de convenção simplesmente porque o React js tem a ver com o front-end, que implica a parte de interface do usuário do aplicativo. Você também pode limitar o front-end desta forma. Então, isso também é convencional. Tudo bem? Mas, para mim, vou usar o aquecimento convencional na tecla Enter para continuar. A instalação do React está em andamento. E isso definitivamente levaria algum tempo. Então, eu só tenho que acelerar a palestra. O React foi instalado com sucesso. Para continuar, precisamos entrar no diretório do cliente onde instalamos o React js. Então, vou fazer C, D, tecla de impacto de Klein para continuar. O próximo passo é iniciar o servidor de desenvolvimento front-end. E eu vou fazer npm, começa a apertar a tecla Enter para que ela seja acionada. E, a propósito, MPM significa simplesmente Node Package Manager. Na tela está a página do React London. E, por padrão, ele está sendo executado na porta 3.000 do localhost. Então, agora terminamos a instalação. Na próxima palestra, começaremos a revelar o padrão do React. Isso é tudo por enquanto e até a próxima palestra. Mantenha o foco e sempre tome cuidado. 6. 6 placa de cozimento: Nesta palestra, vamos revelar o Comando B padronizado do React para abrir o Explorer também, precisamos fechar o terminal. Então você precisa clicar no ícone aqui no lado direito da tela. Mas para mim, vou retomar o controle. Abra o diretório do cliente. Aqui está? Vamos continuar com o arquivo package.json. Aqui está? O arquivo package.json é onde todas as dependências ficarão todas as dependências relacionadas ao front-end. Por aqui. Temos recursos visuais reagidos e 0.2 instalados. Logo abaixo. Temos a cúpula do reator. A cúpula de reagentes é usada para trabalhar com o módulo de objeto do documento no navegador. Aqui temos os scripts do React sobre os sinais vitais da web. E aqui embaixo temos os roteiros. E na palestra anterior, fizemos com que o MPM começasse a inicializar o servidor de desenvolvimento front-end. Logo abaixo, temos a visualização. Quando fazemos o npm run build, ele superará os ativos estáticos das implantações. Então, quando quisermos implantar um aplicativo no servidor, definitivamente usaríamos o visualizador. Aqui. Nós temos o teste. Sob ejeção. Ejetar é necessário quando você deseja ejetar do Create, React, app e personalizar seu web park. E aqui temos a configuração das faixas ES, que ajuda a destacar alguns possíveis erros em seu código. Por fim, temos o navegador compatível menos usa o arquivo package.json. Vamos continuar com o registro do pacote. Aberto. Os hubs de registro de pacotes para instalação estável de sua porta de dependências. Não temos nenhum negócio aqui, mas também temos que falar sobre isso. Aqui temos o arquivo Redmi dot md, que ajuda na documentação. Por exemplo, você terminou de criar seu aplicativo. Assim, você pode acessar o ponto Redmi vazio encontrado para documentar os processos envolvidos. Então, vamos revelar rapidamente as pastas. Abra o público, certo. No diretório público, temos o arquivo index.html, o logotipo e o arquivo JSON do ponto de manifesto. O arquivo JSON de ponto manifesto é usado para Progressive Web App que, por enquanto, não é relevante para o propósito deste curso. Então, como iniciantes, temos que nos concentrar no HTML do ponto de índice. E aqui está. Isso é tudo por enquanto e até a próxima palestra. Mantenha o foco no cuidado holístico. 7. 7 Como reagir funciona sob o capô: Nesta palestra, entenderemos o fluxo do react como um aplicativo de página única, que implica como o React JS funciona nos bastidores. Abra rapidamente o comando B do index.html para abrir o explorador. Clientes públicos e nebulosos no índice HTML. Vamos abrir o index.js e o aplicativo. Prossiga para a fonte, qual é o índice SRC dot js aqui, está? Por fim, precisamos abrir o comando B do app js para fechar o Explorer. Vamos começar com o index.html. Role para baixo. Eu quero que você anote esse div com o id de root. É extremamente importante. Na verdade, esse div com o id da rota serve como um contêiner para o aplicativo empire. Vamos para o index.js. O index.js é o ponto de entrada de cada aplicativo React. Para obter a melhor explicação. Antes de prosseguirmos, vamos fazer downgrade do aplicativo para o react 17. E então eu termino com a explicação. Vamos fazer com que ele reaja, comendo diretamente nas linhas para destacar que o cliente o apagou. Por aqui. Destaques, limpe-os. Além disso, temos que destacar novamente o Comando X para colocar uma vírgula aqui e colar. Então, temos que tirar o ponto e vírgula, os colchetes desse outro colchete aqui. Então, temos que remover a raiz. Vamos usar a cúpula do reator para copiar e colar aqui, ninho. Só precisamos marcar o modo estrito. Linda. Agora, conseguimos fazer o downgrade do aplicativo para o react 17. Tudo o que eu quero que você faça nesta palestra é ficar quieto e prestar a máxima atenção à minha explicação. Vamos continuar entendendo como o React JS funciona nos bastidores. Na parte superior, temos o React importado do módulo React. Abaixo. Temos o React DOM do react ao módulo. O React DOM ajuda a unir a cúpula de baixo nível do HTML com a cúpula de alto nível do React. E também a cúpula do React tem um método chamado render. E o método aleatório usa dois parâmetros. O primeiro parâmetro são os elementos, que neste caso são um elemento de reação a ser renderizado. O segundo parâmetro é um JavaScript básico, que é document.getElementById. E diz: Ei, vou vincular com o elemento DOM no HTML. Precisamente. Um elemento DOM repentino com o id de raízes. E esse elemento DOM com o id das raízes é encontrado diretamente no arquivo HTML. Então, o que reage às portas é injetar o primeiro parâmetro no elemento DOM com o id das raízes. Simplificando, tudo o que você tiver aqui como primeiro parâmetro será passado para o nó raiz do DOM. Ele vai ficar bem dentro desta div. E o mais importante, o index.html é a única página salva no navegador para exibir o que você passa como primeiro parâmetro no nó raiz do DOM. Tudo bem, então essa abordagem de renderizar componentes em uma única página e alterar a cúpula exabyta o comportamento de uma única página. Portanto, podemos dizer que o React js é usado para criar um aplicativo de página única. Deixe-me dividi-lo de volta ao índice j. Então, aqui, vou retirar o componente do aplicativo como primeiro parâmetro e apagá-lo. Então eu vou ter uma etiqueta na cabeça, certo? Estamos na etiqueta principal. Eu vou fazer. Agora, vamos salvar o aplicativo para ver o que acontece. Seguro. Boom. Você pode ver a cabeça, uma tag é exibida no navegador. Então, quando inspecionamos o elemento. Clique com botão direito em Inspecionar Aqui, você verá o arquivo index.html, que é a única página salva no navegador. Então, vamos tentar abrir o corpo. Ao abrir o corpo, você verá a div com o id da raiz. Então, vamos abrir rapidamente esse D. Você pode ver a cabeça de uma tag sendo injetada diretamente nesta div com o id da raiz. É tão simples quanto isso. Entendido, lindo. Vamos fazer isso mais uma vez. Ela, certo? Então, tudo o que você tiver aqui como primeiro parâmetro será injetado corretamente, entre o div com o id das raízes e o diff com a ideia de raízes está localizado aqui no index.html. Portanto, o index.html é a única página salva no navegador para exibir o que você injetou entre o dv. E é por isso que, ao inspecionar o console, você verá a cabeça de uma tag entre a div com o id de uma raiz. Melhor explicação: ficar bom. Linda. Então, novamente, volte para o índice de código VS dot js. Então, vamos limpá-lo e trazer de volta o componente do aplicativo. E, a propósito, o componente do aplicativo é importado na parte superior. E quando você salva no navegador, boom. E você vai ver a página de Londres. Vamos revelar o aplicativo de volta ao VS code up dot js. E aqui nos objetos temos um div com o nome da classe do nosso aplicativo. E temos um pastor aqui. Temos a tag IMG que descreve esse logotipo aqui que está girando continuamente na tela. Temos a tag p. Aqui, não é? Por fim, temos a tag a. É isso mesmo aqui. Então, aqui temos o corpo, e aqui está o div com o id da raiz. Vamos abri-lo. Você pode ver que ao abrir o div com o id de root, você verá outro div com o nome da classe up. Aqui está? Vamos abrir a div. Vamos ver o cabeçalho com o nome da classe do cabeçalho do nosso aplicativo. E aqui está. Vamos abrir o cabeçalho. Portanto, temos o restante do conteúdo, como a tag IMG, que descreve o logotipo. Temos a tag p. Você pode ver? E por último, temos que a tag a é tão simples quanto isso. Vamos rapidamente trazer o aplicativo de volta para react 18 index.js. E então só temos que desfazer. Agora, atualizamos o aplicativo novamente para reagir. 18 é exatamente a mesma dor. O componente do aplicativo está aqui como o primeiro parâmetro e passará por essa linha de código para o div com o id da raiz do cabelo. E você deve sempre lembrar que o div com o id de root é divertido aqui no index.html. E o index.html é a única página que é salva no navegador para exibir qualquer conteúdo que você injetar entre essa div e pronto. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco em sempre cuidar. 8. 8 jsx: Nesta palestra, vamos entender os GSAs. Então, vá rapidamente para o comando P do aplicativo Js para abrir esta pequena caixa de pesquisa na parte superior e, em seguida, definir para AARP dot j está aqui, não é? Se o atalho não funcionar para você, tudo o que você precisa fazer é navegar até o Explorer e abrir o mix para abrir o SRC do cliente. E então aqui está. Fechou o explorador. Linda. Então, na tela, temos uma função que retorna uma parte da interface do usuário. Então, tudo o que você vê aqui se chama DSS. Dss significa simplesmente JavaScript XML. É uma extensão de sintaxe do JavaScript usada para definir o significado e a estrutura do seu conteúdo da web. Portanto, eles podem parecer familiares com HTML, mas não é HTML. O que você vê na tela é chamado de GSAs. Uma das diferenças entre HTML e Jesus é o atributo do nome da classe. Em HTML, é uma classe. E aqui no Jess's, é um nome de classe simplesmente porque class é uma palavra-chave reservada em JavaScript. Então, toda essa maquete aqui define a página de Londres, que compreende o logotipo, a tag p e a tag a. Deixe-me te mostrar rapidamente. Voltar ao código VS. Aqui está a tag IMG que descreve o logotipo. Estou aqui, está logo abaixo? Temos a tag p. É isso mesmo aqui. E por último, temos a tag a aqui. Está de volta ao código VS? Então, quando eu tentar excluir tudo, diretamente nesta div, vamos experimentar um novo comportamento. Vou destacar desde a tag de cabeçalho de abertura até a tag de fechamento. Limpe-o. Seguro. Esse é o novo comportamento. A tela está em branco simplesmente porque excluímos as expressões GSS que definem a página de Londres. Voltar ao VS Code. E também temos que excluir o div com o nome da classe do nosso aplicativo. Queremos fazer tudo do zero. Então, aqui vamos ter uma etiqueta principal e depois uma palavra de olá, salve no navegador. Ei, não é? Quão lindo é isso? Então, a tag principal aqui descreve o HelloWorld que você vê aqui no navegador. É tão simples quanto isso. Volte ao código VS e vamos continuar. Agora, deixe-me dar uma olhada na França aqui em alguns pontos-chave que você deve ter em mente ao usar GSAs. Todos esses pontos-chave que quero compartilhar com você são extremamente importantes. Ponto. O número um é que você só pode ter um elemento de invólucro principal em Jesus. Então, quando você faz algo assim, por exemplo, vamos ter uma hashtag e eu vou fazer. Meu nome é Barbara. Portanto, isso definitivamente geraria um erro. Ao salvar e conferir o navegador, você verá a reclamação. Diz que acabei de enviar Jesus. Os elementos devem estar embrulhados em uma etiqueta anexa, o que implica que você não pode ter Jess fora de outros GSAs. Então, a única maneira de fazer isso é embrulhar todo o Jesus em um elemento pai. Então, vamos ter um DV aqui. Então. Vamos destacar, mantenha pressionada a tecla Alt no teclado, toque na tecla de seta para cima para movê-la para dentro. E, como você pode observar, o erro desapareceu. Vamos manter o código limpo. Linda. Finalize a compra, o navegador, tudo está funcionando conforme o esperado. Eu adoro isso. Volte aqui. Então, esse dv aqui serve como elemento pai. Portanto, você não pode ter elementos de gestos fora dos elementos JSX principais. Então, quando eu faço algo assim, por exemplo, quando eu tenho um div aqui, ele gera um erro. Acabei de enviar Jesus. O elemento deve estar embrulhado em uma etiqueta anexa. Portanto, isso simplesmente implica que todas as expressões de gestos devem ser agrupadas em um elemento pai. Então, por enquanto, esse div é usado como elemento pai. Só temos que movê-lo como se isso fosse tão simples quanto isso. Ponto número dois. atributo de classe em HTML é substituído pelo nome da classe em GSAs, simplesmente porque class é uma palavra-chave reservada em JavaScript. Então, vamos tentar dar a esse div um nome de classe. O nome da classe é container. Salvar. No navegador. Tudo está funcionando perfeitamente bem. Então, vamos inspecionar rapidamente o console. Comando I para abrir o console. Você pode ver que está tudo bem? Voltar ao código VS. Então, vamos tentar substituir o nome da classe classe save no navegador. Aqui está o aviso em uma classe de propriedade DOM válida. E fez uma pergunta. Você quis dizer o nome da classe? Sim. Queremos dizer o nome de uma classe. Então eu tenho que voltar e depois salvar. Confira. Vamos atualizar o console. Tudo está funcionando perfeitamente bem. Ponto número três. Até agora, seu Gmail foi substituído por HTML4 em Jesus. E também for é uma palavra-chave reservada em JavaScript. Então, quando tentamos implementar algo assim, aqui, teremos um rótulo. E vamos especificar o atributo for, equa, nome de usuário. Então, isso funciona para HTML. E quando você o experimentar no GSAs definitivamente receberá algum aviso no console. Inválido, não propriedade quatro. Venha aqui. Temos que mudar isso para dois, HTML4. Então, isso resolverá o problema. Seguro no navegador. Atualize o console. Está tudo bem. Ponto número três, em Jess, o botão ao clicar na parte superior, os atributos do índice serão escritos em teclas de vírgula, que simplesmente implica que você coloca em maiúscula a primeira letra de cada palavra , exceto a primeira palavra. Então, vamos supor que queremos implementar um botão aqui. Em seguida, temos que especificar sua própria camarilha. Se você notar, perceberá que o onclick também está escrito em caixa de carma. Nós o colocamos entre colchetes de um colega. Então, é assim que se implementa o OnClick nos GSAs. Para recapitular, a classe em HTML é substituída pelo nome da classe em GSAs. Pois o HTML é substituído pela história e, portanto, no jazz, o manipulador de eventos onclick no Jessie's é escrito em teclas de vírgula e também é dito para um colchete de colega. Então, aqui você pode chamar qualquer uma das funções que você definiu no aplicativo. Vou acabar com isso por enquanto porque no futuro vamos tratar o manipulador de eventos em De Dios, limpá-lo. E, por último, você não pode ter aspirações de GSS fora dos elementos principais. Portanto, todos os gestos expressões que você terá ao criar sua interface de usuário serão agrupados em um único elemento principal. Então, temos que movê-lo para dentro. É isso. Isso é tudo por enquanto e até a próxima palestra. Mantenha o foco e sempre tome cuidado. 9. 10 tipos de componentes: Agora terminamos com o JSX. Mas é extremamente importante, você sabe, esses, se eu quiser fazer um comentário sobre os gestos, expressões, como faço isso? Tecnologia, por exemplo, quero fazer um comentário sobre a história. Como posso conseguir isso em GSAs? Portanto, os atalhos para fazer isso são selecionar com precisão os elementos do GSS sobre os quais você deseja colocar um comentário. E nesse caso, vou colocar um comentário na tag H2. Então você só precisa selecionar. Deixe-me te mostrar novamente. Selecione e, em seguida, pressione a tecla de comando no teclado e, em seguida, toque na barra. E isso colocará exatamente um comentário na expressão de Jess que você selecionou. Se você notar, perceberá que tudo está embrulhado em colchetes de Ecoli aqui, ok? E bem , entre colchetes, você poderá usar os comentários de várias linhas. Portanto, este é o comentário inicial de várias linhas. Aqui está o comentário final de várias linhas. Então, em termos simples, para usar comentários em Jess, você precisa colocá-los em um colchete. Então, quando estiver dentro de um colchete, React js o tratará como expressões de JavaScript. Agora você pode usar os comentários de várias linhas nele. Portanto, o mesmo se aplica se você quiser remover o comentário, destaques. Mantenha pressionada a tecla de comando toque na barra. É tão simples quanto isso. Mesmo que você queira fazer um comentário sobre todo o Jesse, é exatamente o mesmo processo. Vamos supor que eu queira fazer um comentário sobre tudo, não seria o elemento pai. Então, eu só tenho que destacar assim, mantenha pressionada a tecla de comando na parte superior. A barra frontal é tão simples quanto isso. Além disso, se você quiser remover os comentários, destaque, mantenha pressionada a tecla de comando pressione a barra. Então, é exatamente assim que os comentários circulam nos GSAs. Vejo que você gostou dessa palestra. Mantenha o foco no cuidado holístico. 10. 9 Comentário em Jsx: Anteriormente, falamos sobre competência e garantimos que os componentes são reutilizáveis e também podem ser aninhados dentro de outro componente. E agora a questão é: como a competência se traduz em código em nosso aplicativo? A maneira mais simples de definir um componente é escrever uma função JavaScript simples. No React G, temos dois tipos de reclamações. Empresas de componentes funcionais e de classe. Componentes funcionais ou função JavaScript. Mas aceite as sondas como argumento e, em seguida, retorne um GSAs válido, cujo sentido eletrônico é a maquete que descreve a interface do usuário. Simplificando, a sintaxe ficará assim. Essa função é um componente funcional de reação válido simplesmente porque aceita um único argumento de objeto de sonda com dados e retorna elementos React. Então, se quisermos fazer a mesma coisa usando o componente de classe, a sintaxe ficará assim. Do ponto de vista do React. Os dois componentes acima são equivalentes, mas somente esse componente de classe geralmente é irregular. Classes Es6 que mancham uma classe competente da biblioteca React. E deve ter um método aleatório que retorne o de Jess, que por sua vez descreve a interface do usuário. No entanto, neste curso, continuaremos com a empresa funcional simplesmente porque é extremamente fácil raciocinar sobre ela. E também o componente de classe está gradualmente desaparecendo. A maioria das empresas agora está reescrevendo o aplicativo com um componente funcional. Então, definitivamente precisamos seguir as tendências. Usando o componente funcional. Não precisamos nos preocupar estado porque, com a ajuda de ganchos, não poderemos usar o estado e outros futuros do React sem escrever uma classe. E os ganchos foram introduzidos em 2018. Técnica de conferência React. Ao nomear seus componentes, sempre use a convenção anterior de condimentos, que implica que você coloca em maiúscula a primeira letra de cada palavra. Então, por exemplo, os componentes domésticos serão escritos assim. Quando você o chama assim, React js, vamos tratá-lo como um parque de cúpula. Linda. Mas a questão é que um código de componente geralmente é escrito em um arquivo JavaScript com uma extensão dot js ou extensão dot CSS. Mas neste curso, continuaremos com a extensão dot js, por exemplo , os componentes domésticos serão escritos assim. Componentes domésticos dot. Tudo bem, então isso é tudo por enquanto. E na próxima palestra, continuaremos criando nossos primeiros componentes funcionais de reação. Nos vemos na próxima palestra. 11. 11 Como criar nosso primeiro componente funcional: Vamos continuar criando um componente funcional. Para continuar, precisamos criar o diretório de componentes. Abra o cliente. Dentro do SRC. Temos que clicar com o botão direito do mouse e depois em nova pasta. E eu vou chamá-lo de componentes. Observe que eu usei uma palavra plural aqui. É simplesmente porque teremos muitos componentes, certo, dentro do diretório desse componente. Portanto, deve ser uma boa prática nomeá-la com pleura road pizza na tecla Enter. Em seguida, estamos no diretório de componentes. Vamos criar o arquivo de componentes. Clique com o botão direito nos componentes aqui em Novo arquivo. O componente de demonstração mostra a frase de j. Quero que você tome nota do que é convencionalmente usado na nomeação desse componente. É chamada de convenção de nomenclatura Pascal. Isso implica que você coloca em maiúscula a primeira letra de cada palavra. E também quero que você tome nota da tensão. Aqui está o ponto g é pressionado na tecla Enter e menos prossiga com o Comando B para fechar o Explorer. Então, aqui, vamos criar o componente funcional do zero. Então, primeiro, temos que importar o React do módulo React. Por enquanto, isso é opcional. Tudo bem, então, em termos de código, os componentes são simplesmente funções JavaScript. E o nome desse componente é componente de demonstração. componente funcional retorna a marcação JSX, que descreve a interface do usuário. Vamos ter um div, certo? Dentro da div, teremos uma etiqueta principal e eu vou dar um olá muito. Assim, é o mais simples. Agora, conseguimos criar nosso componente funcional. O próximo passo é exibi-lo no navegador. Ter esse componente exibido na web. A primeira coisa que faremos é exportar o componente. Então, aqui eu vou fazer a função padrão de exportação, componente de demonstração. Portanto, eu não exportei a função. Precisamos renderizar o componente de demonstração diretamente no aplicativo. G é o Comando P para abrir a caixa de pesquisa na parte superior. E vamos procurar por um. Aqui, não é? Então, aqui vamos dar dois passos. O primeiro passo é importar o componente de demonstração. Então, aqui, temos que importar componentes de demonstração de aspas simples abertas e fechadas, ou você também pode usar aspas duplas. Então, aqui temos que direcionar o diretório em que o componente de demonstração está localizado. Então, para isso, vou fazer componentes de barra de pontos . O componente de demonstração de barra é tão simples quanto isso. Não fiz isso. Temos que renderizar esse componente diretamente na declaração de retorno. Então, o que vou fazer agora é destacar das linhas nove a 13 e apagá-las. Portanto, temos que renderizar o componente de demonstração diretamente entre esse div com o nome da classe do contêiner e, em seguida, fechá-lo. Se não tivermos filhos entre a etiqueta, será muito bom usar a etiqueta de fechamento automático. Então, vou destacar a etiqueta de fechamento, limpá-la diretamente entre colchetes. Vou apenas especificar a barra para frente. Isso é chamado de tag de fechamento automático. Seguro. No navegador. Boom, tudo está funcionando conforme o esperado. E aqui você vê a palavra olá. Olá de novo. Agora, criamos com sucesso os componentes funcionais e os exibimos na web. Parabéns. Isso é tudo por enquanto e até a próxima palestra. Mantenha o foco no cuidado holístico. 12. 12 tipos de exportação: Ax6 fornece duas maneiras diferentes exportar módulos de um arquivo, que incluem a exportação padrão e a exportação nomeada. Ao observar a tela, você perceberá que exportamos esse componente como uma exportação padrão. Tudo bem, então a exportação padrão nos permite exportar um módulo e especificar qualquer nome para esse módulo sempre que você quiser importá-lo. Portanto, como exportamos o componente de demonstração como exportação padrão aqui, poderemos nomeá-lo com qualquer coisa. Tudo bem, então vamos pegar, por exemplo eu vou limpar isso e depois vou fazer componentes de grade. E aqui também temos que fazer o mesmo. Temos que renderizar grades, componentes, caixas. Tudo está funcionando conforme o esperado. Portanto, isso só pode funcionar quando você usa a exportação padrão. Outro ponto importante que você deve ter em mente é que há apenas uma única exportação padrão por módulo. Então, aqui, certo, neste componente, não poderemos mais ter uma exportação padrão. Você só pode ter uma exportação padrão em um módulo. Parece bom, Beautiful. Agora, a próxima fila é a exportação nomeada. A exportação nomeada é útil para exportar vários valores. E durante a importação, você poderá usar exatamente o mesmo nome para se referir ao valor correspondente. Deixe-me te mostrar rapidamente. Então, aqui, se quisermos usar a exportação nomeada, tudo o que precisamos fazer é destacar o padrão aqui e depois apagá-lo. Isso foi transformado em exportação nomeada. Então, quando você salva no navegador, aqui está a reclamação. Está tentando dizer que o componente da grade não existe. Volte para o VS Code, vá para o aplicativo js. E então temos que usar exatamente o mesmo nome do módulo. E aqui, o nome do módulo é componente de demonstração, direto para o aplicativo. Portanto, para trabalhar com a exportação nomeada, precisamos colocar exatamente o mesmo nome entre colchetes. Aqui mesmo. Vamos ter um colchete encaracolado. Então eu vou limpar isso. Certo? Dentro dos colchetes universitários, precisamos importar com precisão o módulo pelo nome, e o nome é componente de demonstração. Feito isso, também precisamos importar o componente x hat aqui, destacá-lo, apagá-lo e, em seguida, farei o componente de demonstração. Confira no navegador. Tudo está funcionando conforme o esperado. Eu adoro isso. Tudo bem, então, para recapitular, ao usar a exportação padrão, você não conseguiria especificar nenhum nome para comer quando quisesse importá-lo. E você só pode ter um módulo de par de exportação padrão. Em comparação com as exportações nomeadas, onde podemos exportar vários valores de um módulo. Durante a importação, você poderá usar exatamente o mesmo nome para se referir ao valor correspondente. Isso geralmente ocorre em uma palestra síncrona. Mantenha o foco no cuidado holístico. 13. 13 adereços: Viemos agora para falar sobre talvez sem mencionar os componentes. No início das palestras anteriores, aprendemos que esse componente permite que você divida as interfaces do usuário em segmentos independentes e reutilizáveis. Então, agora, eu quero que você pense em cada segmento de forma isolada. A questão é: se os componentes estão separados uns dos outros, como passamos as informações do Componente a para o Componente B? Aqui, como aquele Lee, é onde entram as sondas. Então, o que exatamente é talvez, talvez signifique propriedades. É um objeto que armazena o valor de um atributo de ataque. E talvez também permita que você passe dados de um componente para outro. Precisamente de um componente principal para um componente secundário. Anote esses pontos-chave. adereços são imutáveis, o que simplesmente implica que seu valor não pode ser alterado. Não entendi tudo isso. Vá para o VS Code, que é menos prático, pois é mais rápido. Vamos nos livrar rapidamente da etiqueta principal. Prossegue para o componente do aplicativo. Por aqui. Só preciso mudar o nome da classe para app simplesmente porque quero usar o arquivo CSS padrão. Outro ponto importante que quero que você observe é que as solicitações podem ser passadas para um VGS competente são nossos atributos. Por exemplo, queremos passar dados do componente App para o componente de demonstração. Então, para fazer isso, primeiro, temos que especificar os atributos. Então, vamos supor que queremos passar uma sonda de nome. Então, aqui o atributo será nomeado, atribua um valor a ele. Margarida. Então esse é o atributo. Aqui está o valor em. Tudo isso junto é chamado de sondas. Então, tendo feito isso, conseguimos passar sondas para o componente de demonstração. Mas quando você verifica o navegador, nada acontece. Portanto, você não consegue ver nada no navegador. Você sabe por quê? É simplesmente porque também precisamos receber as sondas, certo? Na empresa de demonstração, voltar ao componente de demonstração do código VS para receber as sondas é muito simples. Tudo o que precisamos fazer é usar uma sonda como argumento, certo, dentro da função. Então, eu vou fazer sondas. Você pode decidir mudar o nome das sondas para outra coisa. Mas eu sugiro fortemente que você use as sondas de conversão porque essa é a convenção amplamente usada entre os desenvolvedores. Então, tendo feito isso, conseguimos receber as sondas aqui mesmo no componente de demonstração. Deixa eu te mostrar. Portanto, esses adereços aqui serão armazenados dentro do objeto props. Deixe-me provar isso para você. Venha aqui. Então. Vamos usar adereços de registro do console. Então, queremos ver o valor que está armazenado dentro desse objeto props. Vá até o navegador. Vamos inspecionar rapidamente o console. Comando Alt I para abrir o console. Ao inspecionar o console, você verá um objeto. Então, vamos abrir rapidamente o objeto. Aqui mesmo. Temos no nome do objeto e do atributo com o valor Daisy. Então, tecnicamente, recebemos as sondas no componente de demonstração. O nest e ln são acessar o valor dos adereços e exibi-lo no navegador. Portanto, se quisermos acessar o valor das sondas, basta direcionar os atributos e, em seguida, o valor será exibido diretamente no código VS. E vamos fazer isso rapidamente. Então, aqui, vou especificar uma tag Hadrian porque quero fazer isso diretamente na tag h1 do cabeçalho. Então, normalmente, vou fazer adereços nome do ponto no navegador. Você verá sondas com esse nome simplesmente porque foram tratadas como testes. Então, para que isso funcione, aqui, temos que pegar os colchetes e, em seguida, realçar o comando X para recortar e colar aqui. Portanto, quando você o coloca em um colchete, o analisador JSON poderá reconhecê-lo como expressões de JavaScript, em vez de uma amostra segura no navegador. Aqui temos Daisy. Tudo bem, então vamos adicionar rapidamente o código VS e adicionar mais atributos ao componente do aplicativo Component Tree. E aqui temos os adereços como nome. Agora vamos ter outras sondas. Como país, atribua a ele o valor Brasil, seguro. No navegador. Você definitivamente verá que eles veem na tela. Mas ao inspecionar o console, você verá o nome Daisy e o país, o Brasil. Então, vamos exibi-lo rapidamente no navegador. Voltar ao componente de demonstração do código VS. E então aqui eu vou fazer props dot country, seguro no navegador. E chegamos aqui, Brasil. Tudo bem, então vamos torná-los mais significativos. Venha aqui, diretamente na tag h1 do cabeçalho. Eu vou fazer. Sou adereços do nome das sondas, daquele país. Seguro no navegador. Eu sou Daisy do Brasil. Que lindos esses. Tudo bem, então vamos continuar. De volta aqui. Agora, passamos com sucesso as sondas de um componente principal para os componentes secundários. Então, para recapitular, ao lidar com sondas, três etapas estão envolvidas. O primeiro passo é enviar as sondas. É verdade Jess tem atributos para o componente filho. E o segundo passo é receber as sondas, tudo bem, usando o parâmetro de uma formulação. E depois disso, temos que exibir no navegador de forma tão simples quanto isso. Ok, agora eu quero que você lembre que os componentes são reutilizáveis. Vá rapidamente até os objetos e deixe-me ensinar como reutilizar esse componente. Reutilize esse componente que vou destacar e duplique-o quantas vezes quiser no navegador. Agora reutilizamos esses componentes, mas sondas. Essa é uma das belezas do React que faz minha cabeça girar. Portanto, outro ponto importante é que o componente reutilizável pode ser reutilizado com propriedades diferentes para exibir informações diferentes, mantidas no código VS, e vamos fazer isso rapidamente. Código Vs. Aqui. Esse atributo também é chamado de propriedade. Quero alterar o valor do atributo. Aqui vou fazer meu objetivo, e meu objetivo é dos EUA. Altere o atributo aqui. Sahel. Sahel é da Índia. E por último, vamos ter uma barra dupla para mim. E eles têm. Baba é do Reino Unido. No navegador. Consegue ver isso? Aqui temos DC do Brasil, Michael da USC, Sahel da Índia. E por último, é uma barra de ferramentas do Reino Unido. Isso exemplifica como o componente reutilizável funciona com sondas. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 14. 14 Props.children.: Adereços dot jhu drain. Ao olhar de perto, você observará que estamos usando etiqueta de fechamento automático para todos esses componentes. Por quê? É simplesmente porque os componentes não têm filhos. No React, G é um componente com filhos, é sempre identificado por uma tag de abertura e uma tag de fechamento. E as crianças devem ser colocadas entre as etiquetas anexas. Então, digamos que queremos adicionar algumas informações sobre esse cara, incluindo sua foto de perfil. Tudo bem, então o que vou fazer primeiro é limpar a etiqueta de fechamento automático e depois fechá-la com a etiqueta de fechamento real. E aqui está. Portanto, essa é a tag de fechamento usada quando o componente tem filhos. E neste caso, aqui, teremos uma tag p. E certo, dentro dessa tag p, eu vou fazer aqui, nós vamos ter outra tag P. E eu vou fazer por último, vamos ter uma foto de perfil. Para trabalhar com imagens. Primeiro, precisamos importar essa imagem. Portanto, há várias maneiras de fazer isso. Vou fazer o Comando B para abrir o Explorer diretamente no SRC. Vamos criar uma nova pasta. E essas serão imagens capturadas. Então, nessa pasta de imagens, vamos importar a foto do perfil. Então, o que vou fazer agora é maximizar o VS Code. E aqui na minha área de trabalho você verá o diretório de materiais básicos. Clique para abrir. E, a propósito, esse diretório está logo ali na descrição. E aqui está a foto do perfil. Então, vou arrastá-lo direto para o diretório de imagens. Você pode ver que aqui está a foto do perfil. Maximize o comando B do VS Code para fechar o Explorer e , em seguida, também fechar a foto do perfil. Então, logo no topo, temos que importar picos de perfil de. Portanto, temos que direcionar o SRC, diretamente dentro do SRC, temos o diretório de imagens. Dentro das imagens, precisamos direcionar com precisão a foto do perfil. Fotos do perfil, ponto PNG. Acho que isso está correto, certo? Então, vamos verificar isso rapidamente. Comando B. Aqui temos o perfil pigs dot PNG. É extremamente correto. Então, role para baixo e aqui teremos uma tag IMG como RC igual a essa entrada aqui. Então, temos que chamar isso de Import Copy, venha aqui, cole, feche a tag IMG. Ao salvar e finalizar a compra no navegador, você verá as crianças investigarem o porquê. É simplesmente porque também precisamos recuperar rapidamente a heroína das sondas infantis para o componente de demonstração do VS Code. Então, aqui, vamos recuperar as sondas infantis. Então, vamos fazer isso diretamente na tag H2, abrir e fechar o colchete. Então, para recuperar as sondas infantis, tudo o que vamos fazer são adereços, pontos e crianças no navegador. Aqui estão as crianças. Isso é extremamente incrível. Para recapitular. Abra o aplicativo js e, em seguida, tudo o que você tem aqui entre a tag de abertura e fechamento é chamado de sondas infantis. E para recuperar as sondas infantis, tudo o que você precisa fazer é sondar, dots children é tão simples quanto isso. Volte para os componentes do aplicativo. E agora a questão é: que tipo de conteúdo é permitido para sondas, crianças de pontos, o conteúdo passa para um componente, avisos verdadeiros de que as crianças podem incluir o seguinte número booleano nulo indefinido, string, elementos do React, incluindo um RA. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 15. 15 adereços de imutabilidade: Outro ponto importante que devemos observar é que as sondas são imutáveis. E isso simplesmente implica o valor de uma sonda não pode ser alterado. Deixe-me provar isso rapidamente. Abra o componente de demonstração. E aqui vamos tentar reatribuir outro valor ao atributo name. Então eu vou fazer aqui. Props, nome do ponto, equa, Angela no navegador, o aplicativo quebra. Vamos inspecionar rapidamente. O console. Não é possível atribuir somente para leitura o nome da propriedade. Portanto, as sondas são somente para leitura, o que simplesmente implica que o valor de uma sonda enviada de um componente pai não pode ser alterado no componente secundário. E é por isso que quando tentamos reatribuir outro valor ao atributo name, o aplicativo Briggs. Isso é tudo por enquanto. Nos vemos na próxima palestra. 16. 15 suportes de destruição: destruidor de prompts nesta doutrina foi introduzido no EXE, pois é um futuro de JavaScript que permite extrair vários dados de uma matriz ou objeto e, em seguida, atribuí-los às suas próprias variáveis. Uma das vantagens da estruturação é que ela melhora a legibilidade do código. Portanto, no componente funcional, há duas maneiras de desestruturar as sondas, mas vamos escolher a melhor opção, que é desestruturar as sondas dentro do perímetro de uma função. Vamos tentar. Certo? Estamos no parâmetro dessa função, temos que apagá-la. E então tecnicamente entre colchetes. Então, vamos voltar ao aplicativo. Aqui temos o nome do atributo e o país do atributo, certo? Então, voltando, temos que direcionar com precisão esse nome de atributo: país mais calmo, vírgula. As crianças não realizaram essa estruturação. Temos que acessar todos os atributos diretamente. Não precisamos mais das sondas. Então, vou destacar todas as ocorrências de props dot. Em seguida, mantenha pressionada a tecla de comando toque na letra D no teclado. D para cachorro, assim, e depois limpe-o. Pressione a tecla Escape para desativar a edição multicultural. Vamos dar uma olhada no navegador. Você pode ver que tudo está funcionando conforme o esperado? Eu adoro isso. Então, para recapitular, se você quiser desestruturar sondas, isso deve ser feito diretamente dentro do parâmetro de uma função. E para fazer isso, primeiro, você precisa usar um colchete encaracolado. E, à direita, dentro do colchete, você pode então direcionar com precisão o nome do atributo. Então, o que você deve saber é isso. Então, aqui, se você cometer um erro, por exemplo, vamos fazer algo desagradável aqui. Vamos chamar o país desse jeito. Quando você fizer isso, vamos salvar no navegador. Você vai obter um resultado estranho. Olha, o nome é exibido na tela, mas os países desapareceram. Portanto, ao executar essa estrutura em, é necessário direcionar com precisão o nome do atributo. Então, eu só vou desfazer, salvar Bone. Tudo está funcionando conforme o esperado. Eu adoro isso. Isso é tudo por enquanto. Nos vemos na próxima palestra. 17. 16 Função como adereços: No início da palestra anterior, aprendemos como passar adereços de um componente pai para um componente secundário. Agora, a questão é: é possível passar adereços de componentes secundários para um componente principal? E a resposta é não. Você não pode passar sondas diretamente do componente filho para um componente principal. No entanto, você pode passar uma referência a uma função como sondas para o componente secundário. Alguns listrados, certo? Vamos analisá-lo rapidamente para que você possa entendê-lo bem o suficiente. Abra o Explorer. Certo? Estamos nos componentes. Vamos criar um novo componente. O ponto g dos pais está novamente dentro do componente. Também precisamos criar outro componente, child dot js. Lindo, feche o Explorer. Então, eu também tenho que encerrar a demonstração e o aplicativo zomba. Assim como o componente pai, eu vou usar os atalhos RFC para gerar o componente funcional React js. Novamente, se o atalho não estiver funcionando do seu lado, é porque você não instalou o trecho. Para instalar o trecho, vá até as extensões. Clique para abrir. Então, aqui, vamos definir o ESM. Barra de reação, barra redox GraphQL, traço de reação, trechos nativos. Estou aqui. É um clique para abrir? E, do meu lado, eu já o tenho instalado. E é por isso que você vê aqui a votação desinstalada. Então, no final, basta clicar no botão Instalar e depois instalá-lo. Feche-o e também feche as extensões. Agora, o atalho funcionará para você. Muito bem, vamos continuar. Então, dentro do div, teremos uma tag de sucesso aqui. Vou fazer isso como componente principal. Vamos até a criança. G está aqui, não é? Temos que gerar o componente funcional React js, RFC e osso. Linda. Feito isso, vamos definir uma função diretamente nos componentes principais e , em seguida, passar essa função como sondas para o componente filho, componente pai. E vamos fazer isso aqui. Certo? Então, eu vou fazer a função greet parent. Então, certo, dentro dessa função, teremos um diálogo. Aqui mesmo. Queremos dar as boas-vindas aos pais. Portanto, o ninho e a linha são passar essa função como sondas para o componente secundário. Deixe-me te mostrar rapidamente. Portanto, na parte superior, temos que importar componentes secundários com barra de pontos. Então, vamos renderizar rapidamente os componentes secundários. A criança se aproxima com a etiqueta de fechamento automático. Linda. Não fiz isso. Agora podemos passar a função como sondas para o componente secundário. Para fazer isso, precisamos especificar o atributo e atribuir um valor a ele. Mas desta vez o valor será essa função, destaque e depois Copie, venha aqui, cole. Então, esses são os atributos e aqui está o valor. E tudo isso é chamado de sondas. Entendido, lindo. Então, quando você faz isso, conseguimos passar essa função como sondas para o componente secundário. Feito isso, precisamos renderizar o componente principal diretamente no comando P do aplicativo para abrir a caixa de seleção na parte superior. Então eu vou procurar por aqui, não é? Então, só precisamos fazer um comentário sobre todos os destaques desses fogões. Mantenha pressionada a tecla de comando, aperte a barra. Portanto, na parte superior, temos que importar componentes principais do componente de barra de pontos pai. Logo abaixo. Temos que aproximar os pais com a etiqueta de fechamento automático. Salve, volte para os componentes principais. Então, agora conseguimos passar adereços para os componentes secundários. A linha Western é recebê-lo diretamente no componente infantil. Criança. E para fazer isso, basta usar adereços para ele como argumento. E então, quando você consola, registra sondas no navegador ou no Comando I para abrir o console. E também temos que abrir o objeto de adereços. E aqui está a grade de atributos com os pais da grade de funções à medida que seu valor volta. Portanto, o objetivo desta aula é chamar a função que definimos no componente pai aqui de No componente filho. Então, ao clicar em abortar no componente secundário, queremos poder chamar essa função, voltar para entrar em contato. Vamos colocar um botão aqui. E aqui mesmo. Temos que especificar o onclick. Ao clicar do barco. Queremos poder chamar a grade de função de pai. E, claro, você sabe que a grade de funções principal já está armazenada no objeto props. Então agora eu vou fazer adereços, pontos, grades. Então, quando você faz isso, seguro no navegador, este é o componente principal. Aqui estão os componentes infantis. Então, ao clicar nesse botão, queremos invocar a função que foi definida no clique do componente pai. Consegue ver isso? Trabalhar com os pais? Para recapitular, definimos a função aqui nos componentes principais. E depois disso, passamos a função como sondas para os componentes secundários. Então, sempre que fizermos adereços de uma grade de pontos, ela recuperará o valor que é passado para os atributos, que, neste caso, a grade de função é a matriz dos pais. E, finalmente, acionamos a parte inferior especificando o onclick. Ao clicar neste botão. Esta função aqui será ativada. Então, qual é exatamente a vantagem de fazer isso? Tudo bem, então a vantagem de fazer isso é que isso ajuda a melhorar o desempenho. Portanto, ao criar um aplicativo de recompensa, é provável que você se depare com uma situação em que queira usar uma função em diferentes componentes. Tudo bem, então deixe-me te mostrar rapidamente. Abra o Explorer e , em seguida, os direitos dentro do componente. Clique com o botão direito em novo arquivo. E eu vou chamar esses usuários de dot js. Feche o explorador, gere o componente funcional React js. Certo? Dentro desse componente, também queremos fazer uso dessa mesma função. Ok? Então, o que vou fazer agora é primeiro importar os componentes do usuário do usuário com barra de pontos. Temos que renderizá-lo aqui. Aproxime-se com a etiqueta de fechamento automático. Vou especificar as grades de atributos e, em seguida, atribuir a elas um valor, que neste caso é a grade de funções principal para reutilizar como componente. Então temos que receber as sondas. Então, agora, eu só tenho que voltar para a criança e copiar essa parte inferior. Estou aqui. Colar. Vamos dar uma olhada no navegador. Aqui está a navegação do componente infantil e aqui está a navegação do componente do usuário. Então, quando clicamos no botão e no componente do usuário, você pode ver que estamos chamando a mesma função que está definida no componente pai. Além disso, quando clicamos no componente do gráfico, ele funciona exatamente da mesma forma. Portanto, se você estiver criando um aplicativo e quiser usar a mesma função em componentes diferentes. A melhor opção é passar essa função como sondas para o componente que precisa de sementes. É tão simples quanto isso. Vamos voltar para a criança. Outro ponto importante que eu quero que você observe é como passar parâmetro ao chamar uma função definida no componente pai do componente secundário. Então, isso é extremamente importante. Na verdade, aparece principalmente como uma pergunta de entrevista. Então, agora vamos prestar atenção em como fazer isso. Portanto, a maneira mais simples de passar o parâmetro do componente filho para o componente pai é implementando a sintaxe da função de seta. Vamos fazer com que uma função de seta venha aqui. Especifique assim. Então, com isso, poderemos passar qualquer número de parâmetro para a função greet. Deixe-me te mostrar rapidamente. Então, aqui, não seria uma disfunção. Vamos pegar uma corda aqui. Eu vou fazer Eu sou criança. Queremos passá-los como parâmetro para a função principal da grade. Aqui. Temos que incorporá-lo corretamente, dentro da função parental decretada. Então aqui eu vou fazer uma criança. Agora vamos usar a interpolação de strings. Mude para embarcar tick, tock, tick. Vamos usar colchetes. Então, vou fazer uma criança aqui. Vou apenas fazer um comentário sobre eles. Então, depois de fazer isso, vamos conferir o resultado no navegador. Clique no botão. Você vai ver, bem-vindo pai, eu sou criança. E quero que você se lembre de que isso foi passado como parâmetro do componente filho para a função pai da grade. E a função pai da grade é definida nos componentes principais. Então, é exatamente assim que se passa o parâmetro ao chamar uma função definida nos componentes principais do componente secundário. E, por favor, eu quero que você tome nota disso porque aparece principalmente como uma pergunta de entrevista. Isso é tudo por enquanto. Vejo que você gostou dessa palestra. Mantenha o foco e sempre tome cuidado. 18. 17 Estado de reagir (useState): Nesta palestra, vamos entender como o estado funciona no React js. Tudo bem, então vamos supor que você esteja criando um aplicativo e queira manter os dados de um componente que mudam com o tempo. Por exemplo, ao clicar em um botão, você deseja alterar o título do seu aplicativo para outra coisa. Sim, então isso será feito com os ganchos da dívida dos EUA. Menos prático quanto rápido, crie rapidamente um novo componente chamado title Component Command B. Clique com o botão direito do mouse no diretório de componentes aqui em Novo arquivo. O tipo Componentes da ferramenta dot g é gerado. O componente funcional. Aqui está, uma empresa começou depois disso, abriu o aplicativo js e depois vamos executar esse componente aqui. Primeiro, precisamos importá-lo, importar os componentes do título do componente de título da barra do componente. Também temos que fazer um comentário sobre eles. Venha aqui e, em seguida, use o título competente, aproxime-se da tag de fechamento automático vá para o componente do título. Portanto, o objetivo desta palestra é mudar o título do nosso aplicativo quando o botão é clicado. Portanto, para manter dados de competência que mudam com o tempo, temos que fazer uso do Estado dos EUA que olha. Então, logo no topo, só precisamos importá-lo. Pressione uma vírgula aqui, abra e feche os colchetes. E eu vou usar tâmaras. O use that hook é uma função especial que usa o estado inicial como argumento e depois retorna uma matriz de duas entradas. É uma função, então temos que invocá-la. Eu vou fazer assim. E o estado inicial será uma string vazia. Também mencionamos que usamos esse gancho que retorna uma matriz de duas entradas. Então, aqui, vamos colocar const, a vírgula do título, pressionada, atribuí-la assim. Portanto, essa variável aqui é usada para manter o estado inicial. E então esse cara aqui é uma função de configuração usada para atualizar o estado inicial. E nesse caso, teremos o estado inicial React JS. Porque para iniciantes ainda não fiz isso. Vamos exibir o estado inicial, à direita, dentro da tag H1. Acerte um. Vamos ter um colchete e depois só precisamos exibir o estado inicial, que é o título. Cole aqui, Salve. Portanto, essa variável aqui manterá o estado inicial quando você salvar e conferir o navegador. Vamos lá. Você vê isso? Linda? Portanto, a intenção desta palestra é mudar o título desse aplicativo ao clicar em um botão. Aqui, vamos especificar um barco. Aqui. Vou mudar o título. Linda. Aqui está. Então, agora, quando você clica no botão, nada acontece. Vamos implementar rapidamente o onclick. Ao clicar, é igual. Vamos usar uma função de seta aqui. E então temos que invocar a ferramenta de tipo de conjuntos de funções de configuração, que é esse cara aqui. E escreva disposto a definir nossa função, vamos passar para o novo estado. Então, aqui vou fazer, vamos salvar e conferir no navegador. Vamos experimentá-lo clicando no botão Alterar título de barco. Você pode ver que, ao clicar no barco, o título mudou? Vamos recarregar. Você pode ver as chamadas do React js para iniciantes. E quando eu clico na parte inferior, vemos as melhores chamadas do React Hooks. Isso é realmente lindo. E, na verdade, isso é apenas um vislumbre dos ganchos dos EUA Não se preocupe. No futuro? Vamos discutir os ganchos em detalhes. Então, para recapitular, sempre que você quiser lidar com dados que mudam com o tempo, você definitivamente precisa usar os ganchos do Git. O use that hook é uma função que assume o estado inicial como argumento e depois retorna uma matriz de duas entradas. Então, certo, dentro dessa matriz, a primeira variável aqui é usada para armazenar o estado inicial. E então o segundo elemento nessa matriz é uma função de configuração usada para atualizar o estado inicial. Então, quando o botão for clicado, essa função será invocada. E então teremos um novo estado usado para atualizar o estado inicial. Isso é tudo por enquanto. Nos vemos na próxima palestra. 19. 18 Tratamento de eventos: Ao trabalhar em projetos de recompensa, definitivamente o aplicativo terá interações com o usuário. Então, quando o usuário interage com o aplicativo, os eventos são acionados. Por exemplo, clique com o mouse, passe o mouse, pressione a tecla e muito mais. Portanto, lidar com eventos com elementos React é muito semelhante a lidar com eventos com seus elementos HTML DOM. Mas a diferença é que os eventos do React são nomeados usando o caso do karma. Então, por exemplo vamos ter onclick é o de on-click. Além disso, os manipuladores de eventos de reação são escritos dentro dos colchetes. Tudo bem, vamos praticamente abrir rapidamente os direitos de explorador no diretório de competências. Vamos criar um novo componente. E eles serão chamados de manipulador de eventos de clique dot g is RFC para gerar o componente funcional. Aqui, vamos definir uma função. Função. Clique em manipulador. Certo? Dentro da função, vamos consolar o registro Euclid, a ação dos direitos de voto dentro da div. Vamos votar a ação, certo. Portanto, a intenção aqui é ensinar como o evento onclick funciona. Então, diretamente na navegação, vamos especificar o onclick e, em seguida, configurá-lo para equilibrá-lo ao clicar neste botão. Queremos acionar essa função. Então, aqui eu vou apenas fazer o manipulador de cliques. Feito isso, precisamos renderizar esse componente diretamente no aplicativo. Zombarias. Destaques, coloque um comentário sobre eles. Em seguida, teremos o manipulador de eventos de clique mais próximo da tag de fechamento automático. Salve no resultado do navegador e em I para abrir o console. E agora, quando clicamos nesse botão, a mensagem é registrada no console. Vamos tentar. Você pode ver que clicou no botão de ação? Quando você clica novamente, a mensagem é registrada duas vezes. Então, VAP é que Lee sabe como lidar com eventos nos anos do React. Tudo bem, então volte ao código e vamos destacar o erro comum de começarmos a falar sobre o tratamento de eventos. Então, às vezes, você pode gostar de fazer algo assim. Pegando os parênteses. Então, quando você inclui os parênteses, isso se torna uma chamada de função. Vamos ver o comportamento quando você inclui os parênteses. Primeiro, eu tenho que recarregar. Você pode ver que ao observar o console, você perceberá que a mensagem está registrada no console. Portanto, você não precisa clicar no botão para que essa mensagem seja registrada. Você pode ver que, mesmo se você clicar no botão, nada acontece. Por quê? Quando você especifica os parênteses, isso se torna uma chamada de função. Então, quando você salvar o aplicativo e voltar para o console, a função será invocada imediatamente. Atingir. Ok, e agora vamos tentar tirar os parênteses com segurança no navegador. Agora temos que atualizar. Você pode ver que nada está registrado no console. E agora você precisa clicar no botão Ação para registrar a mensagem no console. Ponto a ser observado ao lidar com eventos. Você não precisa especificar os parênteses. Quando você faz isso, ele se torna um manipulador de eventos chamado e não uma chamada de função. Tudo bem, então é só uma função. Vamos limpá-lo. Salve no navegador. Tudo está funcionando conforme o esperado. Para recapitular. O manipulador de eventos no React js é escrito em chaves de karma, o que implica que você coloca em maiúscula a primeira letra de cada palavra , exceto a primeira palavra. Depois disso, você deve configurá-lo para um colchete encaracolado. E bem, dentro dos colchetes, você só precisa passar para dentro. A função é tão simples quanto isso. 20. 19 Rendimentos condicionais: Ao criar um aplicativo do mundo real, você definitivamente se encontrará em uma situação em que precisará renderizar o de Jess com base na condição de configuração. Portanto, temos quatro abordagens diferentes para resolver esse problema. Inclua as declarações if else, a variável do elemento, operador condicional do curtume e os segredos curtos ou o burrito. Mas nesta palestra, vamos usar a abordagem mais confiável e amplamente usada, que inclui curtume, operador condicional e segredo curto ou burrito. O que é prático é que ele abre rapidamente o Explorer, certo? Dentro do componente. Vamos criar um novo componente chamado login do usuário dot js. Gere o componente funcional. Então, dentro da div, teremos um parque de sucesso. E eu vou ser bem-vindo ao projeto de classe. E também teremos outra tag H2. E assim será, você não poderá acessar este projeto. Então, a ideia é a seguinte: se a condição for verdadeira, vamos exibir a cobertura com uma etiqueta e outra. Se a condição for falsa, exibiremos a tag H2. Vamos executar rapidamente esse componente do aplicativo, os destaques do GAS e fazer um comentário sobre ele. Faça asneira. Aqui mesmo. Vamos importar o login do usuário do login do usuário com barra de componentes. Aqui mesmo. Só temos que correr para cá. Aproxime-se com a etiqueta de fechamento automático e volte para cá. Vamos declarar rapidamente uma variável aqui. Então eu vou fazer o login e definir como verdadeiro. Então, vamos prosseguir com a implementação. Então, primeiro, temos que embrulhar isso em um colchete encaracolado Comando X para cortar, abrir os colchetes, vir aqui e colar. Então, agora que vou fazer isso, está logado. É verdade. Vamos exibir a tag H1 e outra. Vamos exibir a tag H2 no navegador. Bem-vindo ao projeto de ED Baba. Então, se mudarmos isso para falso, seguro, dê uma olhada. Você não pode acessar este projeto. Portanto, tudo está funcionando perfeitamente, conforme o esperado. Tudo bem? Portanto, isso é usado para indicar quando a condição é verdadeira. E isso é usado para indicar quando a condição é falsa. Deixe-me ampliar um pouco. Você pode ver que isso é usado para indicar quando a condição é verdadeira. Isso é usado para indicar quando a condição é falsa é tão simples quanto isso. Então, a próxima linha é a abordagem secreta. Portanto, a abordagem shot Secret é usada quando você deseja renderizar algo ou nada. Menos prático, é rápido? Então, primeiro, temos que fazer um comentário sobre esse destaque. Mantenha pressionada a tecla de comando, tab a barra para frente para usar a abordagem secreta de tiro. Então, vamos supor que você queira exibir olá, estou logado quando a condição é verdadeira. E se a condição for falsa, não queremos exibir um etano. Ok? Então, vou colocar os colchetes encaracolados. Então, o que eu vou fazer é logar e por cento, hum, por cento, então vamos ter uma etiqueta na cabeça. E dentro dessa tag, eu vou fazer olá. Estou logado no navegador. Nada acontece. Por quê? É simplesmente porque a condição é falsa. Então, quando você o altera para verdadeiro, seguro no navegador, olá, estou logado. Portanto, a abordagem shot Secret é usada para renderizá-la ou algo ou nada. Então, deixe-me explicar rapidamente como isso funciona. Portanto, a abordagem Shot Secret avaliará primeiro o lado esquerdo para verificar se a condição é verdadeira. E com base no verdadeiro C, o lado direito será avaliado. Então, se estiver logado for falso, o lado direito, nunca seremos avaliados. Reaja, ignorará o lado direito. Simplesmente porque não queremos que nada seja exibido na tela se a condição for falsa. Portanto, não haveria necessidade de avaliar o lado direito. 21. Método de mapa (atribuição de lista): Quando você está construindo um aplicativo React, um dos problemas que você sempre terá que resolver é como exibir uma lista de itens na tela. Por exemplo, você pode ser solicitado a exibir a lista de produtos que os funcionários nos usam, e assim por diante. O React G é a melhor maneira de exibir uma lista de itens na tela usando o método map. O método map permite que você itere sobre uma matriz e modifique seu elemento usando uma função de retorno de chamada. A função de retorno de chamada será então executada em cada elemento da íris. Técnicas. O mapa não é o futuro do React. Em vez disso, é uma função JavaScript padrão que pode ser chamada em qualquer matriz. Vamos ser práticos: é rápido para que todos entendam bem o suficiente? Vá em frente e crie um novo componente. Certo, dentro do diretório do componente. Clique em Novo arquivo. Isso será chamado de funcionário, pelo menos Delta G é genérico, o componente funcional. Vamos fechar o Explorer. Então, aqui, queremos criar uma variedade de funcionários. Os funcionários igualam, abrem e fecham colchetes. E dentro da matriz, vamos ter a vírgula Daisy, vamos ter a vírgula Mike, Joe. E por último, teremos a Angela. Observe que eu usei uma palavra plural aqui. Na verdade, é uma boa prática sempre usar uma palavra plural ao nomear sua matriz. Simplesmente porque uma matriz é uma coleção de elementos com um tipo de dados semelhante. Então, aqui temos vários elementos dentro da matriz. Vamos continuar. Agora, o grande desafio aqui é exibir a lista de funcionários no navegador. Então, normalmente, também podemos fazer isso usando o índice da matriz. Então, certo, dentro dessa div, teremos uma tag H2. Então, diretamente na tag H2, vamos especificar colchetes e, em seguida, escrever dentro desses colchetes, não precisávamos acessar os elementos na matriz. E, claro, para acessar o primeiro elemento na matriz, temos que usar o índice de matriz zero. Então, agora eu vou colocar os colchetes zero para os funcionários. Então, isso vai recuperar o primeiro elemento dessa matriz, realçá-lo , duplicá-lo três vezes. Então, para acessar os segundos elementos, temos que usar a ferramenta de indexação um. E por último, para o índice do quarto elemento três Command P. Vamos para o aplicativo Js. E aqui temos que renderizar as licenças do funcionário. Primeiro, temos que importar a lista de funcionários da barra de componentes de licença de funcionários. E abaixo, só precisamos renderizar um componente aqui e fechá-lo com a tag de fechamento suave. E no navegador aqui. Agora temos a lista de funcionários exibida no navegador. Tudo bem, então essa abordagem pode parecer simples e funcionar bem, sim, mas tem uma grande desvantagem. Deixe-me mostrar rapidamente o código VS e, no mínimo, ao observar a tela, você perceberá que ela envolve repetição de código. Então, vamos imaginar que temos milhares de funcionários, certo, dentro dessa coleção. Então, isso significa que temos que fazer isso milhares de vezes. Teremos algo assim ao atingir o índice certo milhares de vezes. Isso fará com que nosso código seja extremamente barulhento e que seja muito bom. Portanto, seguindo as melhores práticas, precisamos usar o método map para realizar uma titulação na matriz. Tudo bem, então vamos desfazer rapidamente. Linda. Agora só precisamos limpar a etiqueta H2. Vamos começar do zero. O método map é um código JavaScript que precisa ser avaliado, certo? Então, temos que embrulhá-lo em um colchete encaracolado. Em seguida, a linha Nestor deve chamar o método de mapa na matriz. Normalmente, a sintaxe é array dot. Mapa. Então, essas são exatamente as mesmas tags, mas neste caso, o nome da área aqui é funcionários. Então, vou apenas fazer o mapa de pontos dos funcionários. O método map usa uma função como argumento e, nesse caso, uma função de seta. E também a função de seta aceita um argumento que vou chamar de funcionário. Esse funcionário aqui representa cada elemento na matriz. Novamente, você pode decidir mudar o nome desse argumento, mas eu sugiro fortemente que você use um nome descritivo que seja relevante para a matriz sobre a qual você está iterando. É tão simples quanto isso. Tudo bem, então, dentro do corpo funcional, é onde a transformação ocorreria. Então, para cada funcionário, vamos devolver uma cobertura para marcar com o funcionário como uma devolução HTML interna, teremos uma tag H2. E certo, dentro da tag H2, vamos retornar o funcionário como um HTML interno, que é esse argumento aqui que representa cada elemento na matriz, é tão simples quanto isso. Salve no navegador. Aqui, o lindo, esse problema que acabamos de resolver é bem simples. Vamos escolher um cenário mais complexo. Voltar ao código VS. Em uma organização de recompensas. Os detalhes dos funcionários incluirão o nome do funcionário, ID, número de telefone e assim por diante. Tudo bem, então vamos criar rapidamente o objetivo de um funcionário de incluir todos esses detalhes corretamente, entre colchetes. Vou apenas limpar os elementos apertar a tecla Enter assim. Vamos ter um objeto diretamente dentro da matriz. Então, dentro desse objeto, teremos as propriedades e seu valor. E, nesse caso, os detalhes dos funcionários. Vamos separar o nome por uma vírgula. Vamos ter o sexo masculino separado por uma vírgula. Vamos ter um país, Reino Unido. E por último, vamos ter idade. Assim, você pode optar por ter quantos detalhes quiser. Mas para mim, vou parar aqui do lado de fora do objeto. Vamos separá-lo com a vírgula. Agora, vamos destacar e duplicar quantas vezes você quiser. Mas não se esqueça de alterar os detalhes, que são os valores. Então, aqui, eu vou mudá-los. Veja hoje, desculpe. Isso vai ser feminino. Aqui. Vamos fazer 19. Então você só precisa alterar os detalhes para terminar. E eu terminei com o meu. Você consegue ver a beleza? Portanto, essa abordagem não funcionará mais para esse objeto simplesmente porque não estamos mais lidando com cadeias de caracteres. Então, aqui, vou limpar a tag H2 e depois abrir e fechar parênteses, certo? Parênteses. Vamos ter uma tag H2 e escrever uma tag H2. Temos que exibir o funcionário como um HTML interno. E nesse caso, o funcionário aqui representa cada objeto na lista. E para acessar as propriedades, temos que usar o operador ponto. E aqui eu vou fazer o nome do ponto do funcionário. Então, quando direcionamos a propriedade, o valor será recuperado de forma tão simples quanto isso destaca, duplique-o quatro vezes. E temos algum erro aqui. Diz gestos, expressões devem ter um elemento pai. Venha aqui. Vamos ter uma div principal. Então, dentro desta div destaques e, em seguida, mova o código para dentro. Aqui, teremos funcionários, sexo, funcionários desse país. E por último, empregado na idade. Seguro no navegador. Você pode ver que tudo é exibido no navegador funcionando perfeitamente, conforme o esperado. Agora temos a lista de funcionários na tela, mas há outra abordagem para fazer isso em apenas uma linha. E isso é com o uso da interpolação de strings, que são objetos literais , diretamente do código VS. E vamos fazer isso rapidamente. Vamos nos livrar de tudo aqui. Limpe-o agora para que tenhamos que limpar um pouco o código. Perfeito. Então, aqui vamos ter outra tag H2, H2. Vamos usar um aparelho ortodôntico, certo? Dentro dos colchetes encaracolados. Vamos fazer uso da interpolação de strings. Para fazer isso. Nós apenas temos que especificar o chá da casca. E o batik está localizado no canto superior esquerdo do teclado, logo abaixo da tecla Escape. Aqui eu vou fazer o nome. Vamos colocar um sinal de $1, abrir e fechar colchetes. E eu vou fazer o nome do ponto do funcionário. Venha aqui. E aqui vamos ter agenda, pontos de funcionários, gênero. Vamos ter um país, um país para o funcionário. E por último, vamos fazer com que cada funcionária envelheça, salve-a. Tudo bem, então vamos formatar rapidamente esse código com mais bonito. Formate documentos com mais bonito. Acho que o código está bonito agora. Então você pode dar uma olhada. Veja, deixe-me diminuir um pouco o zoom. E aqui está. Dê uma olhada. Consegue enxergar direito? Vamos tirá-lo no navegador. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado? Adoro isso. Tudo bem, então depois do mapeamento, outra coisa que a maioria dos desenvolvedores faz é desestruturar o código. Deixe-me te ensinar rapidamente como fazer isso. Então destrua o código. Vamos vir aqui e então poderemos ter uma função JavaScript normal ou até mesmo um componente. Então, agora eu vou fazer const, abrir e fechar colchetes. Queremos estruturar o nome, a vírgula, o sexo, carma, o país e a idade e, em seguida, atribuí-los ao funcionário real. O mais simples é que, tendo feito isso, não precisamos mais usar o operador ponto para acessar as propriedades. Agora, poderemos acessá-lo diretamente. Venha aqui, selecione o ponto do funcionário e, em seguida, pressione a tecla de comando no teclado. Toque na letra D para selecionar todas as ocorrências do cão dos funcionários. É tão simples quanto isso. Em seguida, limpe-o. Salve, pressione a tecla Escape para desativar a edição multicultural. E no navegador. Eles têm esses lindos. Agora, o código parece mais conciso e mais legível. Eu adoro isso assim. Certo? Portanto, seguir as melhores práticas para a linha de aninhamento é refatorar o código. Ao refatorar o código, quero dizer simplesmente que devemos melhorar a estrutura do nosso código para melhorar a legibilidade e a facilidade de manutenção. Então, a maneira de fazer isso é separar a lógica do componente de apresentação. Vamos fazer isso rapidamente. Portanto, não queremos que toda a lógica seja escrita aqui. Portanto, temos que esconder a lógica em componentes separados. Abra o Explorer diretamente, dentro do diretório competente, crie um novo arquivo e ele será capturado. O ponto j do funcionário é genérico. Os componentes funcionais. Volte rapidamente para o lugar M, pelo menos. Então temos que destacar a partir das linhas 3032, linhas 38, comando X para cortar. Volte para o funcionário, selecione de menos quatro a seis, limpe-o e, em seguida, Command V para colar. Então, feito isso, temos que mapear esse componente, que é a empresa do funcionário, e voltar a empregar uma lista errada. Então, logo no topo, temos que importar funcionário de funcionário com barra de pontos. Logo abaixo. Temos que renderizá-lo aqui. Mais perto estavam as etiquetas de fechamento automático. Portanto, o próximo na fila é passar os DTs como sondas. Então, certo, não seria o funcionário Vamos ter um nome igual. Nome do ponto do funcionário. Vamos ter gênero, gênero de ponto de funcionário. E temos um país igual, funcionários não um país. E por último, temos h igual a um funcionário, ponto h. Certo? Então, só precisamos formatar o código. Linda. Conseguimos passar todos esses detalhes como sondas para o componente de funcionários. Portanto, o próximo na fila é receber as sondas tão rapidamente e ir até o funcionário. Primeiro, temos que recebê-lo passando sondas como parâmetro, diretamente, dentro da função. E depois disso, temos que atribuí-lo às sondas. Seguro. Tire-o no navegador. Certo? Temos uma tela em branco. Ok, volte ao código VS. Tudo parece bem por aqui. Vamos verificar o menor dano causado pelo funcionário, certo? Então, temos que marcar o colchete encaracolado, limpá-lo, vir aqui, limpá-lo e também tirar o ponto e vírgula. Salve no navegador. Eles são, esses. Tudo parece estar funcionando perfeitamente bem. Mas quando inspecionarmos o console, dê uma olhada. Vamos ver esse erro irritante aqui que diz que criança em uma lista deve ter um adereço de chave exclusivo. Vamos fazer isso na próxima palestra. Até lá. 22. 22 suportes chave exclusivos (mapeamento): Tudo bem, então quando você abrir o console, você verá esse erro irritante aqui. E diz que cada criança em uma lista deve ter um adereço único. Para resolver esse problema, basta voltar ao código e especificar a chave. Então, rapidamente, heroína para o código VS. A chave deve ser algo único. No mínimo, vamos procurar uma propriedade que possa ser usada para identificar de forma exclusiva cada funcionário. Então, ao observar a lista, você perceberá que o nome é único. Os funcionários, dentro dessa lista, têm nomes diferentes. Podemos então usar o nome como uma sonda de chave exclusiva. Venha aqui. Eu vou fazer uma chave igual, nome de ponto do funcionário. Ao salvar e conferir o navegador, você vê que o erro desapareceu? Linda. Tudo parece estar funcionando perfeitamente bem, mas não é aconselhável usar o nome como um suporte de chave exclusivo. Por quê? É simplesmente porque, em uma organização de recompensas, provável que você tenha dois funcionários diferentes. Esse B tem o mesmo nome. Portanto, não é apropriado usar o nome como uma sonda de chave exclusiva. Deixe-me te mostrar rapidamente. Aqui temos dois compassos. Então, vamos mudar esse cara para fazer baba, porque em uma organização de recompensas, é provável que dois funcionários tenham o mesmo nome. Então, quando você tiver algo assim, haverá um conflito. Então, usar o nome como sonda chave não vai mais funcionar. Você pode ver que diz e contar até crianças com a mesma chave. É Ababa. As chaves devem ser exclusivas para que o componente mantenha sua identidade entre D. Portanto, a melhor maneira de resolver esse problema é especificar um ID de funcionário simplesmente porque, em uma organização do mundo real, os funcionários devem ter um ID exclusivo. Portanto, cada funcionário tem um documento de identidade diferente. E essa é a melhor maneira de especificar as principais sondas. Venha aqui. Direto na lista. Só precisamos especificar o ID, torná-lo um, destacar, copiar, vir aqui, colar o Mickey para torná-lo três. E por último, faça isso para. Portanto, se você tiver mais funcionários na lista, também poderá especificar seus IDs para corresponder ao número de funcionários. E aqui, vamos alterá-lo para ID no navegador. Vamos atualizar rapidamente o console. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado? Outro ponto importante que quero que você observe é que, ao especificar as sondas-chave exclusivas, isso deve ser feito no nível superior. Volte ao código VS e deixe-me mostrar rapidamente. Se eu deva encerrar tudo na div principal. Destaques. Mantenha pressionada a tecla Alt no teclado, toque na tecla de seta para cima para movê-la para dentro. E então, quando salvamos e voltamos ao navegador, a chave não funcionará mais. Seu carregamento deve, pelo menos, ter um suporte de chave exclusivo. É simplesmente porque as principais sondas devem ser feitas no nível superior. Então, vou apenas destacar e depois cortar. Venha aqui diretamente na div. Cole isso. Tudo bem, só precisamos formatar rapidamente o código. Linda no navegador. Vamos atualizar o console. Você pode ver que tudo está funcionando perfeitamente bem. Isso é tudo por enquanto. Vejo que você gostou dessa palestra. Mantenha o foco. Irrealista. 23. 23 css regular: Nesta palestra, aprenderemos como estilizar componentes do React. Existem várias opções para estilizar o componente React. E essas opções incluem folhas de estilo CSS regulares, CSS embutido, módulo CSS, CSS no componente inicial do GIS e muito mais. Nesta palestra, vamos ficar com os três primeiros, nossa abordagem. E agora começaremos com a folha de estilo CSS normal. Então, rapidamente, dentro do diretório de competências, vamos criar um novo componente. Folhas de estilo irregulares. Dot G é que eu sempre me certifico de usar um nome descritivo em limar meus fogões, para que seja muito fácil para mim me referir a eles no futuro. Feche o Explorer e gere rapidamente os componentes funcionais. Então, certo, dentro da div, teremos uma etiqueta principal e vamos atingir uma tag. Vou aprender como estilizar o componente React. Tudo bem, então vamos estilizar rapidamente a etiqueta principal. Abra o Explorer e crie rapidamente um arquivo CSS diretamente no diretório do componente. Esse arquivo CSS seria capturado. Meus estilos pontilham CSS. Então, depois de criar o arquivo CSS, precisamos estilizar a tag Hadrian. Venha aqui. Primeiro. Para fazer isso. Temos que especificar o nome da classe. Vou chamá-lo de primário. Vá para o arquivo CSS. Aqui, precisamos estilizar o primário, que é o nome do cluster que será usado para referenciar a tag H1. Então, à direita, entre chaves, especifique regularmente o tamanho da fonte. Vamos fazer com que seja 50 pixels, a cor. Vamos torná-lo azul. E por último, só precisamos especificar a família da fonte. E eu vou aumentar a moeda, certo? Portanto, o próximo passo é vincular o arquivo CSS à empresa. E venha aqui logo no topo. Vamos importar a barra de pontos, meus estilos dot css, a mais simples que abre o componente do aplicativo. Portanto, temos que fazer um comentário sobre eles. Rapidamente. Vamos importar. Vamos importar rapidamente folhas de estilo regulares da folha de estilo normal com barra de componentes. Aqui mesmo. Só precisamos aproximar as folhas de estilo regulares com a tag de fechamento automático. Salve no navegador, aqui está, você pode ver isso? Linda? Tudo bem, então outra coisa que você também pode fazer é aplicar condicionalmente uma classe com base em sondas ou estados da empresa. Deixe-me te mostrar rapidamente. Então, aqui, teremos um adereço primário igual. Vamos definir isso como verdadeiro. Feito isso, precisamos receber as sondas diretamente no componente normal da folha de estilo. E fazemos isso tomando sondas como direitos de parâmetro dentro da deformação. Agora, o que eu vou fazer é isso. Vamos ter uma variável chamada className. Então, se props dot primary for igual a true, definiremos o nome da classe como primária e erros. Vamos definir o nome da classe secundário, o ponto mais simples. Então, basicamente, o resultado da operação no lado direito será armazenado nessa variável. E agora essa variável será usada como nome da classe. Virá aqui. Destaca, limpe, abra e feche os colchetes. E então temos que passar o nome da classe, que é esse cara aqui. Então, se props dot primary for igual a true, teremos o nome da classe como primário e, em seguida, estilizaremos o primário. contrário, se for falso, faremos com que o nome da classe seja secundário. Então, tudo isso será armazenado em uma variável constante chamada nome da classe. E então nós o passamos dinamicamente para cá. Então, isso aqui vai ser o primário quando a condição for verdadeira. E será secundário quando a condição for falsa. Volte para o arquivo CSS. Temos que estilizar o secundário. Vou copiar tudo daqui, daqui embaixo. Só precisamos mudar a cor para. Tomate. Aqui. Vamos eliminar a família de fontes. Seguro no navegador e no osso. Você pode ver que a condição é verdadeira? Portanto, vamos estilizar o feixe primário. Então, quando você voltar aqui e alterar a condição para forçar a segurança no navegador, teremos algo assim. Você pode ver o quão flexível ele pode ser? Linda? Portanto, isso é extremamente útil quando você deseja definir um estilo competente com base nas condições. Tudo bem, então o próximo é o CSS embutido. Mantenha o código VS. Vamos criar rapidamente um novo componente chamado inline dot js. Vamos gerar o componente funcional. Para obter os estilos embutidos, basta criar um objeto e aplicá-lo ao atributo de estilo. Deixe-me te mostrar rapidamente. Como sempre, vamos ter uma etiqueta de fone de ouvido. Certo? Estamos na tag principal, eu vou fazer, certo, então, usando o CSS embutido, temos que aplicar o atributo style. Então, aqui eu vou fazer o style equa. Vamos supor o rumo. Ok, então agora temos que criar um objeto esse título e implementar essa cidade interior. Venha aqui. Vou fazer const heading equa, defini-lo como objeto vazio, certo? Dentro desse objeto, temos que implementar esse tamanho de fonte tau. Então, isso é na forma de um par de valores-chave, certo? Então eu vou fazer 100 pixels, mais calmo. Karla, músculo vai fazer tomate. Linda. Então, quero que você observe que o tamanho da fonte está nas teclas de vírgula. Então é assim que os estilos embutidos funcionam GS. Portanto, não precisávamos importar a linha da barra embutida competente. Vamos colocar um comentário sobre o CSS normal. E então temos que aproximar a linha com uma tag de fechamento automático. Salve no navegador. E boom, certo, algo está errado em algum lugar. Este tau não é aplicado na cabeça uma etiqueta. Tudo bem, vamos dar uma olhada na linha n. Opa, há um erro tipográfico aqui. Então, só temos que fazer a correção necessária excluindo o t. Então, isso deveria ser Estilo. Economize e cresça. Tudo está funcionando perfeitamente, conforme o esperado. Uma coisa que quero discutir com você é que, se você quiser estilizar outra, clique em uma tag, algo assim. Vamos criar um problema para marcar desta vez. Vou dar a ele um atributo de estilo. Agora temos que criar outro objeto para a tag H2. Então, aqui vamos fazer uma constante. Vamos chamá-lo de cabeça para dentro. Vamos ter o tamanho da fonte de 50 pixels. Vamos torná-lo azul. Feito isso, temos que aplicar esse tau referenciando-o aqui. Cole, salve no navegador e no osso. Você pode ver? Portanto, ao usar o estilo embutido, você precisa criar um objeto diferente para os atributos que deseja estilizar. Isso é tudo por enquanto. E na próxima palestra, discutiremos o módulo CSS. Nos vemos na próxima palestra. 24. Módulos de 24 Css: Módulos CSS, nossos arquivos CSS nos quais nossos nomes e animações de classe têm escopo local por padrão, o que simplesmente implica que eles não podem ser usados fora de seu domínio. E isso é muito útil para evitar conflitos no CSS. Então, para explicar isso bem o suficiente, temos que usar as folhas de estilo CSS regulares e compará-las com o módulo CSS. Então, abra rapidamente o Explorer e, logo no SRC, temos que criar a folha de estilo CSS regular estilos dot css. E também logo no SRC, agora temos que criar o módulo CSS. E vou chamá-lo de ponto de estilo de meu aplicativo, retirado do módulo de convenção dot CSS. Isso é pelo menos como nomear seu módulo CSS. Então, vamos voltar para a folha de estilo normal, certo? Nas folhas de estilo regulares, teremos uma classe de erro. E vou estilizá-lo especificando a cor a ser vermelha. Simples e curto. Direitos dentro do módulo CSS, teremos uma aula de sucesso. E, claro, a cor vai ser verde. É tão simples quanto isso. Vamos acessar o aplicativo. Zombarias. Os direitos estavam no app.js. Temos que importar a folha de estilo CSS normal, estilos de aplicativos dot css. A linha ocidental é importar o módulo CSS, e a entrada é bastante exclusiva. Então, temos que especificar um nome. Nesse caso, vou chamá-lo de torres de módulos. Portanto, temos que importá-lo da barra de pontos do meu aplicativo, módulo de pontos, ponto CSS. Então, isso é exatamente como importar o módulo CSS. Vamos usar os arquivos CSS. Então, primeiro, vamos fazer um comentário sobre os componentes embutidos. Então, logo abaixo, teremos uma tag H2 cujo nome de classe é error. Então esse nome de classe aqui é esse cara aqui, certo? E então eu vou cometer um erro. Quando você salva no navegador. Você vai ter um erro aqui. Então, vamos implementá-los rapidamente para o módulo CSS. Eu vou ter um aqui para marcar. Teremos o sucesso e, em seguida, especificaremos o nome da classe. Então, o nome da classe será modulus towels socks x. Então, esse estilo de módulo aqui é o nome que usamos para referenciar o estilo CSS do módulo. Então, agora vamos dizer que o módulo tau pontilha a própria classe de sucesso que foi definida. Por aqui. É tão simples quanto isso. Vamos salvar rapidamente e ver qual código você pode ver? Linda. E agora é exatamente aqui que a diversão começa. Volte para o VS squared. Deixe-me mostrar que você acessa o app.js e depois vamos descomentar se o G embutido é seguro no navegador. Esses são os estilos que vêm dos J's embutidos. Sim. Agora deixe-me te mostrar uma coisa. Essa tag h2 é para as folhas de estilo CSS regulares. Então, se eu copiar isso e colar aqui, diretamente na linha, podemos fazer assim. E aqui eu vou setar a partir da linha para que possamos diferenciá-la. Você também consegue ver o erro na linha? Temos o erro do componente do aplicativo. Eu quero que você preste atenção aqui. Volte para o arquivo app.js. E então, quando eu copio o módulo CSS e colo diretamente no CSS embutido, assim. Quando você salva no navegador, encontraremos um erro. E diz que a toalha dos módulos não está definida. É exatamente disso que estamos falando. Módulos CSS, nossos arquivos CSS, cujos clusters, nomes e animações têm escopo local por padrão. Portanto, quando você tem um módulo CSS definido aqui, não pode usá-lo em um componente diferente porque ele tem escopo local. Entendido, lindo. Então, quando o retiramos de forma insegura, você pode ver que tudo está funcionando perfeitamente bem? E a vantagem do módulo CSS é que ele permite o escopo do CSS criando automaticamente um nome de classe exclusivo do formato. Em segundo lugar, os módulos CSS permitem que você use o mesmo nome de classe CSS em um arquivo diferente sem ter que se preocupar com conflitos de nomes. O que exatamente é um grande futuro? Isso é tudo por enquanto e espero que você entenda o que são os módulos CSS. Cuide-se. 25. 25 Entrada de formulário (componente controlado): Nesta palestra, discutiremos como trabalhar com formulários no React JS. Aprenderemos como capturar dados do elemento do formulário e , em seguida, disponibilizar os dados de captura para envio. Em HTML normal. Formulário, todos os elementos são todos responsáveis por lidar com a entrada do usuário e atualizar os valores, respectivamente. Retratado aqui, queremos reagir a uma ferramenta manual e controlar o elemento do formulário. Portanto, esses elementos de formulário cujo valor é controlado e 100 pelo React são chamados de componentes interpretados. Vamos prosseguir rapidamente criando um novo componente no diretório competente. Vamos criar um componente a partir do impute dot js. Gere o componente funcional. Então, eu só vou limpar isso. Vamos ter uma empresa dentro do formulário. Vamos ter um div, certo? Estamos na definição, vamos ter um rótulo. Então aqui eu vou fazer o nome. E aqui vou testar o tipo de entrada mais próximo com a tag de fechamento automático. Então, normalmente, isso é apenas uma imputa básica de HTML. Mas no React, temos que converter essa entrada em imputos controlados. Então, para fazer isso, temos que seguir três etapas. primeiro passo é importar o gancho usado e declarar a variável de estado que controlará os períodos de formação. Então, vamos importar rapidamente o gancho dos EUA. E aqui temos que declarar as variáveis de estado a serem usadas. E nesse caso, teremos custos, certo? Estamos na matriz, teremos a vírgula de nome, a função de configuração que será usada para atualizar o nome. Portanto, o estado inicial será uma string vazia. Oi, tudo bem, então, depois de fazer isso, vamos exibir o valor dinamicamente. Aqui. Eu vou valorizar. Opa, dê uma olhada. Isso deveria ser um nome. E aqui vamos fazer o nome. Vamos abrir a mistura de componentes do aplicativo para colocar um comentário sobre todas essas coisas aqui. No topo. Temos que importar dos imputos, dos componentes, barra de imputa. Logo abaixo. Temos que fazer isso, se formarmos colegas com segurança no navegador e boom, aumentá-lo um pouco assim. Bom. Então, esse é o navegador que temos. Mas, por enquanto, quando você digita no campo de texto, nada acontece. Por quê? É simplesmente porque precisamos especificar o onchange para atualizar o valor quando o estado muda diretamente no código VS. Ao mudar um núcleo. Vamos assumir uma função restrita aqui. Temos que chamar a função setName para atualizar o estado inicial. Portanto, o onchange dará acesso aos eventos e, com a ajuda do objeto de evento, vamos pegar o novo valor que o usuário digitaria. Para obter o novo valor, faremos eventos, pontos, alvos, valor em pontos, que é o valor atual que você está digitando nos detalhes visualizados. Esse valor aqui atualizará o estágio inicial. Seguro, e vamos tentar. Difícil agora, meu mouse está no campo de entrada, e eu vou fazer isso Ababa. Tudo está funcionando perfeitamente, conforme o esperado. Então, para entender como o onchange funciona, precisamos registrar o nome no console. Então, aqui, vou fazer o nome console.log seguro no navegador. Então, vamos inspecionar rapidamente o console. Agora mesmo. Não temos nenhuma dor, certo, no campo de entrada. Além disso, o console está vazio. Portanto, presume-se que temos uma string vazia. Então, quando eu digito algo assim, você pode ver que agora temos E no console e temos E aqui, diretamente no campo de entrada. Você pode ver exatamente assim que o evento onchange é acionado para chamar a função de configuração para atualizar o estágio inicial. Portanto, essa é a função de configuração que será usada para atualizar o estado inicial. E com a ajuda desses eventos, poderemos pegar o que o usuário está digitando no campo de entrada e usá-lo para atualizar o estado inicial. O mais simples é que eu falo demais. Então, vamos continuar. Vamos declarar rapidamente mais variáveis de estado, destaques e duplicá-las duas vezes. Vamos alterá-los para o endereço. Temos que definir o endereço. E isso vai ser distorcido. Diz q. O estado inicial desse campo terá o React js assim, ok, porque queremos torná-lo mais parecido com uma caixa de seleção. Então venha aqui. Destaques dos comprimentos 102 linhas 18. Duplique-o duas vezes. Tudo bem, então, para isso, vamos mudar isso para endereço. O valor será endereço, que é o estado inicial. Então, temos que ligar para o endereço. Venha aqui. Então, aqui, as coisas vão mudar. Gostei das linhas 29 a 35. Agora vamos ter um nível diferente de direitos dentro da gravadora. Eu vou fazer escala. Teremos uma seleção. Direitos dentro do seletor. Teremos as opções, especifique o valor. Reaja. Então, aqui eu vou fazer o React. Destaques do Js, duplique três vezes. Aqui eu vou ter Angola. Então, aqui vamos ter visto anos assim, certo? Por fim, também precisamos especificar o onclick. Então, à direita, selecione e especifique o valor. O valor será escalado, que é o estado inicial. Então, o onchange será igual a, vamos usar uma função anônima aqui, que dará acesso ao evento. Em seguida, chamaremos a função sets Q para atualizar o estado inicial. E então vamos direcionar e pegar os novos imputados. Alvo do ponto E, valor do ponto. Simples assim. Quando você salva no navegador, vamos ver se a opção de seleção está funcionando. Você consegue ver a beleza? Tudo está funcionando perfeitamente bem. Eu adoro esses. Tudo bem, então, por último, temos que especificar o botão para enviar a empresa. Certo? Onde fazemos isso agora? Ok, vamos ter outro div aqui. Logo nesta div, teremos um tipo de botão de aparafusamento que será enviar , valor. Enviar. Aqui, vamos fazer uma bomba segura. Tudo está funcionando bem. Certo? Finalmente, temos que definir uma função para a navegação. Vamos subir rapidamente. E então, como tentamos aqui, const, handle submete um coro. Aqui vamos levar um evento para nossa função. Portanto, para evitar a atualização automática da página, precisamos chamar a opção de previnas como padrão. Então, eu vou fazer EV para evitar a inadimplência. E, finalmente, quando o botão é clicado, queremos que o valor no campo de entrada apareça na caixa de diálogo de alerta. Então, aqui vamos fazer uso da interpolação de strings. Primeiro, temos o nome, temos o endereço e, por último, temos a habilidade. Certo? Então, agora temos que invocar essa função corretamente, dentro da empresa. Para fazer isso. Primeiro, precisamos especificar o onsubmit. E então eu vou lidar, submeter. Os dados mais simples. Quando você salva no navegador. Vamos dar uma olhada. Ok, eu reajo. Então, vamos clicar no botão enviar. Dê uma olhada. Você pode ver que a entrada aparece aqui na caixa de diálogo de alerta? Então, para recapitular, ao criar um formulário no React JS, você precisa converter o formulário em componentes controlados. E para fazer isso, primeiro, você precisa importar o gancho Did dos EUA e, em seguida, declarar as variáveis de estado necessárias a serem usadas. Depois disso, você precisa especificar a entrada e, em seguida, tomar o estado inicial como valor. Então, tendo feito isso, temos que especificar o onchange mais alto, certo? Então, vamos formatar o código. Linda. Você pode ver que isso é pelo menos como trabalhar com formulários em anos de React. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 26. 26 Reaja o fragmento: Nesta palestra, vamos discutir fragmentos. Um padrão comum no React é um componente retorne vários elementos. Portanto, fragmentos nos permitem agrupar uma lista de elementos infantis sem adicionar um nó extra à cúpula. Vamos entender isso bem o suficiente com um exemplo. Então, rapidamente dentro do diretório do componente, vamos criar um novo pacote chamado Fragments demo, frog demo. E logo na demonstração do sapo, criaremos um novo componente chamado fragmento de demonstração. Clique com o botão direito em Novo arquivo. Fragmentos de demonstração estão nos pontilhando. Gere o componente funcional. Pressione a tecla Escape para desativar a edição multicultural. Então, aqui, eu vou limpar isso. Vamos substituir o div por uma tag Hadrian. Agora, vou destacar o comando D do div para selecionar várias vezes o div e apagá-lo. E agora vamos pressionar a tecla Escape novamente para desativar a edição de Monte Carlo. Aqui mesmo. Vamos ter um exemplo de fragmentos. Tudo bem, então deixe-me te mostrar uma coisa. Aqui. Vamos ter uma etiqueta na cabeça novamente, batimentos cardíacos. Vamos fazer isso dessa maneira. Você pode ver que, se observar a tela, perceberá que o aplicativo está reclamando. E quando você passa o mouse sobre ele, ele diz gestos, as expressões devem ter um elemento pai. Portanto, a demanda do aplicativo, devemos agrupar a expressão GSS em um elemento pai. Tão rápido, vamos fazer isso aqui, div. Vamos dar a esse div um nome de classe de container. Destaques. Pressione a tecla Alt e toque na tecla de seta para cima para movê-la para dentro. Linda. Salve, vamos renderizar rapidamente um componente no aplicativo. G é rolar até o topo. E aqui, vamos importá-los ou fragmentos dos fragmentos de demonstração do componente slash frog demo slash. Logo abaixo. Faça um comentário sobre isso. Vamos renderizá-los como fragmentos. Aproxime-se com a etiqueta de fechamento suave. Certifique-se de salvar o aplicativo. E no navegador. Boom, você pode ver que tudo está funcionando perfeitamente bem, conforme o esperado. Mas quando você inspeciona os elementos, clique com o botão direito do mouse em Inspecionar. Deixa eu te mostrar uma coisa. Abra o corpo e os direitos. Dentro do corpo, você verá uma div com o id das rotas abertas Logo dentro dessa div, você verá outra div com o nome da classe do nosso aplicativo. Vamos abrir. E também dentro desse div, você verá outro div com o nome da classe container. Olha, temos muitos nodos parentais aqui, e isso pode diminuir o desempenho do nosso aplicativo. Tudo bem, então quando você abrir o div aqui com o nome da classe do contêiner, você verá a tag H2. Mas o problema é esse div com o nome da classe do contêiner é necessário para encerrar os gestos e expressões. Tudo bem, então ele serve como o nó principal. Ou seja, Jess tem elementos. Mas o problema aqui é que temos muitos elementos parentais aqui. E isso pode diminuir o desempenho do nosso aplicativo. O que vamos fazer agora é remover esse div. Portanto, a única maneira de fazer isso é com o uso de React Fragments. Heroína para VS Code. Abra o fragmento de demonstração. Então, temos que limpar o diferencial. Você pode ver que o aplicativo está reclamando? Agora, o que vou fazer é substituir o div pontos, fragmentos e destaques do React. Pressione a tecla Alt em seu teclado. Toque na tecla de seta para cima para movê-la para dentro. E não se esqueça, temos que formatar o código. Linda. Então, vamos inspecionar o elemento. Você pode ver aqui, você verá um div com o nome da classe do app. Anteriormente. Dentro desse div, você tem outro div com o nome da classe container, que é salvo como um nó extra. Mas agora não temos amostra aqui. Portanto, os nós extras que foram adicionados sumiram. Essa é exatamente a beleza do React Fragments. Ok, então isso ajuda a remover nós extras e melhorar o desempenho do seu aplicativo. Então, vamos dar outro exemplo rapidamente. Abra o Explorer. Certo, o sapo não faria uma demonstração? Vamos criar um componente chamado minha tabela dot js, genérico, os componentes funcionais. Então, vamos substituir o div por uma tabela. Certo? Estamos na mesa, teremos o corpo da mesa, bem dentro. Vamos ter a linha da mesa. Então, dentro da linha da tabela, teremos os dois pontos da tabela. Mas, nesse caso, a coluna será mantida em um componente separado. Rapidamente, vamos criar o novo arquivo de demonstração do componente de coluna Racket construct, meu ponto de coluna js RFC para gerar o componente funcional, feche o Explorer. Então, à direita nesta div, teremos os dados da tabela. E aqui eu vou ter destaques de habilidades, duplicá-los. Então, aqui eu vou ter o React js. Então, vá para o componente do aplicativo. Temos que renderizar minha mesa. Primeiro, basta fazer um comentário sobre isso. Estragar tudo. Vamos importar minha tabela de uma demonstração competente do slash frack slash my table. Na parte inferior. Temos que renderizar minha tabela G mais próxima com essas tags de fechamento automático. Salvar. Feito isso, temos que renderizar os componentes da coluna corretamente, dentro do zero, que é a linha da tabela. Então, primeiro, temos que importar minha coluna da minha coluna. Obviamente, está no mesmo diretório. Então, aqui temos que tornar meu cólon seguro. O navegador e o osso. Aqui está lindo? Novamente, vamos inspecionar rapidamente os elementos. Abra o corpo. O div com a ajuda de raízes. Temos outro div com o nome da classe AB. E então temos a mesa, o corpo da mesa, o papel da mesa. E agora temos um nó extra que é adicionado à árvore, que é essa div aqui, aberta. E certo, dentro dessa div, temos os dados da tabela. Então, ao inspecionar o console, você verá uma flecha irritante ali. Você pode ver que diz Validate DOM nesting TDI não pode aparecer como filho de um Div. Deixe-me te mostrar em uma coluna. Você vê esse cara aqui. Ele não pode aparecer como filho de um div. Portanto, a única maneira de resolver esse problema é substituir o div por um fragmento. Agora, vamos vir aqui, comandar D para selecionar todas as ocorrências de DV, apagá-las e eu vou fazer fragmentos de pontos de reação. Seguro. No navegador. Temos que atualizar o console. Par. Olha, o erro desapareceu. Isso não é lindo? Alto? Adoro isso. Tudo bem, deixe-me levá-lo aos elementos. Venha aqui. Agora, quando você inspeciona os elementos, o nó extra que foi adicionado à árvore DOM desaparece. Então, aqui temos o teorema do corpo T e o TD. Você pode ver que esse é exatamente o ponto que você deve observar ao trabalhar com uma tabela. Portanto, o TDI não pode aparecer em um div. Em vez disso, temos que colocar os elementos td em um React Fragments. O mais simples feito. Há uma sintaxe mais curta que você pode usar para declarar fragmentos. E a sintaxe é assim. Você só precisa selecionar o Comando D do fragmento de pontos do React para selecionar todas as ocorrências e apagá-las. Portanto, a tag vazia que você vê aqui é outra forma de escrever React Fragments. Quando você salva no navegador, o resultado parece exatamente o mesmo. Portanto, os pontos-chave que eu quero que você observe é que, ao usar a tag vazia como um React Fragments, você não pode passar os principais atributos para comer. Os principais atributos só podem ser passados com fragmentos de pontos do React. Deixe-me te mostrar rapidamente. Você pode ver que o atributo chave é o único atributo que pode ser passado para um fragmento de pontos do React. Então, quando você faz algo assim, usando a tag vazia como fragmento, isso não vai funcionar para você. Portanto, os pontos principais a serem observados são que chave é o único atributo que pode ser passado para um fragmento. E, no futuro, eles podem adicionar algum suporte para a adição de atributos. Por enquanto, a chave é o único atributo que pode ser passado para o ponto número dois do fragmento de reação. Fragmentos declarados com sintaxe explícita de fragmentos de pontos do React são o único tipo de fragmento que pode assumir os principais atributos. Então, isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco em sempre cuidar. 27. Introdução aos hooks: O que exatamente são ganchos e por que é importante aprendê-los? Tudo bem, então o que realmente precisou de ganchos? Antes de prosseguirmos? Quero ter certeza de que você já conhece os conceitos básicos do React js. E você está familiarizado com tópicos como componente funcional, solicitações, estados, mapas, controle, imputação e assim por diante. No entanto, se você é um novato, eu sugiro que você faça minhas chamadas individuais do React js para iniciantes, a fim de se equipar com os conceitos básicos do React e depois voltar aos ganchos e continuar com os nossos. E agora vamos começar. O que exatamente está enganado no React G é que os ganchos são uma edição próxima do sistema React 0.8, o que nos permite fazer uso de recursos de estado e ciclo de vida sem escrever uma classe. Tudo bem, então isso implica que seremos capazes de nos conectar ao estado React, fazer uso de todos os futuros do estado em componentes funcionais. Na verdade, usando o React Hooks, você pode obter exatamente os mesmos resultados que obteve usando o método do ciclo de vida. E você pode fazer isso com um código menor. Nódulos tecnológicos. O React Hooks funciona somente com componentes funcionais. Agora a pergunta é: o que precisou de ganchos? E por que é importante saber quem é o ponto número um? Anteriormente, quando o reacts foi criado. Para trabalhar com classes, você precisa entender claramente essa palavra-chave em JavaScript. E se você estiver familiarizado com o script java, você saberá que eles em JavaScript não funcionam exatamente como em outras linguagens. No entanto, quando se trata de React Hooks, você não precisa se preocupar com esses Key Rod. Por quê? É simplesmente porque queremos continuar a usá-lo. Parece bom. Linda. Ponto número dois. Você sempre terá que vincular o evento ao componente da classe. Mas com a introdução de ganchos no componente funcional, não há mais vinculação de métodos. E isso é, claro, um grande alívio. Ponto. Número três. As aulas misturam recarga a quente, muito pouco confiável. Simplesmente porque eles não se minimizam muito bem. Tudo bem, então as aulas misturam recarga quente, muito instável. O ponto número quatro, ganchos, possibilita criar lógica estável entre componentes sem alterar sua hierarquia de componentes. Anote esses pontos-chave. Você não pode usar ganchos dentro de um componente de classe. Os ganchos funcionam apenas em componentes funcionais. Tudo bem, então os ganchos só podem ser usados em empresas funcionais e são ineficazes dentro do componente de classe. Número dois, os ganchos não contêm nenhuma alteração significativa e são liberados, são compatíveis com versões anteriores. Em resumo, ganchos ou funções especiais que nos permitem conectar-se aos estados do React e aos futuros do ciclo de vida a partir de componentes funcionais, por exemplo, eles usam esse gancho como um gancho que permite adicionar dois componentes funcionais do estado de reação. Hooks permite que você se conecte futuros do React sem escrever uma aula. Com o uso de ganchos. Você não precisa mais se preocupar com essas palavras-chave. E, finalmente, nos permite reutilizar a lógica de estado. Agora, limpamos o conhecimento do que é o React Hooks. Vamos analisar isso de forma prática na próxima palestra. Isso é tudo por enquanto. Faça bem em se inscrever. E nos vemos na próxima palestra. Ainda focado em sempre cuidar. 28. 27 useState de estado: Vamos prosseguir com os ganchos usados usando-os praticamente. Crie rapidamente um novo aplicativo React e dê a ele um nome descritivo. Por exemplo, você pode decidir chamá-la de prática de basquete. Do meu lado. Eu já o criei. Então, vamos continuar com o VS Code. Abra os clientes do Explorer. Certo? Estamos no SRC. Vamos criar o diretório de componentes. Certo? Dentro do componente, vamos criar um novo arquivo chamado counter dot js. Gere os componentes funcionais. Perfeito. Tudo bem, então vamos falar sobre o uso dos ganchos. Eles usam que o gancho é uma função especial que assume o estado inicial como argumento e, em seguida, retorna uma matriz de duas entradas. O primeiro elemento na matriz é usado para armazenar o estado inicial. O segundo elemento na matriz é uma função de configuração que aceita os argumentos usados para atualizar o estado inicial. Vamos implementá-lo rapidamente para ter um conhecimento claro do que estou falando. Para prosseguir. Primeiro, temos que importar os usted que vêm aqui mais uma vírgula aqui, abrir e fechar o colchete. E eu vou fazer ustedes assim. Como eles podem usar esse gancho é uma função especial, certo? Então, temos que invocá-lo assim. Essa função assume o estado inicial como argumento. E neste exemplo, o estado inicial será zero, o que retornará uma matriz de duas entradas, const array. Então, vamos ter cones, coma, setCount, atribua assim. Essa sintaxe aqui é chamada de estruturação RE. É o futuro do ES6 aqui. O primeiro elemento nessa matriz é uma variável usada para armazenar o estado inicial. Portanto, o segundo elemento é uma função de configuração que aceita um argumento usado para atualizar o estado inicial forma tão simples quanto essas técnicas. O estado inicial pode ser um número, booleano, uma string ou uma matriz. Ok, então todos eles podem entrar aqui dentro desse parâmetro. Vamos exibir rapidamente a contagem no navegador. Então, certo, estamos no GSAs. Vamos usar nosso pacote de hedge one para exibir os colchetes de abertura e fechamento da conta. E então vamos fazer referência ao estado inicial, que é a contagem válida. Esse cara. A mistura mais simples de salvar pontos para executar seu aplicativo no terminal. Portanto, antes de prosseguirmos para o navegador, precisamos renderizar esse componente no aplicativo. G está aqui. Temos que selecionar a tag do cabeçalho de abertura, a tag do cabeçalho de fechamento. Bem no topo. Vamos importar cones de cones de barras de componentes de barra de pontos. Então, vamos administrar a conta aqui. Mais uma vez, o mais simples é garantir que a obrigação seja cumprida com segurança. No navegador. E osso. Você pode ver aqui o estado inicial da aplicação do contador. Vamos torná-lo mais bonito agora. Vou fazer aqui, é perfeito? Portanto, a intenção desta palestra é mudar o estado inicial do nosso aplicativo de conteúdo quando o botão é clicado. Então, para isso, temos que especificar uma votação, certo? Quais são os passeios de barco? Vamos especificar o botão onclick, onclick desse botão. Vamos invocar essa função de configuração. Então, aqui eu vou fazer a contagem de conjuntos. E então a função de configuração aceitaria um argumento que será usado para atualizar o estado inicial. E neste caso, o argumento será a cláusula de estados iniciais, o novo valor desse t. Deixe-me arrastar isso para baixo. Frequência cardíaca, e isso é uma chamada de função. Temos que convertê-lo em uma função de seta. Exatamente assim. Salve no navegador e no osso. Vamos experimentá-lo clicando no botão Alterar barco. Consegue ver isso? Perfeito. Essa é Lee, é a intenção. Para recapitular. Se você quiser fazer uso desses dados, o React G é o primeiro, você precisa importar o uso que quem se importa espera. E depois disso, você tem que invocar o gancho dos EUA e depois passar no estado inicial como argumento. Então, tendo feito isso, você deve atribuí-lo a uma matriz de duas entradas. E estamos nessa matriz, temos os primeiros elementos como uma variável usada para armazenar o estado inicial. E o segundo elemento é uma função de configuração que aceita um argumento usado para atualizar os estados iniciais. E neste caso, o argumento aqui são os estados iniciais mais um. Tudo bem, então, pela primeira vez, os componentes são renderizados. Em vez disso, a variável é criada e inicializada como zero. Agora, quando você clica no botão, o segundo método será invocado, que aumentará a contagem atual em um. Portanto, invocar o método setColor fará com que os componentes sejam renderizados novamente. E depois disso, as contagens conterão o valor atual que será exibido no navegador. Então, é tão simples quanto isso. Há duas regras de impotência a serem consideradas ao usar o React Hooks. Regra número um ganchos só podem ser capturados no nível superior. Portanto, não chame ganchos dentro de uma condição de loop ou funções aninhadas. Regra número dois, os ganchos só podem ser chamados dentro da função React. Isso é tudo por enquanto e até a próxima palestra. Mantenha o foco no cuidado holístico. 29. 28 estado de atualização com base no valor de estado de vigência: Nesta palestra, aprenderemos como definir o estado com base no valor do estado anterior. Além disso, discutiremos a diferença entre esse exemplo e o exemplo anterior que fizemos. Então, aqui nesta palestra, vamos demonstrar como incrementar, diminuir e até mesmo resetar o contador. Então, vamos fazer isso rapidamente. O diretório de componentes não seria? Vamos criar um novo componente chamado contador para gerar os componentes funcionais. Então, vamos importar rapidamente o uso desse gancho. É uma função. Temos que invocá-lo e, em seguida, tomar o estado inicial como argumento. E nesse caso, o estado inicial será zero, como de costume. E isso retorna uma matriz de duas entradas, certo? Então, eu vou fazer uma matriz aqui. Teremos que contar. Em seguida, temos a função de configuração para atualizar os estados iniciais de atribuição da placa. Isso simplificou nosso direito. Então, tendo feito isso, vamos passar rapidamente para o GSS. Vamos usar a tag Hadrian para exibir a corrente. Feito isso, temos que implementar o conselho Haynes. Primeiro, vamos ter aqui incrementos como duplicação três vezes. Aqui vamos ter um decréscimo. E aqui vamos fazer redefinições. Exatamente assim. Eu especifico o onclick. Executou uma função de seta. Vamos invocar as contagens definidas e, em seguida, passar a contagem inicial mais o novo valor. A mesma coisa aqui. Então, eu vou copiar, comparar, colar. Então, a diferença é que isso vai ser uma produção. Para o reset. Temos que declarar uma contagem inicial variável, constante . Igual à Zara. clicar neste barco, queremos redefinir as contratações do balcão. Então, eu vou fazer algo assim agora. Vamos resumir isso em um div. Mova-o o mais rápido possível para formatar o código. Perfeito, veja, sempre que eu formatar o código, você obterá um recuo adequado. Aqui, vamos especificar o OnClick. Portanto, temos que definir os valores para a corrente inicial. Ok, então, depois de fazer isso, abra o aplicativo. E aqui temos que importar a tatuagem de contador de barras competente para renderizá-la aqui. Desde a obrigação. Vamos pressionar os comentários sobre a corrente, que é o exemplo anterior. Confira no navegador. Você pode ver? Então, vamos tentar clicando na equipe de perfuração incremental. Que lindo. Ok. Diminuições, incrementos, incrementos, decréscimos, reinicializamos. Tudo está funcionando perfeitamente, conforme o esperado. Portanto, a intenção desta palestra é atualizar o estado com base no valor do estado anterior. Então, volte para a câmera dois. Vamos demonstrar esse exemplo com a equipe de perfuração incremental. E depois disso, você pode implementá-lo com o resto do botão. Ao clicar neste botão, chamaremos uma função de incrementos. E essa função seria definida na parte superior. Vamos ter incrementos constantes, defina-os para nossa função. Então, aqui, vamos definir contagem para contar mais um. Salve no navegador. E tudo ainda funciona perfeitamente como esperado, certo? Então, vamos direto ao problema agora. Vamos supor que, dentro dessa função, queremos incrementar a contagem em dois. Portanto, é mais fácil fazer algo assim. Só temos que duplicá-los e depois fazer com que seja assim. Ao salvar no navegador, atualize, clique no embarque incremental. Você pode ver que tudo está aumentando em um. Mas olha, esperávamos que esse aplicativo fosse incrementado em dois. Mas agora no navegador, nós o temos incrementado em um. Parece que não está funcionando bem. Portanto, essa é uma das desvantagens ao usar CMS mais um nos anos do React. Então, deixe-me explicar isso bem o suficiente. Ao analisar isso de perto, você perceberá que estamos atualizando o mesmo estado várias vezes. Como resultado, o react agregará todos esses dados em um único lote e os executará uma vez. Então, mesmo que façamos isso 1 milhão de vezes, deixe-me mostrar assim. Salvar. Eles também serão incrementados em um. Portanto, o React agregará todos esses dados em um único lote e os mais agudos. Portanto, você pode não ver os efeitos do que fez aqui porque isso deveria até ser incrementado pelo MSE 123456. Então, isso deveria ser incrementado em seis, mas olha, são incrementos em um. Portanto, essa é a desvantagem de usar count plus one e react. E agora a questão é: por que reagem se o estado encarna? Não se preocupe Eu lhe darei a resposta para esta pergunta no final desta palestra. Então, vamos resolver esse problema rapidamente. Para resolver esse problema, precisamos passar uma função anônima que tenha acesso ao valor do estado anterior. E agora a sintaxe terá uma aparência diferente. Defina contagens. Então, certo, estamos nessa função, vamos fazer contagens anteriores, configurá-la como nossa função, então teremos aqui contagens anteriores mais um, ok, destaques. Duplique-o. Então, ao fazer isso e acessar o navegador, recarregue, atinge o incremento comprado e vê que ele é incrementado em dois. É tão simples quanto isso. Você vê isso? Agora o aplicativo está funcionando conforme o esperado? Confie em mim, está realmente funcionando conforme o esperado. Aqui, passamos uma função que tem acesso ao valor do estado anterior e a incrementamos em um. Portanto, também podemos incrementar em cinco. Deixe-me mostrar a você duplicata, duplicata, duplicada, segura. No navegador. Temos que recarregar incrementos em cinco. É tão simples quanto isso. Então, por exemplo, você deseja incrementar todos esses topos em dez. Então você vai ter uma repetição de código como esta. Eu não gosto disso. Então, vamos fazer algumas causas de desidratação aqui. Agora vou fazer por let i igual a zero. Eu é menor que dois e depois eu mais, mais assim. Então, aqui vamos ter a função set. Então, imediatamente, teremos acesso ao valor do estado anterior. Em seguida, o valor do estado anterior mais um. Salve no navegador, atualize-o nos incrementos. Você pode ver que é incrementado em dois. Quando você vem aqui, você faz cinco. Salve no navegador, atualize. É incrementado em cinco. Então, isso nos leva de volta à pergunta: por que o estado de atualização de reação incorpora? Deixe-me lhe dar uma resposta. A razão pela qual o react dos emblemas do estádio é simplesmente porque no React js, sempre que o estado é atualizado, o componente será renderizado novamente. Vamos imaginar que temos isso atualizado milhares de vezes. Significa simplesmente que nosso componente será renderizado novamente milhares de vezes. E é isso que afeta o desempenho do aplicativo. Reaja, dê uma olhada e decidi atualizar acabou de ficar em lotes. Então, ele vai agregar todas essas ocorrências e executá-las. Ok, então eu entendo que esta palestra é bem complicada, mas eu sugiro que você reproduza o vídeo repetidamente para guardar sua memória. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 30. 29 Objeto como variável de estado: Nesta palestra, vamos entender como objeto trabalha com a dívida dos EUA quem trabalha duro, certo? Então, vamos começar. Estamos no diretório de componentes. Vamos criar um novo contador. E eu vou chamá-lo de contador de três pontos g é genérico, o componente funcional. Feche o Explorer. Tão rápido. Vamos importar o uso que conecta conforme declarado as variáveis de estado necessárias a serem usadas. Então, aqui teremos Const Mary usando essa matriz. Vamos ter um conjunto de funcionários em coma, funcionários iguais, certo? Neste exemplo, o estágio inicial será um objeto, certo, para votar nesses objetos. Vamos ter uma coluna de nome, defina-a como uma vírgula vazia. Vamos ter uma coluna de país, defina-a também como uma string vazia. Tudo bem, então o estado inicial aqui é bem diferente das palestras anteriores. Portanto, lidar com o objeto e usar esse gancho envolverá uma nova abordagem. É bem simples, então eu não quero te assustar aqui. Vamos limpar isso. Então, dentro do div, teremos uma tag de entrada e o tipo equa testa o valor. Temos que exibir o valor dinamicamente, nome do ponto do funcionário. Essa imputa será usada para o nome inalterado se o usuário começar a digitar no campo de entrada. Aqui, teremos acesso aos eventos, definiremos nossa função e, em seguida, invocaremos o método set employee. Obviamente, você já deve saber que isso aceitará um argumento que será usado para atualizar o estado inicial. É tão simples quanto isso. Então, quais são os parênteses vamos pegar em um objeto, e vou nomear esse ponto E como alvos, valor do ponto. Linda. Vamos fechar a tag de entrada. Ok, vamos formatar o código. Melhor. Destaques da linha 72, linhas 11. Duplique-o. Então, aqui vai ser o país dos funcionários. Portanto, o próximo item da fila é exibir o nome do local e o país no navegador. E nós vamos ter um div, diretamente dentro do div, vamos ter uma tag p e escrever a tag p. Eu vou fazer. Meu nome é funcionário, nome do ponto, destaques e duplicata serão funcionários. Mas país. Então, aqui vou fazer, sou do país dos funcionários. Portanto, qualquer país que você estiver digitando no campo de entrada aparecerá aqui. Tudo bem, tão seguro. Abra o aplicativo. Sim, temos que renderizá-lo aqui. E eu vou fazer, em parte, comparar três dos componentes, barra vírgula três e também um comentário no Canvas. Então, temos que renderizar a contagem de três pontos que G está mais próxima com a tag de fechamento automático. Salve no navegador. Boom, perfeito. Então, vamos digitar algo no nome. Então, o nome é uma barra dupla. Tudo está funcionando para o nome. Então, quando começarmos a digitar no campo país, perceberemos que, se adicionarmos comportamento, o país será você. Ok? Você pode ver que, ao digitá-lo no campo de entrada, o nome aqui desapareceria. E quando você começar a digitá-lo no Nim FUD, o país aqui vai desaparecer. Então, o que é de perto. Agora você também vê que, quando você começa a digitar no campo de entrada do país, o nome será apagado. Tudo bem, então deixe-me trazê-lo rapidamente para suas anuidades. Ok, vamos fazer isso aqui. Vamos fazer outro div, certo? E nesse div, vamos ter uma tag p, certo? Estamos na etiqueta p. Eu vou fazer JSON dot stringify. Em seguida, temos que referenciar o funcionário com segurança no navegador e no osso. Você pode ver agora que temos o nome e temos o país. Então, quando digitarmos no campo de entrada do nome, ele aparecerá aqui entre a string. E quando entrarmos no país, ele também aparecerá aqui entre essa sequência. Confira. Então, o nome será uma barra dupla. Quando eu digito no campo do país, você vê que o nome desaparece e o país permanece? Portanto, isso acontece simplesmente porque eles usam esse gancho para não gerenciar e atualizar automaticamente o objeto, ao contrário do método set state encontrado no componente da classe. Portanto, a solução para esse problema é usar o operador de propagação para gerenciar e atualizar manualmente o objeto. Deixe-me mostrar rapidamente que é extremamente simples. Então, aqui, temos que espalhar o funcionário assim. Ok? Aqui também, temos que espalhar o funcionário. Portanto, isso ajudará a gerenciar e atualizar manualmente os objetos. O mais simples que quando você economiza. Tudo bem, vamos tentar. Baba. Baba aparece aqui. O país, Reino Unido. O Reino Unido aparece aqui. Tudo está funcionando perfeitamente como espectador. Portanto, para concluir, sempre que você estiver lidando com objetos como uma variável de estado, você precisa usar o operador de propagação para gerenciar e atualizar manualmente o objeto. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 31. 30 Dispor como variável de estado: Nesta palestra, aprenderemos como usar matriz como variável de estado. Então, diretamente, dentro do diretório do componente, crie rapidamente um novo arquivo chamado hooks. Eles RE clicam com o botão direito do mouse em novos ganchos de ventilador, essa matriz dot g é RFC para gerar o componente funcional. Feche o Explorer. Vamos declarar rapidamente uma variável de estado a ser usada. Mas antes de prosseguirmos, primeiro, temos que importar o gancho usado no nível superior mais uma vírgula aqui. Abra e feche chaves onduladas, ustedes. Agora vamos declarar os itens da variável de estado. Temos que definir itens. E o estado inicial será uma matriz vazia. Ok? Portanto, a intenção desta palestra é adicionar itens a essa matriz. Ok? Portanto, os itens que vamos adicionar a essa matriz virão da entrada visualizada. Portanto, temos que declarar as variáveis de estado para o campo de entrada. Então, vamos imaginar que queremos adicionar os nomes dos funcionários a essa matriz. E eu vou fazer aqui. coma do funcionário iguala o funcionário, seu estado, e o estado inicial será uma sequência vazia. Então, onde quer que tenhamos aqui, será adicionado a esta área. E a questão é: como podemos fazer isso? Não se preocupe, vou te mostrar em um GC. Vamos passar rapidamente para a interface do usuário. Destacar. Esses, limpe-os. Agora vamos ter uma tag H2. E eu vou adicionar funcionário. Logo abaixo. Teremos uma entrada mais próxima da etiqueta de fechamento automático. E então o tipo será o valor do teste. Vamos pegar esse cara aqui, que é essa variável que vai manter o estado inicial. Copie e cole rapidamente aqui. Então, quando o usuário começa a digitá-los no campo de entrada, temos que pegar os valores que ele está digitando. Então, para isso, temos que especificar o onchange. Aqui mesmo. Vamos usar a função de erro. Então, certo, dentro da função de erro, temos que invocar a função de configuração de funcionários definidos. Então, tendo feito isso, a função deles aqui nos dará acesso aos eventos. E com a ajuda desse evento, poderemos segmentar e capturar o valor que o usuário está digitando. Ponto do evento, alvo, valor dos pontos. O mais simples disso. Portanto, a intenção é adicionar itens a essa matriz na camarilha náutica. Então, vamos especificar rapidamente a votação. Direitos de voto usando este barco que vou fazer em itens dentro do barco. Temos que especificar sua própria CLI. Então, ao clicar nesse botão, vamos invocar a função adicionar itens. Vamos definir rapidamente essa função. Chegue ao topo. Portanto, teremos uma adição constante de itens. Defina isso como nossa função. Então, certo, dentro dessa função, vamos invocar essa função de configuração dos itens de um headset. Vamos passar rapidamente os conjuntos de valores para a matriz de itens. E na palestra anterior, aprendemos que a função de configuração não tem a capacidade de corresponder a uma atualização. Ou, no caso da matriz, podemos dizer que a função de configuração não pode acrescentar o item ao final do contrato. Portanto, precisamos lidar com isso manualmente com a ajuda do operador de propagação. Deixe-me te mostrar rapidamente. Tudo bem, então, para definir o item, vamos ter uma matriz e depois distribuir a matriz de itens. Então, por fim, vamos empurrar um novo objeto. Tão simples quanto isso, certo? Estamos nesse novo objeto. Temos que especificar os itens de identificação, pontos e terrenos, porque queremos um ID que seja usado para identificar de forma exclusiva os itens que serão adicionados à matriz. Nome do funcionário. Então, aqui, dentro desse objeto, você pode adicionar quantos dados quiser. Então, por exemplo, se eu quiser adicionar o endereço dos funcionários, basta duplicar a variável de estado e especificar as variáveis e a função setter. Então venha aqui mais calmo. Você pode adicioná-lo abaixo. É mais simples que, depois de fazer isso, vamos mapear rapidamente esses itens. Vamos fazer isso logo abaixo da parte inferior. Eu quero usar a tag UL. Certo? Dentro da etiqueta UL, teremos os colchetes e, em seguida, os itens e o mapa de pontos. O método do mapa. Vamos usar uma função de seta e depois abrir e fechar parênteses. Certo? A função de erro não funcionaria. Vamos passar um parâmetro. Esse parâmetro representa cada item na lista. Então, aqui temos que exibi-lo na tela. E eu vou fazer, vou usar a etiqueta LI. Vamos especificar que a chave seja o ID do ponto do item. E logo, dentro do HTML interno teremos pontos do item, nome, que é esse nome aqui, o ID e o nome. Vamos executar esse componente corretamente, dentro do aplicativo Js. Temos que importar ganchos dessa matriz a partir dos ganchos de barra de componentes. RA, fez um comentário sobre eles? Venha aqui. Render, enganchou, Ira, seguro no navegador. E boom, Beautiful. Vamos dar uma olhada. Aqui. Eu vou digitar. Um bar, tem o primeiro funcionário e eu clico no quadro para ser adicionado. Vamos ter o microfone C boom. Ok, então vamos ter esse nome aqui. Isso é caro ao meu coração, certo? Tudo está funcionando perfeitamente, conforme o esperado. Ensinando bem, Beautiful. Volte ao código VS e deixe-me explicar o que acontece nos bastidores. Então, algo está acontecendo aqui e eu tenho que explicar isso de forma simples para que todos entendam bem o suficiente. Vamos passar para a função. Antes de prosseguirmos, vamos formatar rapidamente o código. Perfeito. Parece limpo e eu adoro isso. Ok, então quando a função Adicionar item é chamada, essa função de configuração é ativada. Então, fazemos uma cópia de todos os itens na matriz usando o operador spread para a lista de itens copiados. Em seguida, acrescentamos um novo objeto. E, ao fazer isso, não estamos sobrescrevendo a matriz original. Na verdade, isso o anexará ao final do contrato. Então, em resumo, ao trabalhar com matriz como uma variável de estado, primeiro, você precisa fazer uma cópia dos itens usando o operador spread. Feito isso, você precisa acrescentar um novo item e passá-lo como argumento para nossa função. Isso é tudo por enquanto. Nos vemos na próxima palestra. Curso cuidadoso e atendimento holístico. 32. 31 Organizar o código: Bem-vindos de volta a todos. Então, nesta palestra, vamos organizar a estrutura de pastas. Abra o Explorer, diretamente no diretório da empresa. Vamos dar uma olhada, criar um novo diretório chamado usted practice. Então, agora vamos copiar todos os arquivos relacionados ao uso que se conecta aos EUA. Praticou comida. Mantenha pressionada a tecla de comando no teclado. Toque para selecionar os arquivos relacionados. Arraste e solte nos EUA. Praticou. Clique em Mover. Perfeito. Portanto, agora temos o diretório e os direitos competentes dentro do diretório do componente. Temos a prática americana, que contém todos os arquivos relacionados ao uso de ganchos do Git. Porque vamos praticar muitos ganchos neste curso. Então, é bom. Organizamos nossa estrutura de pastas. Agora, o problema aqui é que faltarão as entradas. Feche o Explorer. E então vamos ver o que acontece. Direitos na terminologia. Você pode ver que estamos tendo problemas com as entradas. Você pode ver como está certo? Vamos resolver isso rapidamente. Volte para o componente do aplicativo, porque aqui é onde temos quase todas as importações. Então, vamos tirar rapidamente todas essas coisas e depois vamos fazer isso do zero. Como esses. Import Counter from dot slash components slash slash usava seu contador de barras prático. Você pode fazer o resto no final. Não entendo, certo. Então, quando você dá uma olhada no navegador , tudo está funcionando perfeitamente, conforme o esperado. Então, na próxima palestra, começaremos a praticar o uso desses ganchos. Isso geralmente é nosso e nos vemos na próxima palestra. 33. 32 useEffect de introdução: O efeito US é um gancho para encapsular código que tem a ver com efeitos colaterais. E é uma combinação de componente montado, componente e atualização. O componente será montado. componentes anteriormente funcionais não têm acesso ao ciclo de vida do componente. Mas com o esforço dos EUA, você pode explorar os futuros do ciclo. Portanto, podemos dizer que o Use effort hooks permite que você realize efeitos colaterais em seus componentes. Alguns exemplos de efeitos colaterais incluem a busca de dados e a atualização direta da cúpula. Cronômetros. Simplificando, eles usam sintaxe de efeitos que terá a seguinte aparência. Se você quiser fazer uso do efeito dos EUA. Primeiro, você precisa importá-lo na parte superior. Eles usam o efeito como uma função, portanto, temos que invocá-lo. É aqui que Lee é onde a diversão começa. Tudo bem, agora, eu quero que você cruze suas mãos e preste atenção à minha explicação. E, por favor, não se junte a mim na digitação de código. Portanto, o efeito dos EUA é uma função escrita. E aqui invocamos a função. A função usa dois parâmetros. O primeiro parâmetro é uma função que executada após cada renderização. Tudo bem, o que simplesmente implica toda vez que o componente for renderizado, a função será chamada. Portanto, o primeiro parâmetro do efeito US é uma função que é chamada após cada renderização. Esse cara aqui. Ok, deixe-me montar isso para que você possa entender a essência. Esse é o primeiro parâmetro do efeito US, que é uma função que é executada após cada renderização. E o segundo parâmetro é uma matriz vazia, que é amplamente chamada de matriz de dependência. Então, para isso, basta colocar uma vírgula aqui e depois pegar uma matriz vazia. Portanto, esse é o primeiro parâmetro dos efeitos dos EUA. E então esse é o segundo parâmetro dos efeitos dos EUA. Esse cara aqui fica empolgado depois de cada renderização. Então isso é chamado de efeito. Essa função aqui nos EUA, gancho de efeito, é chamada de efeito quando uma matriz de dependência vazia é passada como o segundo argumento para reutilizar o gancho de efeito, significa simplesmente que eles usam efeitos serão executados apenas na primeira renderização. Portanto, sempre que o componente for renderizado novamente, o efeito não será executado. Isso é exatamente o uso da dependência vazia RA. Outro ponto importante é que você também pode condicionar os efeitos usando as sondas ou o valor do estado. E você faz isso passando, certo? Estamos nessa matriz. Na próxima palestra. Quando começarmos as implementações, você definitivamente entenderá isso bem o suficiente. Tudo bem, então isso é apenas um vislumbre do que eles usam. O efeito é. Outro ponto importante que quero que você observe é que o efeito US é definido dentro do componente. E, ao fazer isso, poderemos obter acesso ao estado e sondas sem precisar escrever códigos adicionais. Então, vamos formatar rapidamente esse código e fazer com que ele tenha uma aparência melhor. Perfeito. Então, para recapitular, antes de usar esses efeitos, primeiro, você precisa importá-los no nível superior. O efeito dos EUA é uma função aqui. Então, temos que invocá-lo aqui. E feito isso, o efeito dos EUA aceita dois parâmetros. O primeiro parâmetro é uma função de erro, que neste caso é o efeito. E o segundo parâmetro é uma matriz vazia. Não entendi tudo isso. Provavelmente podemos dizer que o segundo argumento ajuda a produzir efeitos condicionais. Vamos praticamente na próxima palestra? Até lá. 34. 33 Componente fez montar e atualizar: Neste exemplo, vamos criar um aplicativo muito simples que atualiza o título do documento quando o botão é clicado. Então, vamos imitar o componente que foi montado e o componente foi atualizado rapidamente dentro do diretório do componente. Vamos criar um novo pacote chamado user effect practice. Comando B. Para abrir o explorador, clique com o botão direito do mouse no componente, nova pasta. Certo? Estamos na prática de efeitos dos EUA. Vamos criar um novo componente chamado exemplo de efeito: um ponto g é gerar o componente funcional. Então, vamos esquecer os efeitos colaterais por enquanto e vamos criar um contra-aplicativo simples. Importa rapidamente o uso desse gancho. Vamos declarar a variável de estado necessária a ser usada. O estado inicial será um número e, nesse caso, será zero, certo? Dentro do corpo. Temos que mostrar a contagem. E então vamos dar uma volta de barco e clicar neste botão. Vamos atualizar o estado inicial. Então, eu vou apenas clicar. E aqui temos que especificar isso ao clicar. Ao clicar, chamaremos a função setCount. E bem, dentro do parâmetro, vamos considerar o estado inicial mais as novas atualizações. Salve, abra os componentes do aplicativo e menos chove por aqui. Então, vamos importar o exemplo de efeito um da barra do componente usada se, na prática, o exemplo 1 do efeito de barra. Aqui mesmo. Vamos fazer um comentário sobre isso. Vamos renderizar o exemplo de efeito um. Safe on the browser e bone estão certos. Tudo está funcionando perfeitamente bem. Você pode ver? Ok, deixe-me fazer algo lindo. Vamos personalizar esse aplicativo. Então, eu só preciso remover o clique diretamente no HTML interno. E vou indicar com o sinal de mais, salve no navegador e pronto, fique mais bonita assim. Eu adoro isso. Vamos aumentar a bilirrubina. Isso se chama, a intenção desta palestra é atualizar o título do documento quando o botão é clicado. Vamos fazer isso implementando os efeitos de uso. Para implementar o efeito dos EUA. Primeiro, precisamos importá-lo. Eles usam o efeito também como uma função. Então, temos que invocá-lo. Venha aqui, e eu vou usar efeitos. O uso de ganchos AT aceita uma função como argumento que é executada após a renderização do componente. E isso vai ser uma função de erro. Então, a função que é passada como argumento, certo? Nos EUA, se a função de gancho é chamada de efeito, ok? Portanto, nos referimos a essa função como efeito. Então, certo, com os efeitos, vamos atualizar o título do documento. Título do ponto do documento igual. Vamos indicar o que diabos valeu e eu vou fazer. Você clicou em contar vezes. Então, estamos simplesmente passando a contagem aqui. Ok? Quando você salva e volta ao navegador, à direita, vamos clicar no botão de adição. Você vê que, ao observar com atenção, perceberá que o título está atualizado. Quando eu clico, você pode ver, agora diz que você clicou duas vezes. Espero que você possa ver isso. Tudo bem, então, inicialmente o título do documento é lido zero vezes. Então, quando clicamos no botão, isso fará com que os componentes sejam renderizados novamente. E depois que o componente for renderizado, o uso desse gancho será chamado. Clique em Você pode ver e agora clicamos em você uma vez. Clique novamente, você clicou duas vezes. E sem mais nem menos. Então, sempre que eu clico na placa em, o estado é atualizado e o componente é renderizado novamente. Quando o componente for renderizado novamente, isso fará com que o gancho de efeito US seja acionado e , em seguida, o título do documento mudará para o valor de contagem atualizado. Portanto, isso simplesmente implica que o efeito americano Hooke é chamado após a renderização do componente. Agora podemos ver que o comportamento desse aplicativo é exatamente o esperado. Deixe-me explicar para você o que acontece sob o capô. Para causar efeitos colaterais em componentes funcionais. Primeiro, temos que importar o efeito dos EUA. Quem? O efeito dos EUA, que é uma função, temos que invocá-lo. Então, depois disso, vamos passar uma função como argumento, certo? Dentro da função US IF. Então, dentro do efeito, definimos o título do documento usando a API do navegador de títulos do documento. Então, tudo o que você tem aqui dentro dessa função anônima vai esfriar depois que o componente for renderizado. Portanto, quando as renderizações do React estiverem acompanhadas, ele se lembrará dos efeitos que usamos. Em seguida, execute nossos efeitos depois de atualizar a cúpula. Isso acontece para cada renderização, incluindo a primeira. Anote esses pontos-chave. Ponto número um, os efeitos dos EUA são executados após cada renderização. Ponto. Número dois, o efeito de uso é definido dentro dos componentes. E, ao fazer isso, teremos acesso a esses dados e sondas sem precisar escrever nenhum código extra. E foi por isso que conseguimos acessar o título do documento. Para recapitular, sempre que quiser usar o efeito US, você deve importá-lo do módulo React após as entradas. Você precisa chamá-lo de direitos dentro do componente desta forma. Então, dentro da função, vamos usar uma função de seta como argumento. Então, certo, quando a função de erro é onde a transformação ocorre, após a renderização do componente, essa função seria capturada. Isso é tudo por enquanto. Nos vemos na próxima palestra. 35. 34 Efeito de execução condicional: Neste exemplo, aprenderemos como executar efeitos condicionalmente. Na palestra anterior, aprendemos que o efeito 2k é chamado após cada renderização. E, na maioria dos casos, chamar os efeitos após cada renderização pode criar problemas de desempenho. Portanto, precisamos de uma maneira executar condicionalmente efeitos em componentes funcionais. Vamos praticá-lo rapidamente para entendê-lo bem o suficiente. Crie rapidamente um novo arquivo chamado exemplo de efeitos para, diretamente na prática de efeitos dos EUA, teremos o exemplo de efeito dois. Pontos, zombarias geram o componente funcional, fecham o explorador ou o lindo m phi. Então, como sempre, temos que importar os ustedes e eles usam o efeito porque as mulheres são imagens dos exemplos de Buda. Então, o que vamos fazer é copiar tudo do exemplo de efeito aqui embaixo. Um exemplo de efeito destaca a cópia. Venha aqui. Só precisamos colar. E depois disso, vamos alterar os componentes para efetivar o segundo exemplo. Então, aqui embaixo, só temos que aplicar o Exemplo dois. Seguro. Abra também o componente do aplicativo. Temos que renderizar o exemplo do efeito para o exemplo do efeito de importação, dois pontos g estão aqui, coloque um comentário sobre isso. E então vamos renderizar um exemplo de efeito para salvar. Vamos voltar ao exemplo dois. Então, aqui, vamos ao log do console. O efeito de uso é chamado de Salvar o aplicativo e finalizar a compra no navegador. Clique no botão. Tudo está funcionando conforme o esperado. Quando inspecionarmos o console, você verá o resultado esperado. O efeito de uso é chamado. Agora eu quero te mostrar uma coisa. Vamos implementar rapidamente o campo de entrada. O uso é importado na parte superior. A variável de estado está aqui. Agora temos que criar a variável de estado para o campo de entrada. Vamos supor um nome, setName. Você afirma. E o estado inicial será uma string vazia. Pode ser uma aspa dupla ou uma citação simples. Desses dois irão embora. Tudo bem, vamos implementar rapidamente o campo de entrada. Vamos fazer isso logo abaixo da parte inferior. Feche com a etiqueta de fechamento automático. Aqui, eu vou digitar, testar o valor. Vai ser um nome. Portanto, inalterado, o que significa quando o usuário começa a digitar no campo de entrada chamado função de erro, que então dá acesso aos eventos. Ok, vamos chamar a função de nome do conjunto. Portanto, com direitos dentro do parâmetro da função setName, usaremos os eventos para capturar o que o usuário está digitando no campo de entrada. Pontos E, valor do ponto alvo. Acho que agora você já deve entender o evento onchange bem o suficiente. Feito isso, vá até o navegador, a menos que verifique o comportamento, precisamos atualizar o console. Agora, quando eu começar a digitar no campo de entrada, vamos experimentar um comportamento estranho. Então eu faço isso no bar. Você pode ver que, ao digitar no campo de entrada, o efeito US é chamado. Consegue ver isso? Agora, detectamos o efeito dos EUA sete vezes. Mas olha, nossa intenção é chamar os efeitos somente quando o botão é clicado. Então, quando você também clica no botão, o efeito do usuário também é chamado. E quando você digita algo no campo de entrada, eles usam o efeito também é chamado. Portanto, essa chamada é realmente irrelevante e definitivamente diminuirá o desempenho do aplicativo. Não é o ideal. A solução para esse problema é invocar condicionalmente o efeito US somente quando o valor da contagem for atualizado. Porque nossa intenção aqui é atualizar o título do documento quando o botão é clicado dessa forma, está vendo? Portanto, queremos que os efeitos sejam ativados somente quando o botão for clicado. Mas nesse caso, se você digitar algo no campo de entrada, eles usam o efeito chamado de fazer algo assim. Você pode ver que todas essas coisas são realmente irrelevantes? Vamos consertar isso rapidamente. Aprendemos na aula anterior que o uso da função vetorial aceita dois parâmetros. Felizmente, o primeiro é o efeito em si, e o segundo é a matriz de dependências aqui. Para acabar com esse problema, temos que especificar a vírgula do segundo parâmetro aqui e, em seguida, vamos pegar uma matriz vazia. Portanto, esse aplicativo depende das contagens para ser atualizado. Quando as contagens forem atualizadas, queremos que o documento vinculado também seja atualizado. Portanto, podemos dizer que o aplicativo depende da variável de contagem. Portanto, temos que levar a conta. Isso significa que o efeito será ativado quando a contagem for atualizada. Portanto, isso é pelo menos como executar condicionalmente um efeito. Quando você salva e volta para o navegador. Precisamos atualizar o navegador e também atualizar o console. Agora, quando você pressiona o botão de adição, o efeito é chamado e o título do documento é exibido em detalhes. De novo. Mostra os mesmos resultados. Quando começamos a digitar no campo de entrada. Você pode ver que não sentimos mais que adicionamos comportamento. Então, agora nosso efeito é chamado quando a corrente é atualizada. Você pode ver? Então, vamos tentar novamente, atualizar. Quando eu o digito no campo do imperador, nada acontece. O efeito não é chamado simplesmente porque queremos que os efeitos sejam chamados quando a contagem for atualizada. Então, quando eu clico no botão de adição, isso fará com que os componentes sejam renderizados novamente. E depois que o componente for renderizado, o efeito será detectado. Você consegue ver um console tecnocrático? Tudo está funcionando perfeitamente, conforme o esperado. Portanto, agora o efeito obtém código somente quando a contagem da variável de estado é atualizada. Isso é tudo por enquanto. Na próxima palestra, aprenderemos sobre a função de limpeza de efeitos dos EUA. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 36. Função de limpeza de 35 efeito: Nesta palestra, vamos fortalecer nosso conhecimento sobre ganchos de efeitos de notícias. Precisamente. Vamos discutir a função de limpeza do efeito dos EUA. Então, o que exatamente é a função de limpeza de efeitos? A função de limpeza é um gancho de efeito induzido de função que nos permite organizar o código antes que nosso componente seja montado. No entanto, o efeito US 2k é construído de forma que possamos retornar uma função diretamente dentro dele. E essa função de retorno está exatamente onde os arpões de limpeza. A função de limpeza evita vazamentos de memória e remove alguns comportamentos desnecessários e indesejados. Técnicas. Você não pode atualizar o estado dentro da função de retorno. Então, neste exemplo, vamos criar um aplicativo simples que bloqueará a posição do mouse no console, começando pelas coordenadas x e y. Então, certo, vamos usar uma prática eficaz. Vamos criar rapidamente um novo componente chamado efeitos. Exemplo três. Gere o componente funcional. Vamos importar rapidamente o efeito use that hook e they use. Efeitos mais calmos. O mais simples disso. Então, para as coordenadas x e y, vamos declarar a variável de estado necessária a ser usada, certo, dentro do componente. Vamos ter um conjunto constante x vírgula x igual. Usar isso no estado inicial será um número. Nesse caso, zero destaques e duplicatas. É por isso que temos que definir y da forma mais simples que vamos definir a função para registrar a constante de posição do mouse. Pegando eventos, defina-os como nossa função e vamos para o log do console. Este é um evento de mouse. Aqui mesmo. Temos que chamar a função de configuração para o x e escrever usando a função, vamos obter a coordenada x e o cliente de pontos X destaques e duplicar. Então, aqui vamos obter y. Então temos que chamar a função de configuração para y ou beautiful. Vamos chamar rapidamente o efeito de uso. Fora dessa função, que está dentro do componente, vamos invocar o efeito US. E o efeito é uma função que usa dois parâmetros. O primeiro parâmetro é uma função de seta. E o segundo parâmetro será a matriz de dependências. Mas, por enquanto, vamos continuar assim. Então, certo, quando a função anônima que vamos registrar no console, o efeito de uso é chamado. E aqui queremos adicionar o ouvinte do evento. Pontos na janela, adicione o ouvinte de eventos. Então, vamos colocá-lo em movimento com o mouse. Quando você move o mouse no navegador, queremos escolher as coordenadas x e y. Mova o mouse Kolyma. Em seguida, vamos invocar a posição do mouse de registro. Estou aqui. É o mais simples que estava no corpo? Vamos mostrar a posição. Vamos ter uma tag p coordenada x e y. Segura. Temos que renderizá-lo no aplicativo js. Venha aqui. Temos que importar o exemplo três do efeito de barra do componente. Exemplo de três destaques. Faça um comentário sobre eles. Feche com a etiqueta de fechamento automático. Salvar. Vamos conferir o resultado no navegador. E eu vou abrir o console. Tudo bem, então quando você move o mouse, você pode ver, agora você pode ver a posição do mouse na tela. Mas uma coisa que não gostamos é que cada vez que movemos o mouse, o efeito é chamado. O efeito é chamado toda vez que o componente é renderizado novamente. Tudo bem, agora temos que condicionar o efeito passando o segundo argumento, que neste caso será uma matriz vazia. Então, quando especificamos a matriz vazia, estamos praticamente dizendo ao React que esse efeito não depende de nenhuma sonda ou permaneceu. Portanto, não há razão para chamar esse efeito sobre consequências de uma nova renderização, o que simplesmente implica que ele será detectado apenas pela primeira vez após a renderização do componente. Vamos passar a matriz vazia como o segundo parâmetro. Estragar tudo. E aqui temos que separá-lo com uma vírgula e depois pegar uma matriz vazia salvar no navegador. Vamos recarregar. Você pode ver que o efeito é chamado depois que o componente é renderizado por um tempo falso. Agora, quando eu movo meu mouse, o efeito não vai mais esfriar. Veja, agora temos apenas a maioria das coordenadas registradas no console. Mas quando eu removo a matriz de dependências, cada vez que você move o mouse , os componentes são renderizados novamente. E então isso fará com que esse cara aqui se incendeie. Agora C, dê uma olhada. Você pode ver quando eu movo o mouse, o componente é renderizado novamente e o efeito que é acionado. E, claro, não queremos que os efeitos sejam acionados toda vez que movemos o mouse. Portanto, temos que especificar a matriz vazia desta forma. Quando você especifica a matriz vazia, isso fará com que os efeitos sejam acionados após a renderização dos componentes por um tempo falso. Portanto, se a consequência for renderizada novamente, o efeito não vai mais esfriar. Então, se há alguns meses seus efeitos forem detectados, apenas alguns. Você precisa especificar a dependência vazia RA e visitar. Linda. Isso geralmente está em n, Salve na próxima aula. 37. 36 Componente desmontará: Bem-vindos de volta a todos. Na palestra anterior, aprendemos como imitar componentes montados com efeito americano. Então, nesta palestra, aprenderemos como usar componentes entre as funcionalidades que estão disponíveis usando o efeito. Basicamente, o que faremos nesta palestra é criar componentes de contêiner para o exemplo de massa logarítmica que implementamos na aula anterior. Certo? Dentro do contêiner, vamos adicionar o botão que será usado para alternar a exibição dos componentes. Então, crie rapidamente um novo arquivo chamado contêiner da mãe. Então, certo, dentro da prática de efeitos, criar um novo arquivo chamado mouse container dot g é genérico, o componente funcional. Vamos importar rapidamente o que os EUA fizeram quem. Além disso, temos que importar o efeito Exemplo três. Portanto, o próximo passo é declarar a variável de estado necessária para a exibição. Então, aqui vou invocar o gancho dos EUA. Então, vamos fazer com que a tela chegue aqui. Isso tem que estar em chaves de vírgula e o estado inicial será verdadeiro. Feito isso, certo, estamos no GSAs e não teremos nenhum botão para alternar a variável de exibição entre verdadeira ou falsa. Alterne a exibição. Especifique o OnClick. Então, vamos invocar a função de configuração para uma exibição definida. Agora vamos ter aqui muitas telas altas, certo? Então, quando esse botão for clicado, vamos mudar de verdadeiro para falso, ok? Cada vez que o botão é clicado e se a variável de exibição for verdadeira, queremos renderizar o exemplo de efeito em três componentes. Vamos fazer isso rapidamente aqui. Então, se display for verdadeiro e n, renderizaremos o exemplo três do Efeito mais próximo com a tag de fechamento suave. Portanto, o estado inicial da exibição é definido como verdadeiro. E por esse motivo, os três componentes do exemplo de efeito serão renderizados na tela. E quando esse botão é clicado, a tela é definida como falsa. O exemplo do efeito três componentes serão montados da cúpula é tão simples quanto isso. Vamos executar isso rapidamente. Um contêiner de mouse nos destaques do aplicativo. Faça um comentário sobre eles. Venha aqui. Então, vamos importar a maioria dos contêineres do componente Slash Slash Mars, use o contêiner Practice Slash Mars. E é claro que temos que correr até aqui. Salvar. Vamos dar uma olhada no navegador. Tudo está funcionando perfeitamente como espectador. Tudo bem, vamos inspecionar o console. Agora, quando eu movo o mouse, as coordenadas x e y são atualizadas e a declaração está sendo impressa no console. E agora, quando eu clico na tela seletora, esse componente será montado a partir da cúpula. Vamos tentar. Consegue ver isso? Linda? Agora, o problema aqui é esse. Se eu tentar mover o mouse, a declaração também será impressa no console. Dê uma olhada. Veja, eu quero que você observe esse cara aqui. Cada vez que eu movo o mouse, as declarações serão impressas no console. Mas veja, montamos os componentes, embora o componente tenha sido removido, o ouvinte de eventos que pertence ao componente ainda está ouvindo e executando. Você pode ver quando eu movo o mouse , você vê isso? O problema é que, sempre que você estiver montando seu componente, sempre cancele todas as assinaturas, os ouvintes e a solicitação de busca que você fez. Simplesmente porque não queremos expor nosso aplicativo a vazamentos de memória. O que precisamos fazer para resolver esse problema é limpar a função. Ao limpar a função, vamos imitar a quantidade n do componente. Fazemos isso retornando uma função, certo? Estamos no primeiro parâmetro dos efeitos dos EUA. Vamos fazer isso rapidamente. Então abra o efeito Exemplo três. Deixe-me te mostrar, certo. Dentro dessa função, retornaremos outra função chamada função de limpeza. E eu vou remover pontos da janela. O ouvinte do evento deve se mover para uma posição mais calma do mouse. Tão simples quanto isso. Agora vamos dar uma olhada no console para realmente indicar que limpamos nossa função. O componente Console.log é montado e o código é limpo e seguro. Vamos tirá-lo no navegador. Vamos recarregar, certo, vamos mover o mouse. Você pode ver que estamos obtendo as coordenadas x e y da posição do mouse. E temos o estadista sendo impresso no console. Agora, quando eu clico na tela de alternância, o exemplo de efeitos de três componentes estará montado. Dê uma olhada. Vamos mover o mouse para verificar se está tudo bem. Você pode ver que ele não está mais ouvindo o evento. Agora, no console, o componente está montado. O código está limpo. Minuto técnico desses pontos-chave. Sempre que quiser montar seu componente, sempre cancele todas as assinaturas, os ouvintes e a solicitação de busca que você fez. Isso é tudo por enquanto. Nos vemos na próxima palestra. Curso mais rígido, animalesco aqui. 38. 37 Aperte várias postagens: Com o sólido conhecimento adquirido nas palestras anteriores. Nesta palestra, aprenderemos como buscar dados de uma API. Então, para implementar esse exemplo, vamos usar a API de espaço reservado JSON. O placeholder JSON é uma API REST on-line gratuita que você pode usar sempre que precisar de dados falsos. E é usado principalmente para ensinar prosa em pares. Então, vá rapidamente para Jason placeholder.code.com. Role para baixo até as rotas. Aqui. Temos um endpoint diferente. Mas nesta palestra, vamos abordar os vários terminais de postagem. Clique para abrir. Consegue ver isso? Então, aqui temos os dados no formato JSON, que é simplesmente uma matriz de objetos com propriedades diferentes em termos de par de valores-chave. Então, usando o gancho de efeitos, queremos buscar esses dados e exibi-los na tela com a ajuda de uma biblioteca externa chamada ox use. Você também pode usar a API Fetch. Mas nesta palestra, vamos nos concentrar em como usar atos. Use rapidamente, vá para o VS Code. Certo, então aqui é exatamente onde o formulário começa. Certo? Estamos no diretório de componentes. Vamos criar um novo pacote chamado busca de dados. Com os direitos contidos nos dados do envelhecimento, vamos criar um novo componente chamado fetch. Várias postagens geram o componente funcional. Vamos declarar rapidamente uma variável de estado a ser usada. Mas antes de prosseguirmos, primeiro, temos que importar os EUA no nível superior. Aqui mesmo. Vamos declarar uma variável de estado para a postagem. Vou fazer postagens constantes, coma, postes fixos. E o estado inicial será uma matriz vazia. Ao observar a estruturação da RAD, você perceberá que o elemento é nomeado com pleura preocupada, sabe por quê? É simplesmente porque estamos buscando vários dados. Então, quando você está escrevendo código como um profissional, você sempre terá que se concentrar nas convenções de nomenclatura. Estão certos. Eu falei demais. Vamos continuar. Ok, então o próximo na fila é chamar o efeito de arco. E antes de prosseguirmos, também precisamos importar o efeito dos EUA. No nível superior. Aqui. Vamos chamar a função de uso do efeito. E a função de efeito assume uma função de seta à medida que cai no parâmetro. Então, certo, dentro dessa função de erro é onde vamos fazer o teste getter. Mas antes de prosseguirmos, também precisamos instalar uma biblioteca externa chamada axial. Rápido até o terminal. Precisamos interromper o servidor Control C em execução no momento para parar e garantir que você esteja no diretório do cliente. E então eu vou fazer a instalação do gerenciador de pacotes node. A instalação está em andamento. Feito, o Access foi instalado, bem-sucedido. E na parte superior, também precisamos importar axiomas do módulo de acesso. O mais simples, nesse sentido, dentro da função de efeito, temos que fazer uma solicitação get para o URL. E eu vou fazer axiomas dot get. E depois volte para o navegador. Temos que copiar o URL. E quando acessarmos esse URL, toda essa postagem será recuperada. Parece bom. Linda. Vamos fazer isso rapidamente. Copie e cole aqui mesmo. Os mais simples que não tiverem feito isso, a solicitação get retornará uma promessa. Portanto, temos que registrar a resposta. Aqui. Eu vou fazer o Dot. Então. Aqui vamos responder. Logo abaixo, vamos registrar os entrevistados no console. Se houver algum erro, precisamos detectá-lo e registrá-lo no console também. Os pontos pegam. Para detectar o erro e registrá-lo no console, erro. Então, estamos apenas cortando o ar aqui. Então, seja qual for a seta, vamos ao registro do console. O erro é o mais simples que está certo. Feito isso, o próximo passo é atualizar o estado inicial com a nova Costa. Então, para isso, temos chamar a função de configuração aqui. Defina postagens para dados de pontos de resposta. Caras legais. Quando você fizer isso, tudo aparecerá conforme o esperado. Vamos renderizá-lo rapidamente na tela. Venha aqui. Vou usar os direitos de tag da UL dentro dos colchetes de abertura e fechamento da UL para inserir expressões em JavaScript. E eu vou postar um mapa de pontos. Deixe-me mostrar este post aqui. Esse cara, queremos mapear tudo o que temos aqui e como ele é exibido na tela. E você sabe que o método de mapeamento assume outra função. E essa função recebe um parâmetro. Esse parâmetro aqui representa, no mínimo, cada postagem. Aqui vamos ter a etiqueta LI. Então, certo, dentro do HTML interno, podemos fazer o título do ponto da postagem. Deixe-me te mostrar rapidamente. Você pode ver que temos o título aqui, o ID do corpo e o ID do usuário. Então, no meu caso, eu só quero recuperar o título. Você pode decidir recuperar o corpo e o resto deles. Agora também temos que especificar a chave, chave igual ao ID dos pontos, que é esse ID aqui. Que lindo. Vamos importar, buscar várias postagens a partir da busca de dados de barra de componentes, lodo , buscar várias postagens. E feche isso rapidamente. Pegue várias postagens, salve vá até o terminal. Temos que iniciar o servidor. E eles são tão lindos. Agora, conseguimos recuperar todas essas postagens aqui, que é justamente a ferramenta PIE. Se você quiser recuperar o corpo, é extremamente simples. Venha aqui e então você só precisa postar pontos de forma segura no navegador. Você pode ver agora que recuperamos o título e o corpo. Então você pode fazer isso no final, mas eu quero manter as coisas simples aqui. Salve no navegador. Tudo está funcionando perfeitamente, conforme o esperado. Mas ao observar o console, você verá a repetição contínua de dados devido ao envelhecimento. Você pode ver? Mas queremos que os dados sejam obtidos somente no componente montado. Para isso, precisamos voltar ao código e especificar a matriz de dependências. Certo, dentro da função de efeito. Aqui mesmo. Deixe-me mostrar que esta é a função de efeito. Portanto, o segundo parâmetro será uma matriz vazia. Quando você salva e volta para o navegador. Vamos recarregar. Você vê agora que o console está extremamente limpo e tudo está funcionando perfeitamente, conforme o esperado. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o cuidado focado e holístico. 39. 38 Botão de id: Nesta palestra, aprenderemos como acionar o efeito na camarilha eleitoral. Portanto, a intenção desta palestra é fazer a solicitação GET dentro do manipulador de cliques. Para continuar, precisamos de uma variável de estado cujo valor só mudará em um grupo de barcos. E por enquanto, o único valor que muda neste aplicativo é esse id. Então, deixe-me mostrar rapidamente como sendo o pilar de Zuma. Então, quando eu faço um, você pode ver? Então é disso que estou falando agora. Queremos fazer isso na camarilha eleitoral. Portanto, não queremos implementá-lo dessa forma. Volte rapidamente para o código VS e vamos continuar. Para implementar essa funcionalidade. Vamos declarar rapidamente uma nova variável de estado cujo valor mudará quando o botão for clicado. Aqui mesmo. Eu vou fazer exatamente assim. Em seguida, chamarei esse botão, clique em ID. Claro, isso será alterado assim, simples assim. Então, vamos deixar o estado inicial assim. Então, vamos implementar rapidamente a navegação. Tudo bem, então antes de prosseguirmos, temos que formatar o código para que pareça limpo, um pouco bonito. Agora vamos ter o botão aqui. Ao clicar neste botão. Queremos invocar uma função e o nome da função é tratado. Clique no botão, digite, navegue e, em seguida, o valor será id e rats. Mas no teste interno eu vou fazer um post gordo. Tudo bem, estamos prontos para ir. Só falta uma coisa, agora. Por isso, queremos definir o botão ID do clique para o novo ID no campo de entrada. E como fazemos isso? Temos que fazer isso, certo? Dentro dessa função. Aqui, a banheira, teremos uma função constante de cem cliques, defina-a para nossa função. E então temos que chamar a função de configuração para clicar no botão de configuração. E agora estamos atualizando-o com o ID atual que o usuário digitará, no campo de entrada como este. É tão simples quanto isso. Então, com isso, estamos configurando o botão ID, o ID que será capturado do campo de entrada. Portanto, a próxima fila é permitir que o efeito dependa do ID do botão inferior do ID e não da alteração irregular. Deixe-me te mostrar rapidamente. Você pode ver anteriormente que nosso efeito depende desse ID que será capturado no campo de entrada. Mas agora queremos configurá-lo na parte inferior, clique no ID, que é esse cara aqui. Aqui. Temos que alterá-lo para ID de clique no botão. O ID que capturamos do campo de entrada está sendo armazenado dentro desse cara aqui. Vamos dar uma olhada no navegador. Salve no navegador como um. Você não busca. Linda. Vamos fazer dois. Aqui na busca. Frase perfeita. Tudo está funcionando perfeitamente, conforme o esperado. Isso é tudo por enquanto. Nos vemos na próxima palestra. Ainda focado no cuidado holístico. 40. Introdução à API de contexto: Bem-vindos de volta a todos. Agora vamos discutir um livro muito interessante e poderoso chamado contexto dos EUA. Mas antes de prosseguirmos, é bom. Entendemos o que é a API do concurso e como ela funciona. Então, depois disso, exploraremos os ganchos de contexto dos EUA que facilitam as coisas. Então, o que é uma API de concurso? Vamos considerar rapidamente um aplicativo React que tenha vários componentes. Agora, no topo está o componente do aplicativo, que é claro os componentes raiz de cada aplicativo React aninhados nos componentes do aplicativo são vários outros independentes, um componente isolado em diferentes níveis de árvore. E temos os componentes a, b e c no primeiro nível. Componente. X está aninhado no componente B. Componente por que está aninhado na competência? E o componente z está aninhado no componente y. E agora o desafio que temos aqui é exibir o preço total de um item nos componentes a, x e z. E o preço do item será mantido como uma propriedade no componente do aplicativo. Portanto, para poder exibir o preço e os componentes aninhados, precisamos passar o prêmio para eles como sondas. Tudo bem, então, para que o componente a receba esse preço, temos que repassá-lo diretamente como adereços. E isso é bem simples e direto. Para que o componente X receba esse preço, temos que passá-lo pelo componente intermediário B até a empresa e os ovos. Para que o componente z receba o concurso de preço, temos que passá-lo pela competência intermediária e por Y. Tudo bem? Então, ao observar cuidadosamente a árvore de componentes, você perceberá que os componentes b, c e y não precisam das sondas. Mas ainda precisamos passar as sondas pelo componente para chegar ao componente necessário onde os dados serão consumidos. Portanto, nesse cenário, os componentes B, C e Y são chamados de transportadores de sondas que não fazem uso dos prompts, mas precisam transportar as sondas até os componentes necessários. Portanto, o processo de passagem de adereços pelo componente aninhado é chamado de perfuração de sondas. Então, agora, eu quero que você feche os olhos e imagine que temos mais de 25 componentes aninhados aqui. Isso significa que, com todo esse componente intermediário, teremos que encaminhar as sondas para o componente em questão. E, claro, vamos bagunçar nosso código. E isso se torna um problema para certos tipos de solicitações exigidas por muitos componentes em nosso aplicativo. Como as preferências de idioma. A autenticação usa o tema UI. Ok, então, seria bom se pudéssemos enviar dados diretamente para o componente necessário questão, sem precisar sondar perfurar os componentes aninhados. Ok, então aqui é onde estão as colunas da API do concurso. concurso fornece uma maneira de passar dados pela árvore de componentes sem precisar perfurar manualmente ao longo do semestre. Empresas. Em outras palavras, o concurso react nos permite compartilhar dados em nosso componente com mais facilidade. Isso ajuda a evitar sondas, perfurações. Sim, então isso é tudo por enquanto. Nesta palestra, veremos como a API de contexto era usada antes da introdução de quem cuida dela. Temos muitas mentiras práticas, o gancho de contexto dos EUA para ver a flexibilidade que isso traz para a mesa. Tudo bem, então vamos praticamente usá-lo na próxima palestra. Te vejo então. 41. 39 Implementar o contexto: Nesta palestra, teremos uma compreensão prática do contexto, da API e de como ela funciona. Então, vamos implementar um concurso de preços que permitirá que componentes em três níveis diferentes leiam uma sonda que é passada no nível superior. Certo, neste exemplo, vamos usar o componente z para exibir o preço dos itens sem precisar investigar, detalhar a competência intermediária e por quê. E, a propósito, criei um aplicativo React chamado concursos práticos. Então, pause rapidamente a palestra no final e gere um novo aplicativo React. Tudo bem, depois de fazer isso, vamos criar rapidamente o diretório de componentes. Certo, dentro do SRC. Clique com o botão direito em novos componentes de alimentos. E o diretório de componentes. Vamos criar o componente de competência y e z z z dot js. Por fim, teremos o competente y dot j é lindo. Então eu só tenho que levar o z para o STM aqui, comando V para fechar o Explorer. E então vamos gerar os componentes funcionais, certo? Estamos nas flores. E agora vamos nos concentrar na borda direita da árvore. Ok? Então, ao observar a borda direita da árvore, você perceberá que o componente z está aninhado no componente y. componente y está aninhado na competência. E, por fim, a competência está inserida exatamente no componente do aplicativo. Então, vamos seguir rapidamente esse padrão e transformá-lo em código. Então, seguindo o padrão da árvore, o componente z está aninhado em y. Então, aqui está o porquê competente? Vamos importar o componente z, o componente z. E depois vamos renderizá-lo aqui. Componente por que está aninhado no componente C? Volte para a competência, importa o componente y. Então, aqui temos que renderizar o componente y. Por fim, a competência é então renderizada no componente do aplicativo. Vá para o componente App. Importe competência da competência competente de corte e cabelos ruivos. Temos que tornar a competência tão simples quanto isso. Certo? Então é aqui que Lee é onde a diversão começa. Para implementar concursos. Temos que seguir quatro etapas. O primeiro passo é criar o concurso usando metil decretado logo na parte superior. E, por favor, não faça isso aqui. Não faça isso dentro do componente. Tem que ser aqui fora. Linda. E agora vamos criar um concurso de preços. Custo. Concursos de preços, iguale, reaja, pontilhe, crie um concurso. Feito isso, a segunda etapa é pegar o concurso criado e agrupar o provedor de conteúdo em torno de sua árvore de componentes. Então, aqui eu só tenho que destacar esse cara por enquanto e depois parar com isso. E aqui, vamos fazer um concurso de preços para fornecedores de pontos. Perfeito. E então temos que colar o componente intermediário. É tão simples quanto isso. Certo? Vamos passar para a etapa três. Agora, vamos colocar o valor necessário em seu provedor usando o valor prop. O que eu vou fazer aqui é pegar adereços para ele, que é igual ao valor. Agora, temos que especificar um prêmio, e eu vou fazer $200. E, por fim, a quarta etapa é consumir o valor de qualquer componente usando o consumidor do concurso. Portanto, antes de prosseguirmos, precisamos exportar o contexto. Venha aqui. Vamos fazer esse cara aqui. Poderemos importá-lo em um módulo diferente. E agora o desafio aqui é consumir esse valor no componente z sem precisar sondar, detalhar competência e y. Vamos fazer isso rapidamente. Venha para a empresa e z. No topo, vamos importar o concurso de preços do componente do aplicativo. Limpe isso rapidamente. Então, aqui vamos ter um concurso de preços para consumidores. E teremos um preço. Então, aqui, vamos retornar um div, certo? Dentro da definição. Temos que mostrar o preço com segurança. Certifique-se de executar seu aplicativo e, em seguida, finalize a compra no navegador. Aqui está. Consegue ver isso? Linda? Deixe-me ampliar um pouco mais, certo? Então, agora conseguimos consumir o preço que é mantido no componente do aplicativo, certo? No componente z, mesmo sem precisar perfurar os componentes intermediários, amigos. A competição é realmente poderosa e baixa. Ok, então o próximo passo é abordar outro contexto, porque em seu aplicativo, provável que você tenha vários valores a serem consumidos em um componente diferente. Então, vamos ver como implementar vários conteúdos. Vá para o componente do aplicativo. Suponhamos também que queremos exibir o nome do item. Ok, então primeiro exibimos o preço do item e agora temos que exibir o nome do item. Então, vamos criar rapidamente um novo concurso. Exporte const, e eu vou chamá-lo de concursos de itens, equa, React dot, criar conteúdo, fazer com que eles exportem e editem. Poderemos usá-lo em arquivos diferentes. Tão rápido. Aqui, ele será aninhado no provedor de pontos do concurso de itens. Olá, deixe a tag de fechamento comandar X para recortá-la e depois colá-la aqui. Vamos formatar rapidamente o código para ter um recuo adequado. Linda. Você pode formatar o código com mais bonito. Claro, você já deve saber como fazer isso. Tudo bem, então, depois de fazer isso, temos que fornecer um valor ao concurso. O concurso de itens terá um valor agregado , vamos supor que a Samsung. Feito isso, temos que consumir esse concurso realizado pela empresa em z. Então, aqui, também temos que importar o concurso de itens. Feito isso, venha aqui, destaca o Command X to cut. E então vamos devolver conteúdo do item ao consumidor, abrir e fechar os colchetes. Então, vamos ter a função aqui. Certo? Dentro dessa função, retornaremos o comando div V para colar o div. E aqui também temos que exibir o item. Então, basta fazer um item como este. Então, vamos torná-lo mais legível. Aqui eu vou fazer concursos de imprensa, e aqui vou fazer um concurso de itens. Tudo bem, então vamos formatar rapidamente o código com mais bonito. Perfeito, economize. Vamos tirá-lo no navegador. Você pode ver que o concurso de preços é de $200. O item é Samsung Friends. Isso é extremamente incrível e eu adoro isso. Então, agora podemos obter o valor de vários concursos. Mas uma coisa que quero dizer é que essa abordagem é bastante volumosa. Então, para reduzir a complexidade ganchos de contexto da Revlon Mickey dos EUA. E então você verá como podemos consumir vários concursos em apenas algumas linhas de código. Isso é tudo por enquanto. Na próxima palestra, vamos praticar o concurso de uso. Quem te verá na próxima palestra? Mantenha o foco no cuidado holístico. 42. 40 useContext para contexto múltiplo: Na palestra anterior, aprendemos como consumir vários concursos com o padrão de adereços de renderização. E nesta palestra, vamos consumir o mesmo concurso múltiplo usando o concurso de uso, que parece menos prático? É rápido? Tudo bem, então não há necessidade de criar um novo componente. Então, vamos usar o componente y para consumir o valor do concurso, certo, nesta palestra. Componente y, uma coisa que você deve ter em mente é que as etapas para implementar concurso permanecem exatamente as mesmas. A única coisa que mudará é o padrão de consumo. Portanto, usar contextos é muito fácil de consumir o valor do conteúdo com algumas linhas de código. Para prosseguir com o gancho de contexto dos EUA. Primeiro, temos que importá-lo em um local, uma vírgula aqui, e depois usar concurso. O próximo passo é importar o concurso necessário para ser usado. Concurso de preços de importação do nosso componente de aplicativo. E então também temos que importar o concurso de itens. Ambos vêm do componente do aplicativo. Feito isso, a próxima linha é invocar o gancho do concurso dos EUA. Tudo bem, então o contexto dos EUA é uma função. Então, temos que invocá-lo, certo? Na função de contexto dos EUA, vamos passar o preço e o concurso de itens como parâmetro. Então, usamos o concurso e depois vamos passar no concurso de preços, destaques, duplicatas. E aqui vamos passar no concurso de itens. O contexto dos EUA retornará o valor do concurso. Então, vamos atribuí-lo a uma variável constante. Ei, eu vou fazer, vou chamar de preço variável. E aqui vamos chamar o item variável. Exatamente assim. É tão simples quanto isso. Vamos limpar isso. E por último, temos que consumir o conteúdo e os amigos. Dê uma olhada. É extremamente fácil consumir o concurso. Só precisamos referenciar essas variáveis. Deixe-me te mostrar rapidamente. Aqui. Vou fazer o preço e vou fazer aqui o item, economize no navegador. E eles são esses. Consegue ver isso? Linda? Não podemos consumir vários concursos em apenas uma linha. Isso é fantástico e eu adoro para ser honesto com você, a introdução de quem pode reagir, facilitar as coisas. Muitos comparam a implementação anterior. Você definitivamente apreciará a introdução de ganchos no React. E agora a questão é: quando devemos usar o concurso React? O concurso React é ótimo quando você está passando dados que podem ser usados em diferentes componentes do seu aplicativo. E esses tipos de dados incluem dados da equipe, como humor escuro ou claro. Use nossos dados, que são o usuário atualmente autenticado. E, por último, dados específicos de localização, como usamos nosso idioma, estão localizados em. Outra pergunta que vem à mente é qual é exatamente o problema que reage, contesta, resolve? Concurso React. Ajude-nos a evitar o problema da perfuração de adereços. Isso acabou agora e até a próxima palestra. Steph, analista de custos, cuide-se. 43. 41 ganchos de redutor: Na palestra anterior, tivemos uma introdução detalhada sobre o uso de ganchos redutores. Então, nesta palestra, vamos prosseguir com o exemplo prático. Vamos demonstrar esse exemplo implementando um aplicativo de contador simples. Portanto, não poderíamos incrementar o valor do contador, diminuir e até mesmo redefinir o valor do contador para zero. Embora o aplicativo possa parecer simples. Mas, novamente, é Exiba o padrão que você verá em sua codificação diária. Rapidamente dentro do diretório do componente. Vamos criar um novo pacote chamado use reduce our practice. Dentro desse bolso. Vamos criar um novo componente chamado meu contador. Gere o componente funcional diretamente nos GSAs. Vá em frente e crie três proteínas diferentes. Diretamente dentro da div. Vamos ter um parafuso nos incrementos. E eu vou duplicá-lo duas vezes. Isso vai ser um decréscimo e isso vai ser uma votação zerada. Portanto, a linha ocidental é criar o contador que será exibido nos GSAs. Então, para isso, precisamos usar sulcos ou ganchos. Para implementar o uso, use sulcos ou ganchos. Primeiro, precisamos importá-lo em um nível superior. Então, aqui eu vou usar o redutor. Não fiz isso. Assim como outros ganchos que estudamos na palestra anterior. O usuário, que é nosso gancho, também é uma função. Temos que invocá-lo. Então, os direitos dentro do componente, vamos invocar o uso como nosso gancho. Vamos ressurgir rapidamente as mesmas tags. Anteriormente, aprendemos que o U.S. Ridges or Hook aceita dois argumentos. O primeiro argumento é um método redutor e o segundo argumento é o estado inicial. Então, certo, dentro do parâmetro, teremos a vírgula do método redutor e, em seguida, o estado inicial. Feito isso, o próximo passo é declarar o estado inicial e definir a função redutora. Então, saia do componente. Bem no topo. Teremos um estado inicial constante igual a zero. Vamos definir rapidamente a função redutora. Redutor de custos, defina-o para nossa função. Portanto, a função redutora aceita dois parâmetros. primeiro é o estado atual e o segundo parâmetro é a ação. Então, vamos fazer com que o estado atual acalme a ação. E assim eles reduzem nossa função também retorna um valor, que é o novo estado. Aqui para ensinar trabalhos. Eu vou voltar. Novo estado como esse. Não se preocupe Vamos ver como isso vai acontecer no futuro. Para que a transição ocorra, precisamos acionar o segundo parâmetro na função redutora, que é a ação. Portanto, você pode pensar na ação como uma instrução dada à função redutora. E com base na especificação da ação, o redutor realizará a transição de estados necessária. Então, neste exemplo, teremos três ações diferentes. O incremento, o decréscimo e a ação de reinicialização. Então, vamos limpar isso rapidamente. No caso do Reducer, a prática comum de implementar código com base em sua ação é usar o case switch. Então, aqui vamos fazer o switch. A expressão switch será uma ação de acordo com os requisitos de nosso aplicativo. O real aqui será incremento, decréscimo n, a ação de reinicialização. Então, aqui vamos ter o primeiro caso como coluna de incremento. E vamos retornar o estado atual mais um, o ponto mais simples. E aqui eu só tenho que duplicá-los, duplicados duas vezes. E aqui vamos ter o decréscimo. O novo estágio vai subtrair um do estado inicial. Aqui teremos a roseta de casos, que consiste em redefinir o estado para o valor zero. E esse é o estado inicial. Então, isso retornará ao estado inicial. E por último, temos que especificar o caso padrão. Neste caso, vamos devolver o estado em si. É tão simples quanto isso. Agora, o próximo na fila é despachar a ação. Da mesma forma que nos EUA, os ganchos usam para reduzir nossos retornos, um par de valores que podemos obter usando a estrutura e a sintaxe 3D. Aqui eu vou fazer const diretamente. E aqui vamos ter o método de despacho. Em seguida, atribua-o assim. O redutor de uso retorna o estado atual, que neste caso chamamos de contagem, junto com o método de despacho. E o método de despacho é usado para executar um código correspondente a uma ação específica. Então, a contagem aqui é uma variável usada para armazenar o estado inicial tão rapidamente, certo? Dentro dos GSAs, usaremos a tag head one para exibir a contagem. Agora vamos fazer com que ele tenha vencido, agora mesmo. Temos que exibir a contagem, que é esse cara aqui que é usado para manter o estado inicial e também o estado que será atualizado. Isso é usado apenas para manter o estado, ok? E esse cara aqui está acostumado a enviar o código com base em sua ação. Você vai ver isso em um tema G. Então, certo, dentro da questão da bola, temos que especificar sua própria camarilha. Dentro do OnClick. Vamos usar uma função de erro que será usada para invocar o método de despacho. E o método de despacho será usado para executar um código com base em sua ação. Temos incrementos de ação. É tão simples quanto isso. Então, agora eu vou copiá-los. Sidway. Eu o copiei diretamente dos colchetes de abertura para o botão ao clicar em Copiar. Venha aqui e cole. Então, só precisamos alterá-los para decréscimos porque queremos despachar a ação de decremento. Então venha aqui assim e cole também. Nesse caso, queremos enviar a ação de redefinição. Quando enviarmos a ação de incremento, ela adicionará um ao valor atual inicial. Quando despachamos a ação de decréscimo, ela subtrairá um do valor inicial da lata. E por último, quando enviarmos a ação de redefinição, ela redefinirá a contagem para zero, que é o estado inicial. Vamos renderizá-lo rapidamente no componente do aplicativo. Chegue ao topo e depois temos que importar, eu posso diferenciar um dos componentes usando barras, reduzir nossa prática, cortar meu contador um. Eu vou rolar para baixo. Só temos que randomizar o contador um. Feche com a etiqueta de fechamento automático. Salve e certifique-se de executar o aplicativo no terminal. Deixa eu te mostrar. Você pode ver que meu aplicativo está sendo executado no navegador. A ideia é: você pode ver isso? Vamos tentar clicando no quadro Haines, eu clico no incremento, Botkin. Isso incrementa. Aquele em que eu clico diminui, ele diminui para zero. E mais uma vez, eu toco no incremento, no incremento, no incremento. E então deixe-me tentar reinicializar desta vez. Linda. Tudo está funcionando perfeitamente, conforme o esperado. Então, para recapitular, volte ao código VS e deixe-me mostrar rapidamente como usar o redutor dos EUA. Primeiro, você precisa importá-lo na parte superior. E então o redutor é uma função. Portanto, você também precisa invocá-lo. Essa função usa dois parâmetros. primeiro é o método redutor e o segundo é o estado inicial. Além disso, o uso de sulcos ou ganchos retorna uma matriz de dois valores, que neste caso o estado inicial e um método de despacho. O método dispatch é usado para despachar a ação e a variável count aqui é usada para armazenar o valor dessa tabela. Então, quando você vai para o topo, onde temos a função redutora, esse cara aqui, que é o primeiro parâmetro nos EUA, cumes ou gancho aqui, a função redutora recebe dois parâmetros. Primeiro é o estado e depois a ação. Portanto, no caso de um redutor, a convenção para implementar código com base em sua ação é usar as teclas doces. E é por isso que temos a suíte do nosso cabelo. E aqui mesmo no switch, implementamos as ações. Ok, então temos incrementos. Isso retornará um novo estado que adicionará um ao estado inicial. E, claro, você deve saber que o estado inicial também é o segundo parâmetro. Direitos. Você não usaria reduzir nossa função? Aqui, está. Ok, então, quando a ação for incrementada, ela adicionará um ao estado inicial. E quando a ação diminui, também estamos subtraindo um do estado inicial. E então, quando a ação for redefinida, redefina o valor para zero. E aqui temos o estado padrão do aplicativo. Escreve, não seria o de Jesse? Implementamos um onclick para chamar o método de despacho. Então, certo, dentro do método de despacho, especificamos a ação. Isso geralmente acontece agora e, na próxima palestra, daremos um exemplo mais complexo. Nos vemos na próxima palestra. Mantenha o foco na holística. 44. 42 useReducer de estado e ação: O segundo exemplo do redutor de uso será examinado nesta palestra. E nesta palestra, empregaremos o objeto de estado e os objetos de ação, em vez do estado e da ação simples que implementamos na aula anterior. Então, rapidamente, não usamos reduzir nossa prática, criamos um novo componente chamado meu contador para abrir rapidamente meu contêiner um, aqui está ele destaca, copie todo o código contido na minha câmera dois e cole. Vamos fazer rapidamente as correções necessárias. Aqui. Só precisamos mudar meu conteúdo, quero entrar em contato com quando você salvar lindo. O próximo passo é transformar a variável de estado atual em um objeto. Role até o topo. Então, o que eu vou fazer agora é limpar isso. Agora temos que configurá-lo como um objeto, certo? Dentro do objeto. Vou fazer Cantor. Defina-o como zero, assim como esses direitos estavam na interface do usuário. Agora vamos fazer aqui contar pontos, contador a. As contagens representam os objetos não testados. O próximo passo é converter nossa ação simples de string em um objeto. E aqui está. Dentro do método de despacho, vou apenas destacar e depois cortar a string. Agora, temos que convertê-lo em um objeto. Dentro desse objeto, vamos usar uma propriedade chamada tipo de tipo e o tipo de ação é incrementos. Então, aqui também temos que transformá-lo em um objeto, destacar e cortar a string, transformá-la em um objeto e, pegando o tipo, o tipo de ação é decréscimo. A mesma coisa aqui. O mais simples disso. E com isso, enviaremos uma ação com base no tipo de ação. Então, à direita, dentro da função redutora, vá até o topo. A expressão do switch será action dot py. Portanto, para a ação de incremento e diminuição, retornaremos o novo objeto de estado, destaques e o apagaremos. Vamos especificar um objeto. Quando o objeto que vamos fazer, contrarie o ar, então os pontos contrariam um positivo. Isso é mais simples, a mesma coisa aqui. Especifique se o objeto contém um ponto de contato de estado menos um. Eu espaço isso um pouco. O estado e a ação do componente agora são transformados em um objeto. E é isso. Rendered está complementando o aplicativo Js. E vamos ver o que temos no navegador. As importações do componente Slash Use reduzem nossa prática de cortar mitocôndrias para, vamos destacar isso e fazer um comentário sobre isso. Então vamos renderizar meu contador para isso. G está mais próximo da etiqueta de fechamento automático. Salve o aplicativo e verifique se ele está sendo executado diretamente no terminal. E o navegador. Vamos tirá-lo. O incremento do decréscimo reiniciado como fizemos novamente, incrementando, diminuindo e recebendo. Tudo está funcionando perfeitamente, conforme o esperado. Linda. Agora, a questão é: por que preferiria essa abordagem em comparação com a abordagem anterior? Tudo bem, então vamos demonstrar um exemplo que dará uma resposta válida para essa pergunta. Então, com isso, você entenderá bem o suficiente. Então, vamos supor que queremos enviar diferentes valores e resorts. Digamos que temos dois corpos extras para incrementar e diminuir a contagem em cinco. Isso seria possível e muito fácil se a ação fosse um objeto. E ao verificar o objeto de ação, você perceberá que ele tem apenas uma propriedade, que é o tipo de ação. Então, vamos adicionar outra propriedade ao objeto de ação. E essa propriedade seria chamada de valor, que representará o número que será usado para incrementar ou diminuir o valor da contagem. Então, para relatar coisas que criamos anteriormente, vamos adicionar uma propriedade extra para comer, vir aqui, vírgula e depois valorizar. Temos que configurá-lo como um simplesmente porque queremos que esse botão incremente o valor do estado inicial uma vírgula aqui. Na propriedade value e defina-a como um. Então, isso diminuirá o estado inicial em um. E agora, neste exemplo, queremos extrapolar o que será usado para incrementar e diminuir o valor da contagem em cinco. A fórmula de cópia é 25, 26. Duplique-o. E aqui eu vou fazer o incremento cinco. Aqui eu vou fazer o incremento cinco, certo? Então, aqui eu vou fazer cinco, o valor cinco. Feito isso, também precisamos voltar à função redutora. E então não precisamos codificá-lo dessa forma. O que vou fazer agora é mais o valor em pontos do leilão. E esse valor é, isso. Aqui vai estar o valor em pontos do leilão. Então esse valor representa cada um desses caras aqui, todo esse cara aqui. Vamos evitar rapidamente a obrigação de conferir os resultados no navegador. Vamos tentar. Ao bater no tabuleiro, significa incrementar um belo decréscimo em um incremento perfeito de cinco. Você pode ver esse decréscimo em cinco? Tudo está funcionando perfeitamente, conforme o esperado. Vou apertar o botão de reset. Dê uma olhada. Linda. Portanto, ao usar a ação como um objeto, podemos usar vários dados na função redutora. Portanto, essa é uma das respostas para a pergunta que levantamos anteriormente nesta palestra. Agora, vamos demonstrar o segundo exemplo para dar uma resposta mais válida à questão levantada anteriormente. E neste exemplo, vamos nos concentrar no palco como um objeto. Então, vamos supor que você queira implementar vários contadores. A melhor maneira de fazer isso é quando o estado for um objeto, vá até o topo. Então, vamos ter um novo contra-ataque agora. E isso será chamado de contador B. Vou configurá-lo para 15. Para atualizar o valor do contador B. Precisamos criar mais dois casos de troca. Venha aqui mesmo. O que vou fazer agora, porque criamos anteriormente, vou destacar as linhas 11 a 13 duplicadas. Observe-me enquanto eu vou selecionar o contador a. E então temos que destacar todas as ocorrências do contato a dentro da ação que o duplicará. Leve sua causa ou para a borda direita e depois limpe-a aqui. Eu vou fazer um contra-ataque tão simples quanto isso. E agora temos duas propriedades diferentes como objetos divididos. Para obter os resultados esperados, precisamos igualar a propriedade do estado. Deixe-me mostrar como fazer isso. Ponto, pontos, estados, pressione uma vírgula. Eu só vou copiar e colar assim , assim. Por fim, temos que implementar a navegação para enviar a ação com um clique. Quando eu rolar para baixo, vou copiar o incremento cinco. Venha aqui. Vamos criar um div aninhado dentro desse div. E então eu vou chamar esses incrementos de contato de Highlight, Copy, venha aqui e cole. Portanto, este será o contador de decréscimos B. Temos que exibir o contador be. Aqui. Vou usar a tag H2 para exibir a contagem de pontos B em B. Então, o que vou fazer agora é especificar que isso é a. Este é o contador B. E você salva no navegador. Linda. Portanto, o estado inicial de a é zero. Deixe-me mostrar a você como está escrevendo este objeto de data. Aqui está? Para kappa B é 15. Então, quando clicamos nesse botão, devemos ser capazes de gerenciar os estados do conselho. Então essa é a beleza de usar os Estados como um objeto. Agora vamos tentar. Você consegue ver que está funcionando perfeitamente bem, conforme o esperado? Eu apertei o reset e vamos tentar para COUNTA be. O contador B não está funcionando. Você sabe por quê? Deixe-me te mostrar rapidamente. Venha aqui. Logo no contador b, estamos enviando a ação de incremento. E essa ação serve para o contador a. contador B funcione, você precisa especificar a ação para o contador B e , em seguida, despachar essa opção. Deixe-me te mostrar aqui. Isso é para o contador a e isso é o contador a. Agora vou fazer o incremento B. Vou fazer o decréscimo B. Quando chegarmos aqui, desfaça o incremento, diminua B, salve e confira no navegador. Recarregar. Vamos fazer o teste e contra-aérea. Você consegue ver as redefinições? Experimente no balcão B. Pode olhar. Tudo está funcionando perfeitamente, conforme o esperado. Tudo bem, então, em resumo, ao usar a ação como um objeto, você pode passar dados adicionais para a função redutora. E ao usar o estado como um objeto, podemos manter e acompanhar várias variáveis de estado. E neste caso, aqui estão as variáveis de estado a e B. E podemos fazer isso simplesmente porque o estado é um objeto, que é esse cara que você vê aqui. Deixe-me te mostrar rapidamente. Eu só tenho que parar com isso. E então aqui está o objeto. Simplesmente porque o estado é um objeto, somos capazes de manter esses caras aqui. Isso é tudo por enquanto. Nos vemos na próxima palestra. 45. 43 Redutor de uso múltiplo: No exemplo anterior, conseguimos acompanhar dois contextos diferentes usando o estado como um objeto. E para atualizar o conteúdo, precisamos criar malas adicionais no método redutor. Mas se tivermos que chegar até nós com a mesma transição de estado, há uma abordagem mais simples para fazer isso. Então, crie rapidamente um novo componente chamado minha conta ou três. Certo? Vamos usar a prática de redutores. Abra meu braço de controle. Vamos destacar e copiar todo o código e depois colá-lo aqui. Só precisamos mudar o nome da empresa para meu contato três, salvar, abrir o componente do aplicativo e renderizá-lo. Destaque isso, coloque um comentário sobre isso. E depois chegue ao topo. Temos que importar meu contato três do uso da barra de componentes, reduzir a prática de cortar minha conta ou três. Vamos renderizá-lo aqui. Seguro. No navegador. Boom, o aplicativo está bom. Agora temos uma aplicação simples de contador. De frente para o contra-3. Portanto, o próximo passo é adicionar outro contato de estado com exatamente a mesma transação, que é incrementar, diminuir nossa funcionalidade de redefinição. Se for esse o caso, o que vamos fazer é criar um redutor de uso adicional. Então, aqui vamos ter uma constante. Vou ligar para esse cara, chega a vírgula. Vou ligar para esse cara que foi enviado para. Em seguida, invocamos o redutor de uso. E com certeza eles usam reduzir nossos textos no método redutor como primeiro argumento e depois o estado inicial como segundo argumento. Então, diretamente na div, temos que despachar esse cara. Então, vamos fazer isso rapidamente. Destaques das linhas 23 a 26. Copiar. Venha aqui. Vamos criar outro div e depois colá-lo dentro desse div. Então, isso vai ser enviado desse jeito, desse jeito. E aqui temos dois registros que mostram qual é esse cara aqui que está acostumado a controlar o estado. Ok, vamos torná-lo um pouco legível. Eu vou fazer exatamente assim. Quando você salva e acessa o navegador. Você pode ver que temos o primeiro contato e depois o segundo contador. Vamos tentar. Incrementar, diminuir, redefinir, incrementar, diminuir a roseta. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado. Tudo bem, então, ao trabalhar com variáveis de estado diferentes que tenham exatamente a mesma transação de pontos, eu sugiro que você use a abordagem de redução múltipla. E isso ajudará a evitar a complexidade de gerenciar o estado se ele for um objeto. E também para evitar que dupliquemos o código na função redutora. Eu entendo que essa palestra é bem complicada, mas eu sugiro que você reproduza o vídeo repetidamente para guardar sua memória. Isso é tudo por enquanto. E na próxima palestra, aprenderemos como gerenciar o estado global. Se você usar o espremedor e usar o concurso. Vejo sua palestra internista. Mantenha o foco e tome cuidado. 46. 44 useState e useReducer: No nível do componente, especificamente, você viu um exemplo de gerenciamento estadual local com redutor de uso. No entanto, pode chegar um momento em que você queira comunicar o estado entre os componentes. Então, consequentemente, você pode querer operar com o cenário global. E agora a questão é: como abordamos isso? Ao combinar o redutor de uso e os concursos de uso, você não conseguirá gerenciar o estado global. Então, nesta palestra, aprenderemos como usar, usar concursos e usar o redutor para gerenciar e distribuir o cenário global. Essa será uma combinação muito boa. Estão certos. Agora, vamos considerar uma aplicação de contador simples com seis componentes diferentes, empresa, ABC e XYZ. Portanto, o estado do contador será mantido no aplicativo Js. E a tarefa aqui é compartilhar o estado do contador entre os componentes x e z. E também vamos compartilhar o método, atualizar o estado, mergulhar na árvore de componentes sem precisar sondar, detalhar os componentes intermediários. E a solução para esse problema é usar a API do concurso. Então, como estamos trabalhando com ganchos, vamos usar o gancho de concurso para fornecer a necessidade do valor necessário para gerenciar o contraste nos componentes a, x e z. Vamos começar. Aqui mesmo. Eu limpei o componente do aplicativo. É bem simples e acredito que você pode fazer isso do seu lado. Então você só precisa limpar todos os componentes que importamos e depois excluir todas as renderizações. Vou explicar esse exemplo de uma forma que você o entenda bem o suficiente. Agora, vamos começar. Dentro do diretório do componente. Vamos criar um novo pacote chamado use concursos com redutor. Certo? Neste pacote, criaremos os componentes a , x e z. Gere rapidamente o componente funcional em outros arquivos. Não fiz isso. O próximo passo é criar um contador simples no componente do aplicativo, no componente aplicativo e no peso. Já fizemos isso antes. Então, tudo o que vamos fazer é copiá-lo do meu balcão. Um de G é um. Então, vou copiar da faixa 52, cisteína, voltar para o componente do aplicativo e depois para o território do pestis. Então, vamos importar rapidamente que eles usam redutor no nível superior. Então, temos que colocar uma vírgula aqui. Use o redutor. Então, dentro do componente do aplicativo, que é esse cara aqui, vamos invocar o método use reduce. E, claro, isso inclui dois parâmetros. Um é o método redutor e o segundo parâmetro é o estágio inicial. E tudo isso retornará uma matriz de duas entradas. Eu vou fazer const. O primeiro elemento será a conta, que armazenará o valor de todo o estado. E o melhor elemento dentro dessa matriz será o método de despacho. Temos que atribuí-lo assim. O mais simples é que isso seja usado para manter todo o estado, que é armazenar o valor de todo o estado. Em seguida, eles serão usados para despachar a ação Bhanwari. Quando prosseguimos com a implementação. Você definitivamente vai entender isso bem o suficiente. Vamos exibir rapidamente o valor do estado, certo, para inserir os GSAs. E, claro, vamos renderizar os componentes a, x e z. Vá para o topo. Temos que importar o componente a do concurso de uso de barra competente com a barra redutora competente a. Em seguida, vamos importar o componente x, o componente z. Vamos analisá-lo aqui. Então, a intenção aqui é enviar uma ação, certo, dentro desses componentes. Então, queremos gerenciar esses dados aqui, certo? N-componentes a, x e z. Essa é exatamente a intenção. Isso aqui é chamado de estados globais. E queremos gerenciar os períodos de entardecer nos componentes aninhados. Ensinar bem, é lindo. Se tivermos que enviar a ação dentro desses componentes, teremos que fazer uso do concurso para fornecer o valor da contagem e o método de envio a serem consumidos nesses componentes. Então, vamos criar rapidamente o concurso usando a API do concurso crítico. Bem no topo. Vamos ter const, can't contest, equa, React dot, criar concursos. Então, depois de criar o concurso, também precisamos exportá-lo. Feito isso, temos que fornecer um valor a esse concurso e, em seguida, encapsular o componente anterior no provedor do concurso e especificar os atributos de valor, que são o valor atual e o método de envio. Deixe-me te mostrar rapidamente. Então, aqui, vamos encerrar todo o aplicativo com o concurso que criamos. E é o fornecedor de contadores de pontos porque temos que fornecer o valor, um destaque e depois recortar, vir aqui, colar. E agora temos que fornecer o valor, valor igual. Temos que pegar um objeto. Então, vamos fazer com que os estados de contagem estejam em coma e a contagem de despacho será despacho. Feito isso, ao verificar o navegador, você verá esse erro. O estado inicial não está definido. Volte e teremos que definir o estado inicial à direita, no topo. Os estados iniciais são iguais a zero. Então, quando você faz isso e dá uma olhada no navegador, você pode ver que os cones iniciais zero e esse é o valor dos estados. Então temos a, x e z competentes. Então, o próximo na fila é consumir o estado e o método de despacho. Então, para isso, vamos usar o concurso que voltou ao código VS. Vamos adicionar rapidamente à empresa em um g aqui no topo. Também temos que importar o concurso de uso. Precisamos importar o contexto que criamos no componente do aplicativo. Importar. O nome do concurso é contagem de concursos da AP. Tudo bem, então é hora de consumir o concurso. Então, certo, dentro do componente, vamos invocar o contexto dos EUA. Vamos considerar o concurso como parâmetro. Em seguida, temos que atribuí-lo a uma variável. Const pode competir assim. Feito isso, poderemos acessar o método de envio mantido no meu contador 1, copiar o botão e depois colá-lo no componente a. Ok, vamos copiar tudo daqui, incluindo a tag principal e depois ir para a empresa a. E aqui só precisamos colá-lo entre a tag div. Exatamente assim. Vamos formatar rapidamente para ter um recuo adequado. Bom. Então, agora a contagem vai ser vamos tirar a etiqueta principal por enquanto. Não precisamos disso. Então, aqui não teremos mais um despacho como esse. Então, vamos fazer o despacho do Concurso Count Dot com. Deixe-me mostrar para você no aplicativo Js. Estamos trazendo esse cara aqui para enviar cada uma dessas ações. O mais simples disso. Então, volte ao componente a. Temos que fazer isso durante todo o envio. Então, vou selecionar todas as ocorrências de despacho e apagá-las. Apesar do concurso aqui, sete finalizações de compra no navegador. Você pode ver que o estado inicial é zero e depois o incremento, o decréscimo é reiniciado. Tudo está funcionando perfeitamente bem. Então, só precisamos gerenciar exatamente o mesmo estado no resto dos componentes. Essa é pelo menos a intenção da palestra. Estou aqui. Vou destacar tudo aqui na cópia do componente A, segurar o componente X, realçar e depois limpar e colar. Agora temos que mudar as ocorrências do Componente a para o Componente x. Salvar. Confira. Linda. Não é totalmente bom. Novamente, para os destaques do componente z, limpe-o, cole, altere-o para o componente z. Então, vamos dar uma olhada para ver se conseguimos gerenciar esse estado aqui, certo? Quando as empresas a, X e Z se separam do navegador. Tudo bem, então vamos fazer com que o nome do componente seja descritivo. Venha até a empresa e z e cole aqui, desculpe, competente x. E por último, empresa em z, segura e no osso do navegador. Então, vamos dar uma olhada. Se conseguirmos controlar o estado global a partir do componente a, vamos clicar na votação incremental no componente. Você pode ver que tudo está irregular, definitivamente bem, conforme o esperado. Quando você diminui. Linda. E então, quando você o recebe, boom. Vamos testá-lo em incrementos, decréscimos e recebimentos do componente x. Componente um incremento, um decréscimo, amigos. Isso é extremamente incrível. Portanto, agora podemos gerenciar e controlar os direitos dos estados globais com os componentes n a, X e Z. E isso é possível com o concurso de uso redutor de uso e as visitas. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 47. 45 useState: Você disse que os navios usam redutor para mostrar a comparação entre os EUA e o redutor dos EUA. Vamos exemplificar isso buscando dados de um endpoint de API. Então, neste exemplo, veremos como buscar dados usando o gancho de efeito com a ajuda dos EUA, que se conecta para manter o status da transação ou transformação. E na próxima palestra, veremos como obter os mesmos dados com o efeito Hooke dos EUA usando o redutor de uso para manter a transação estadual. E ao fazer isso, você poderá comparar a dívida dos EUA. E eles usam o redutor para aprender quando e como usá-los. Nós não acessamos o diretório de componentes. Vamos criar rapidamente um novo pacote chamado ustedes e usar o redutor. Certo? Então, estamos neste pacote, vamos criar um novo componente chamado phage de dados de uso. Gere os componentes funcionais. O que faremos nesta palestra é fazer uma chamada de API para ajustar os dados assim que o componente for montado. E enquanto os dados forem obtidos, exibiremos o indicador de carregamento. Portanto, quando os dados forem obtidos com sucesso, ocultaremos o indicador de carregamento e exibiremos os dados. Por fim, cancelaremos o indicador de carregamento e mostraremos a mensagem de erro se surgir um problema ao carregar os dados. Vamos definir rapidamente as variáveis de estado e os métodos setter. E antes de prosseguirmos com os pais, você precisa importar os estados da UE do React. Portanto, temos que declarar as variáveis de estado necessárias a serem usadas. E aqui teremos o carregamento, conjuntos mais calmos, está carregando. O estado padrão será definido como verdadeiro. Então, quando fizermos uma chamada de API, você verá a barra de carregamento diretamente no navegador. E aqui, teremos o erro. E então vamos colocar a seta aqui. Isso deve ser uma chave de vírgula e o estado inicial aqui será uma string vazia. Por fim, publicaremos a postagem, que deve ser sua alma e suas teclas de vírgula. E o estado inicial será um objeto. Portanto, isso será usado para manter o estado inicial dos dados. E eles serão usados para atualizar o estado inicial dos dados. Em outras palavras, quando buscarmos os dados, eles serão usados para atualizar o estado inicial da postagem. Quando os dados estiverem sendo processados nos bastidores, exibiremos o indicador de carregamento é necessário quando algo der errado. E, por fim, isso será usado para armazenar e atualizar o estado dos novos dados. Isso seria justo. O próximo passo é criar a coluna aplicada e atualizar. A necessidade permanece. Para fazer a chamada de API. Definitivamente, temos que invocar o efeito dos EUA. Primeiro, temos que importá-lo no canto superior direito aqui. Temos que invocar os efeitos. E o efeito assume dois parâmetros. primeira é a função, que neste caso é uma função de seta. E a segunda é uma matriz de dependências, e vou deixá-la como uma área de densidade vazia. Feito isso, o próximo na fila é fazer uma solicitação get. E para fazer isso, primeiro, temos que instalar o Acts Use. E, claro, instalamos axiomas no início da palestra anterior. Mas se você não o tiver instalado, basta acessar o terminal e depois o Controle C para interromper o servidor em execução no momento. E então vamos usar atos de instalação do gerenciador de pacotes node. Eu já o tenho instalado. Portanto, não há necessidade de fazer isso pela segunda vez. Mas se você não o tiver em sua máquina, basta pressionar a tecla Enter para instalá-lo. Deixe-me limpá-lo, vá até o topo e depois não instalei os RTOs, temos que importá-los no eixo de entrada superior a partir dos axiomas. A função dentro do gancho de efeito dos EUA é chamada. Os efeitos. Aqui, pelo menos, tivemos um efeito colateral. Então, direitos dentro do efeito, vamos fazer uma solicitação de obtenção. E então vamos fazer axiomas. A filha simplifica que usaremos o endpoint de espaço reservado JSON. Então, vá rapidamente até o espaço reservado de Jason e copie o URL de uma postagem. E queremos direcionar a rota que retornará uma postagem específica. Eu só vou copiar. Venha aqui, certo? Estamos na corda. Eu só vou pagar. Sempre que fazemos uma solicitação GET, ela sempre retorna uma promessa. Portanto, teremos um Dan Blow Dot. Então, quando a solicitação for bem-sucedida, teremos que fazer a transição de alguns estados. Teremos aqui uma resposta. Quando a solicitação for bem-sucedida, precisamos definir o carregamento como falso. E também precisamos atualizar o estado inicial com os novos dados que enfrentamos. Então, vou definir os dados dos pontos de resposta das postagens. E por último, temos que definir a seta uma string vazia simplesmente porque o Fetch foi bem-sucedido. Erro de configuração. Uma transmissão vazia. Isso acontece quando o Fetch é bem-sucedido, mas nem sempre você terá uma viagem tranquila. Sim, então às vezes você pode ter algum problema. A busca de dados não será bem-sucedida. Então, se algo der errado, temos que pegar a flecha manuseá-la no blog de cartas. Vamos especificar rapidamente o bloco de captura, certo? Depois desse cara, que é a toca, da promessa de que ela retornará, vamos ficar com o sofá. E o que eu vou pegar, nós vamos pegar qualquer flecha existente que for encontrada. Também temos que colocar sua carga em vigor. Temos que definir post como um objeto vazio, que é o estado inicial do colocado. Ok, deixe-me te mostrar o topo. E aqui está, certo? Perfeito. Então temos que definir o erro. Então, algo assim. Então, vamos fazer algo errado. Tendo feito isso nos efeitos. O próximo passo é exibir os dados nos GSAs. Se o componente for Busey carregando os dados, exibiremos o indicador de carregamento. Agora também, quando os dados são obtidos com sucesso, temos que exibir os dados diretamente dentro colchete do cólon, porque aqui temos que usar a expressão JavaScript da insulina. Eu vou fazer se o carregamento for igual a verdadeiro. Tudo bem, então, se o aplicativo estiver carregando, diremos que os dados estão carregando outra vez. Se os dados forem buscados, precisamos obter o título do ponto da postagem. Vamos conferir a postagem. Podemos obter o título ou o corpo. Vamos pegar o corpo do correio. E também queremos exibir o erro na tela. Então, se houver um erro, temos que exibir o erro, que pode ser gravado aqui. E se não houver erro, precisamos configurá-lo para saber quando você salva a mistura de aplicativos para renderizá-la no componente do aplicativo. Venha aqui. E fizemos tudo isso na palestra anterior. Então, eu apenas coloco o comentário sobre eles. Importe, use-o, fago de dados da barra de componentes, use-o e use-o e use-o como redutor, use a era digital. Eu falei demais. Estão certos, então vamos renderizá-los corretamente, dentro do componente do aplicativo. Você declara o efeito deles. Também precisamos executar o aplicativo aqui. E eu vou fazer npm start width para isso. Mostra o indicador de carregamento. E quando o processo foi bem-sucedido, ele garantiu os dados. Portanto, ao recarregar o aplicativo, você definitivamente verá o indicador de carregamento. Você pode ver, embora apareça em um piscar de olhos? Mas se sua internet estiver muito lenta, você a verá em alguns segundos. Dê uma olhada. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado. Então, deixe-me mostrar uma coisa, porque também queremos ter certeza de que o indicador de seta também está funcionando perfeitamente bem. Então, volte para o VS Code. E aqui, vou apenas alterar o URL. Esse URL está incorreto. Portanto, o erro será exibido na tela. Quando você salva no navegador. Recarregar. Opa, algo deu errado. O objetivo deste exemplo é verificar as etapas da transação ao usar o estado dos EUA como uma variável de estado para buscar dados. Vamos ver como fica quando implementamos esse mesmo exemplo com o uso Reducer who? Isso é tudo por enquanto, na próxima palestra, veremos como implementar esse exemplo com o redutor de uso. Nos vemos na próxima palestra. 48. 46 useReducer DataFetch: Na palestra anterior, vimos como buscar dados com o efeito Hooke usando o use that hook para gerenciar a transação imobiliária. Então, neste exemplo, veremos como buscar dados com o efeito americano Hooke implementando o gancho redutor de uso para manter e gerenciar essa transação de TID. Dentro deste pacote, vamos criar um novo componente chamado user user data phage. Gere o componente funcional. Vamos importar rapidamente o redutor de uso e o efeito dos EUA. Então, no nível superior, use redutor, coma. Use o efeito também. Temos que importar nossos CEOs a partir de axiomas. Vamos declarar o estado inicial como propriedade de um único objeto. Deixe-me mostrar como fazer isso rapidamente. Consiste no estado inicial, defina-o como um objeto vazio. E bem, dentro do objeto, vamos agrupar todo o estado que teremos no aplicativo, diretamente dentro. Vamos fazer o carregamento, configurá-lo como verdadeiro, assim como fizemos na aula anterior. O erro o definiu como uma string vazia e a postagem como um objeto vazio. Então, essas são as transições que precisamos neste aplicativo. E com isso, conseguimos agrupar todo o estado dentro de um objeto. E vasto, extremamente legal. Vamos definir rapidamente a função redutora. Então, tendo feito isso, venha aqui, temos que invocar que eles usam redutor. Então, dispostos a usar o redutor, vamos considerar o redutor e o estado inicial como parâmetro. Então, esse é o estado inicial que temos no topo aqui. Para o redutor, também temos que definir o redutor. Vou fazer const, reduzir um núcleo, configurá-lo para uma função de seta. E a redução que usa dois parâmetros. O primeiro são os Estados e depois a segunda é a ação. Agora temos uma transição em dois estágios a ser implementada. primeira é quando a solicitação é bem-sucedida e a segunda é quando a solicitação falha. Deixe-me te mostrar rapidamente. Volte para o estado estacionário do fago nos EUA. Esta será a primeira transição de estados, e esta é a segunda transição de estado. Vamos ver como implementá-los rapidamente. Então, certo, dentro da função redutora, vamos ter um interruptor. E a expressão do switch será do tipo ponto de ação. Então, o primeiro caso será data fetch socks x. Data underscore fetch underscore socks x. Então, se tudo estiver bem, agora vamos voltar a carregar, assim como fizemos na aula anterior. A postagem. Vamos ter a vírgula action dot payload. E então o erro também será uma string vazia. O segundo caso é quando os campos de solicitação. Então, aqui teremos os dados do caso sublinhado, busca e erro de sublinhado. Quando ocorrer um erro, retornaremos aqui algo assim. Certo? No retorno, vamos definir o carregamento para forçar a postagem a ser definida como um objeto vazio e, em seguida, o erro é que algo deu errado. E, claro, temos que especificar o caso padrão, que retornará o estado. Vamos formatar rapidamente o código para obter uma indentação adequada. Ainda não fiz isso, venha aqui. Portanto, para usar o gancho do redutor, ele retorna um par de valores, que é o estado atual e o método de despacho const state comma dispatch , e então o atribui assim. E agora vamos fazer a chamada de API. E, claro, isso deve ser feito dentro do efeito que permite invocar rapidamente o efeito dos EUA. Só precisamos copiar a palestra anterior de frente para usar dados, busca de dados. Então eu vou copiar das linhas 92, linhas 21. Copiar. Venha aqui, certo? Estamos na função. Temos que pagar. Vamos fazer as mudanças necessárias. Portanto, só precisamos substituir as ocorrências usadas diretamente no bloco prometido. Vamos destacar as faixas 35 a 37. Limpe-o. Então, agora, quando o engordado é bem-sucedido, temos que despachar a ação. Despacho. Certo? Estamos no método de envio. Vamos pegar um objeto. E então temos que especificar o tipo de ação e o tipo de ação a ser enviada quando a busca for bem-sucedida são os dados sobre o fago Dusko nas meias Vasco x. Deixe-me mostrar na parte superior. Aqui estão os destaques e depois Copiar. Venha aqui, cole. Estamos na corda. Quando enviamos os tóxicos para a busca de dados, precisamos especificar a carga útil. E a carga útil serão dados de pontos de resposta. Deixe-me explicar para você o que é uma carga útil em um GeV. A carga útil são os dados que seu redutor usará para atualizar o estado. Então, vamos pegar novos dados. E então isso será usado para atualizar o estado inicial. E, claro, o estado inicial é apenas um objeto vazio. Então, diretamente no bloco de captura, temos que enviar a ação da flecha. Despacho, certo? Método disposto a enviar. Temos que especificar o tipo da ação. O tipo dessa ação será busca de sublinhado de dados, erro de sublinhado. Venha aqui e cole. É tão simples quanto isso. Portanto, não precisamos especificar a carga aqui simplesmente porque já especificamos a mensagem de erro. E aqui está a mensagem de erro. Vamos exibir rapidamente os dados no navegador. Só precisamos copiar os antagonistas dos exemplos anteriores. Um anexo indica que todos os nomes das variáveis simplesmente porque eles fazem parte do objeto de estado, certo, certo, dentro do fago de dados dos EUA, só precisamos copiar o corpo assim. Destaque e copie. Venha aqui. Cole assim. Vamos formatar rapidamente para obter uma indentação adequada. Perfeito. O que vou fazer agora é acrescentar estados a todas as variáveis. O ponto de estado está carregando. E aqui vamos fazer o DOT estadual. Publique esse corpo. Renderize isso rapidamente no componente do aplicativo, e vamos ver o que temos no navegador é reduzir nossa busca de dados a partir de uma barra competente todos esses níveis de diretório que você precisa segmentar. E venha aqui, por favor, comente sobre esses enormes fagos de dados redutores. Salve e vá para o navegador. Vamos ver o resultado esperado. Opa, algo deu errado ou certo, pessoal. Você pode se lembrar de que, na palestra anterior, alteramos o URL. Então, temos que voltar para Jason. Segure para copiar o URL apropriado. E aqui está. Copie, venha aqui e cole. E acho que também é bom fazer a correção aqui. Tudo bem, para que você não tenha problemas no futuro quando quiser referenciar meu código. Ok, por aqui, economize e vamos ver o resort acelerado. Eles são tão lindos. Tudo está funcionando perfeitamente, conforme o esperado. Agora, a diferença entre esse exemplo e o que fizemos na aula anterior é que conseguimos agrupar o estado relativo. Deixa eu te mostrar aqui em cima, assim. Além disso, as transações em etapas também são agrupadas. Agora, o argumento é esse. Se eles usarem o redutor e deduzirem que os Hooke são usados para gestão estadual. Quando será preferível usar o usuário-usuário novamente? Os EUA se conectaram tão rapidamente. Vamos discutir isso na próxima palestra. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 49. 47 useCallback de Callback: Nesta palestra, estudaremos outro gancho de impotência, que é o retorno de chamada dos EUA. No entanto, é muito importante entender a otimização do desempenho antes prosseguirmos com os retornos de chamada de uso. E, portanto, isso está claro para você. Agora podemos discutir o que é um retorno de chamada de uso, por que e quando você deve usá-lo. E aqui, eu já criei uma contra-obrigação simples. Tão rápido, deixe-me explicar isso. Vamos falar sobre os componentes do aplicativo. E aqui nós renderizamos um componente chamado componente principal. E aqui está, certo, querendo o componente principal, temos dois componentes diferentes, que são reutilizados com propriedades diferentes para mostrar informações diferentes. E o primeiro é o componente Counter. Esse componente contador aqui é responsável por exibir o número atual de professores. O componente do botão é responsável por incrementar o professor. E aqui reutilizaremos o componente Counter para mostrar o número de alunos. E também reutilizamos componente do botão para incrementar os alunos. E toda essa função aqui é definida na parte superior. Aqui temos os incrementos, a função de bate-papo, os incrementos dos alunos e, em seguida, temos as variáveis de estado necessárias na parte superior. Certo, estamos nessa função. Estamos incrementando, ensine-nos em cinco. Aqui estamos incrementando os alunos em dez. Tudo bem, então tudo isso acontecerá quando o botão for clicado. Então, volte aqui. Ao observar esse componente, você perceberá que estamos passando no teste como sondas e também no estado atual do professor. E no componente inferior, pegamos o clique da alça como sondas e, em seguida, passamos a função de teste t de incrementos conforme seu valor. Essa função é definida na parte superior. Claro que eu já te mostrei. E a mesma coisa aqui. Pegamos a contagem de intestinos como adereços e depois passamos o valor dos estudantes atuais, certo? Não seria esse botão, passamos o clique da alça como sondas e estamos absorvendo os incrementos que os alunos, conforme seu valor, que é o valor dos prompts, acessamos rapidamente o componente do botão. Então, logo na parte inferior, os componentes seriam alça desestruturada, camarilha e filhos. Aqui implementamos um botão ao clicar neste botão. Estamos recebendo essas instruções, que são a alça de clique em que ela tem o valor do professor incremental na função de aluno de incrementos. E aqui nós os estamos passando para crianças como um HTML interno. Então, isso vai mostrar o teste entre o Bolton. Deixe-me mostrar rapidamente o componente principal. Então, o HTML interno aqui, esse cara incrementa os alunos e incrementa o professor. Eles serão exibidos por causa dos adereços das crianças. Claro, você já deve saber disso. Rapidamente, vamos passar para o componente Counter. direitos dentro do componente Counter destruiriam seu teste e sua contagem. E aqui estamos fazendo testes e contando a contagem, que mostra o valor atual dos professores e dos alunos. Para finalizar, criamos um novo diretório chamado use callback practice. Aqui está. Então, nesse diretório, criamos todos esses componentes e, em seguida, renderizamos o componente principal no aplicativo Js. E, com certeza, o componente do botão e o componente de contagem estão aninhados no componente do domínio. E no topo, nós os importamos, é tão simples quanto isso. Não entendi o aplicativo. Vamos prosseguir rapidamente com os negócios do dia. Feche isso. Portanto, o objetivo deste exemplo é focar na otimização do desempenho e medir o desempenho. Temos uma declaração de registro aqui. Deixa eu te mostrar. Você pode ver que isso ajudará a mostrar o componente que está sendo renderizado. E aqui também, temos algumas declarações de log. Então, direitos dentro do terminal. Temos que executar o aplicativo. Perfeito. Isso é exatamente o que estamos esperando. Então, quando eu clico em incrementos, cada um que nos ensina será incrementado em cinco. Você vê? E quando eu clico em incrementos , estudantes e estudantes serão incrementados ao tirar. Tudo parece estar funcionando perfeitamente bem. Vamos dar uma olhada rápida no console e ver quais arpões estão mais altos, certo? Então, para obter estatísticas, só precisamos limpar o console novamente para que ele pareça limpo. Agora, vou clicar no incremento de t vezes a votação. Quando eu clico nos professores de incremento, você verá a renderização dos professores, mas em incrementos os detalhes estão aqui. Você verá renderizações de estudantes e renderização de barcos incrementa estudantes. Quando eu clico nos incrementos de estudantes, você verá uma senhora mesma declaração de registro renderizando professores, incremento de votos, professores renderizando estudantes, renderizando incrementos de alunos. Então, infelizmente, é aqui que está o problema. Porque se clicarmos nos professores incrementados, não há necessidade de renderizar novamente o componente de incrementos do aluno. Mas, nesse caso, quando incrementamos os professores, os componentes dos alunos serão renderizados novamente. Além disso, quando incrementamos os alunos, os componentes do professor serão renderizados novamente. E isso causará alguns problemas de desempenho em seu aplicativo. Então, imagine que temos mais de 100 componentes aqui. E ao atualizar um único componente, o restante do componente da década de 1990 será renderizado novamente. Amigos. Isso não será nada bom porque você começará a ter algum problema de desempenho. Portanto, para otimizar o desempenho, precisamos renderizar com precisão apenas o componente que precisa ser renderizado novamente quando ele declara ou solicita alterações. E isso será feito com o React dot memo. React dot memo é uma ferramenta fantástica para memorizar componentes funcionais. E quando aplicado corretamente, evita que um componente funcional não seja renderizado novamente se o estado dos prompts não foi alterado. Parece bom. Belo poder, certo? Portanto, você pode pensar memorização como uma forma de valor fundamental, que ela não precise ser recalculada quando o estado ou as sondas não mudarem. Então, vamos otimizar rapidamente esse aplicativo com o React dot mammal VS Code. E rapidamente vamos para o componente principal. Tudo bem, então, para otimizar o aplicativo, o que vamos fazer é muito simples. Então, o que vou fazer agora é destacar os padrões de exportação desse cara e depois chamá-lo. Venha aqui, cole, e então vamos fazer React Dot Mammal. E agora temos que passar. O componente é tão simples quanto isso. Então, o que vou fazer agora é destacar e copiar. Vamos para o componente de votação. Venha aqui, cole. Temos que mudar o componente para o componente votação. Por aqui. Vamos remover os padrões de exportação. Faça o mesmo no componente Counter. Remova os padrões de exportação, venha aqui e cole. Então, aqui temos que passar o componente de preocupação, que é o contra-componente. É tão simples quanto isso. Salve e vamos dar uma olhada no navegador. Atualizar. Na primeira renderização, você verá todos os componentes aqui mesmo no console. renderização nos ensina a comprar aleatoriamente em incrementos, professores, renderizar estudantes e, em seguida renderizar incrementos de votação no aluno. Vamos limpar o console. Agora, vamos tentar clicando no professor de incremento. Você pode ver? Agora temos professores de renderização, professores incrementais comprados aleatoriamente e, em seguida, renderização de incrementos de votos de estudantes. Por enquanto, podemos otimizar um pouco o aplicativo. Porque aqui ainda temos a renderização, mas em incrementos o aluno diretamente no console, o que não é muito bom. Então, quando atingimos incrementos, aluno, você verá incrementos aleatórios trazidos, professores renderizando alunos e, em seguida, incrementos aleatórios de internação para estudantes. Portanto, a intenção desta palestra é evitar renderizações desnecessárias. Porque quando você clica na votação do aluno, o componente relacionado ao professor também não deve ser renderizado novamente. Quando você clica nos professores, o componente relacionado aos alunos não deve ser renderizado novamente. E agora isso representará outro desafio, porque não estamos mudando o estado do componente estudantil. Mas aqui está sendo renderizado novamente. Deixe-me te mostrar rapidamente novamente. E eu clico em recursos incrementais. Você vê que a renderização do voto incrementa os estudantes. Não estamos mudando o estado do componente estudantil, então não queremos que ele seja renderizado novamente. Mas aqui no console, você pode ver que a votação do componente estudantil está sendo renderizada novamente. Ao limpar o console e fazer o mesmo para incrementar o aluno, você verá o componente relacionado ao professor, que é o componente de botão do professor. Também está sendo renderizado novamente. Portanto, isso é chamado de renderizações desnecessárias. Deixe-me explicar rapidamente o que acontece sob o capô. Vá para o componente principal. Então, aqui temos o componente Counter e ele aceita professores como sondas. O componente do botão aceita os incrementos do professor, pois ele sonda o valor, que é a função definida na parte superior. Aqui está? Então, isso significa simplesmente que, quando o estado do professor for atualizado, o componente Contador do professor e o componente de botão do professor serão renderizados novamente. Mas o problema agora é que até mesmo a votação dos estudantes está sendo renderizada novamente. Embora o componente de contato de um aluno não seja renderizado novamente. Isso ocorre simplesmente porque quando uma nova chamada incrementa cada função nossa, uma nova função de aluno de incrementos é criada toda vez que o componente pai é renderizado novamente. E, com certeza, ao trabalhar com função, devemos considerar uma igualdade de referência. Portanto, mesmo que essas duas funções se comportem exatamente da mesma forma, isso não significa que elas sejam iguais uma à outra. Portanto, a função antes da nova renderização é diferente da função após a nova renderização. Então, simplesmente porque passamos a fortuna como adereços, React, dot memo perceberá rapidamente que as sondas mudaram e, portanto, não conseguirão evitar a nova renderização. Alguns listrados, certo? Deixe-me detalhá-lo. Quando você incrementa professores em novos incrementos, função do aluno será criada, que fará com que os incrementos da votação do aluno sejam renderizados novamente. E quando você incrementa os alunos em novos incrementos, cada uma de nossas funções será criada, que também fará a função de incremento do professor seja renderizada novamente. E agora a questão é: como informamos, reagimos para não criar novos incrementos nessa função quando atualizamos Os professores estão certos. Então aqui é que Lee é onde você ganha dinheiro. Então, qual é o uso de ganchos de retorno de chamada? Eles usam callback e retorna a versão MMOs da função de retorno de chamada que só tinge se uma das dependências foi alterada. Então, na simplicidade, eles usam o callback hook que é usado quando você tem um competente no qual uma criança está renderizando repetidamente sem a necessidade dela. Tudo bem, então, para implementar o retorno de chamada de uso, várias condições devem ser satisfeitas. A condicional é que devemos ter uma função de retorno de chamada. A segunda condição é que devemos otimizar os componentes do gráfico com o React dot memo. Deixa eu te mostrar. Aqui. Otimizamos o componente infantil e aqui também otimizamos o componente infantil. A terceira condição é que devemos verificar a igualdade de referência. Para a igualdade de referência, temos que verificar se as funções são iguais. Portanto, se a condição acima for satisfeita, podemos então otimizar ainda mais nosso aplicativo com o gancho de retorno de chamada dos EUA. Certo? Portanto, para implementar o gancho de retorno de chamada de uso, várias etapas estão envolvidas. Não se preocupe, as etapas são realmente muito simples. Role até o topo. Primeiro, temos que importar o uso Kohlberg. E depois disso, a etapa número dois é invocar o uso Kohlberg. E eles usam callback como uma função que recebe uma função de retorno de chamada como seu primeiro argumento. Então, o que eu vou fazer agora é copiar essa função, assim, realçar a cor. Venha aqui e cole. E depois disso, temos que atribuí-lo a uma variável como essa. Certo? Linda. Portanto, o segundo argumento do retorno de chamada dos EUA é uma artéria de dependência. Então, o que vou fazer agora é especificar a vírgula e depois pegar a área de dependência. E esse retorno de chamada aqui depende da variável do professor para ser acionado. Venha aqui, destaque e copie, cole diretamente na dependência. Essa função será acionada somente quando o estado dos professores mudar for tão simples quanto isso. Então, vamos replicar a mesma coisa para o aluno. Use o callback. Aceite uma função de retorno de chamada como seu primeiro argumento. Copie isso. Destaque e cubra, venha aqui, cole. Então, aqui, temos que atribuí-lo a uma variável como essa. O segundo argumento é uma matriz de dependências. Isso aumentará quando o estado do aluno mudar. Portanto, só precisamos especificar os alunos como sua matriz de dependências. Então, isso significa simplesmente que depende do estado do aluno para se empolgar. Se os alunos não mudassem, a função não seria detectada. É tão simples quanto isso. Então, temos que atribuí-lo assim. Feito isso, vamos dar uma olhada rapidamente no navegador. Atualizar. Bonitos para a época da força de trabalho quando o aplicativo é carregado, todos os componentes serão renderizados. Vamos atualizar rapidamente o console. Com tantos cliques nos professores de incrementos no console, você perceberá que somente o componente relacionado ao teste t é o que está sendo renderizado novamente. Ok? Portanto, você não receberá renderizações desnecessárias mais renderizações desnecessárias, como o componente Students. Além disso, quando você incrementa os alunos, vamos limpar o console e depois incrementar até o fim. Você perceberá que somente o componente posterior do aluno é o que está sendo renderizado novamente na tela. E a prova está no console. Então, com isso, podemos dizer que o aplicativo está totalmente otimizado. Você pode ver que não temos mais algumas renderizações inúteis. Isso é extremamente incrível e eu adoro isso. Amigos. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 50. 48 useMemo de memorando: Na palestra anterior, discutimos o uso do gancho de retorno de chamada, que se concentra na otimização do desempenho. Então, nesta palestra, discutiremos o uso de ganchos de memorando, que também se concentram na otimização de desempenho. O gancho de memorando de uso do React retorna um valor úmido. E eu quero que você pense na memorização como valores cagianos para que ela não precise ser recalculada. Técnicas, eles usam o mama hook, só funciona quando uma de suas dependências é de ações. E isso melhora o desempenho. Então, para entender que a altura funciona, vamos exemplificar isso. Vamos criar rapidamente um novo pacote chamado use memo practice, certo? Estamos na nova pasta de componentes. Disposto a usar mais minha prática. Vamos criar uma nova empresa no meu memorando, counter dot js. Gere rapidamente o componente funcional. E então vamos declarar as variáveis de estado necessárias e definir nossa função para ser usada. E com certeza você precisa importar o estado dos EUA. O que eu só tenho que fazer aqui é usar as teclas de vírgula, que é a função de configuração. O que eu só tenho que fazer aqui é usar as teclas de vírgula, que é a função de configuração. E o estado inicial será. Zero. Destaques, duplique-os. E então eu vou destacar a letra grande, um Comando D para selecionar as ocorrências, apagá-las, alterá-las para que sejam. Portanto, temos as variáveis de estado do contador a e do país B. O mais simples disso. E aqui vamos definir uma função para incrementar a um e depois também incrementar o contador b em dois. Constante. Incremente a. Igual, defina-o para nossa função. E então eu vou colocar o contador a entre colchetes. Vamos receber as novas atualizações, entre em contato com um acompanhante. É tão simples quanto isso destaca, replique-o. Basta selecionar as ocorrências delas, alterá-las para serem. E aqui, só temos que fazer COUNTA ser mais um. Portanto, queremos exemplificar o memorando de uso com um aplicativo simples de contador. Vamos rapidamente renderizar algo na tela. Aqui vamos ter uma tag p. Dentro da tag p, eu vou fazer um e is, é claro que você já deve saber disso. Aqui, queremos implementar um botão para incrementar o contador. Ao clicar nesta votação. Vamos chamar a função de incremento de dívida mais simples. Então, o que vou fazer agora, teremos outro div. Destaca esse cara das linhas 18 a 19, mova-o para essa nova div que criamos. Então, deixe-me formatar rapidamente o código. Perfeito. Então, vou destacar as linhas 15 a 18 duplicatas. Aqui. Vamos fazer b. B e b. E B , Meu Deus, eu deveria ter selecionado as ocorrências e fazer isso uma vez. Ao salvar o aplicativo, vá até os objetos e vamos renderizá-lo. Este lugar é muito bagunçado, mas temos que administrá-lo assim. Importa minha contagem crescente de memorandos de seus destaques originais, resumidos e reduzidos. Faça um comentário sobre isso. Confira no navegador. Linda. Tudo está funcionando perfeitamente bem. Então, vamos experimentá-lo. Um bom, seja bom, tudo funcionando perfeitamente bem. Então, aqui é exatamente onde a diversão começa. Agora, vamos melhorar o aplicativo. Então, digamos que queremos exibir mesmo quando o número é par ou ímpar, quando o número é ímpar. Vamos melhorá-lo rapidamente. Venha aqui. Vamos ter outra função, constante, número par. Defina-o para nossa função. Esse cara vai pegar seus resultados. E aqui eu vou fazer um resultado igual a um módulo dois igual a zero. Assim, é o mais simples. Então temos que devolver qualquer que seja o resultado. Perfeito. Feito isso, vamos exibir rapidamente na interface do usuário. Diretamente na etiqueta p do contador. Temos que colocar alguma condição aqui. Portanto, a é qualquer que seja o valor do estado e, em seguida, se é par ou ímpar. Portanto, temos que especificar se o número é par ou ímpar. E, hum, eu vou fazer isso aqui. Primeiro, temos que chamar a função. Mesmo. Depois disso, temos que fazer um cheque. Se o número for par, então vamos dizer, par. Agora. Vamos dizer estranho. Mais simples que salvar o aplicativo e conferi-lo no navegador. Recarregar. Ok, então vamos incrementar a. Você pode dizer que diz que o contador é um e que é estranho. Incrementa novamente, diz que a é dois, n é par, sem mais nem menos, certo? Mais uma coisa que queremos fazer e que é extremamente importante é tentar induzir a lentidão, a função invernal. Então, vamos supor que queremos que essa função seja executada em alguns segundos. Tudo bem, então queremos um pouco de atraso na oclusão. Então, para isso, temos induzir alguma lentidão na função. Vamos fazer isso rapidamente. Vá para o código VS. Aqui mesmo. Eu vou fazer let i igual a zero. Então, embora eu seja menor que, teremos 09 vezes mais exato, então teremos que incrementar I em um. Feito isso, induzimos lentidão nessa função. Então, isso diminuirá o cálculo em silicones. Vá até o navegador. Vamos recarregar. Agora, quando clico em Entrar em contato com o ar, você pode ver que leva alguns segundos para que a seja incrementado. Tente novamente. Você vê aqui que Lee é onde está o problema. Então, a lentidão foi induzida no campus a. Mas agora, quando clico no contador b, você vê que ainda experimentamos a mesma lentidão. Deixe-me tentar novamente. Você vê que leva alguns segundos para que o contador seja calculado e tenha os resultados exibidos na tela. Mas olha, não é isso que queremos aqui. Tudo o que queremos é induzir lentidão no contato a e não no nascimento. Portanto, não queremos que isso afete o contador b. Então, o que acontece aqui é que sempre que o estado for atualizado, o componente será renderizado novamente. E quando o componente é renderizado, o número par da função é invocado pela segunda vez. E com certeza a função é muito lenta e , portanto, retardará todo o processo e a atualização da interface. Não queremos que isso aconteça com o aplicativo. Portanto, a solução para esse problema é evitar que valores desnecessários sejam recalculados. E neste caso, vamos informar, reagir para não realizar esse cálculo quando estamos alterando o valor do contador, de forma mais simples, que não há necessidade de calcular e mostrar qual é um número ímpar ou mesmo ao lidar com o país B. Porque é exatamente isso que o aplicativo parece estar fazendo agora. Volte. Quando você clica em Contato. O cálculo leva alguns segundos, sem saber se o número é par ou ímpar. contato B não está interessado em ver se o número é par ou ímpar. Mesmo assim, quando você incrementa o contador B, leva alguns segundos para ser calculado. Simplesmente porque essa lentidão que induzimos esse cara aqui está afetando esse cara. Portanto, temos que evitar cálculos desnecessários. E para evitar esse cálculo desnecessário, temos que fazer uso do mamífero americano. Volte ao código VS para implementar o use memo hook. Primeiro. Ele também deve ser importado, assim como todos os outros ganchos. O mamãe hook usado é uma função que devemos invocar. Então venha aqui. Eu vou usar o memorando. O memorando entrará em vigor. O valor da função de retorno precisa ser chamado como seu primeiro argumento. Nesse caso, a função para calcular o número é par ou ímpar. Então, aqui eu vou copiar daqui assim, destaques, recortes, vir aqui e colar como primeiro argumento de uso do memorando. O segundo argumento é uma vírgula de matriz de dependência tomada em uma matriz vazia. Para que essa função seja ativada, ela tem que depender de a. E eu vou fazer o contra-a. assim. Depois disso, destaca esse cara, corta. Venha aqui, atribua-o assim. Feito isso, o número maligno não é mais uma chamada de função porque agora armazena um valor. Então, volte para a interface do usuário ou remova os parênteses. Temos que remover esse cara. Salve o aplicativo, os anticódons, o navegador e recarregue. Certo? Vamos tentar clicando no incremento a. Consegue ver? Demora alguns segundos para que a seja incrementado. Dê uma olhada. Então, vamos experimentar com B. Você vê o contador B ser incrementado sem perder tempo? Agora, a lentidão que induzimos no contador a está funcionando perfeitamente bem apenas no contato a. E, desta vez, não afeta o contador, simplesmente porque implementamos o uso do gancho de memorando para otimizar o aplicativo. E neste caso, estamos tendo a lentidão sendo induzida no contador apropriado. Portanto, sempre que um contato for alterado, o React recalculará o valor e desconsiderará o valor da carta, que simplesmente implica que não usará mais o valor do cartão. Portanto, como o valor nunca mudou para o contador a, não há necessidade de recalcular o valor ímpar ou par e, em seguida react usará o valor da o react usará o valor da renderização anterior, não será afetado por esse clônus que induzimos. E agora a questão é: qual é a diferença entre o retorno de chamada de uso e o uso de mamíferos? retorno de chamada de uso é usado para capturar uma função, enquanto o memorando de uso é usado para cortar o resultado de uma função invocada. simples quanto isso. Ou você pode dizer que o retorno de chamada dos EUA é usado para capturar uma função de retorno de chamada. Isso é tudo por enquanto e até a próxima palestra. 51. 49 useRef ganchos: Nesta palestra, vamos estudar o uso do ref hook. O gancho usual é usado para acessar um elemento DOM diretamente dentro do componente funcional. E também pode ser usado para armazenar um valor mutável que não causa uma nova renderização quando é atualizado. Além disso, usar o roughough hook permite que você mantenha o valor entre as renderizações. Vamos seguir em frente para exemplificar. A intenção deste exemplo é focar o direito causal no campo de entrada quando a página é carregada. Por exemplo, você está criando um formulário de registro. Queremos focar o cursor diretamente no primeiro campo de entrada quando a página for carregada. Crie rapidamente um novo pacote chamado user of practice. E espero que tenham gostado da forma como estou organizando as palestras. Dentro do usuário da prática, vamos criar um novo componente chamado impute de custo total. Os direitos estavam na interface do usuário. Vamos criar uma rixa olímpica. O tipo Equal Test. Feche com a etiqueta de fechamento automático. Renderize rapidamente esse componente no aplicativo. Js importa o foco imputado a esse cara. E aqui temos que focar em períodos. Vamos ver o que acontece no navegador. Aqui está o campo de entrada. Deixe-me ampliar um pouco. Perfeito. Voltar ao VS Code. Focus impute a empresa. A próxima linha é implementar a funcionalidade de montagem em componentes. Primeiro, temos que importar o efeito dos EUA. Vamos invocá-lo rapidamente aqui. Ele usa uma função de seta como seu primeiro argumento. Além disso, ele assume uma dependência RA. Mas, nesse caso, vamos deixá-lo vazio porque queremos que o efeito seja ativado. Portanto, não há necessidade de especificar uma variável de dependência. Ok, então vamos continuar com a grande rave. Mas, acima de tudo, temos que importar a referência de uso como faculdade aqui. Não se preocupe, você definitivamente entenderá que a essência segue adiante. E, claro, queremos que isso aconteça agora. Agora vamos atribuí-lo a uma variável chamada de penetrativa. Não criei o href. O ninho e a linha são fazer uso dele. E então temos que fazer com que tudo isso caiba perfeitamente na tag de entrada, onde podemos usá-la para especificar os atributos href. Temos que chamar a variável em Petrov. O mais simples é que, finalmente, temos que invocar a função de foco no elemento de entrada, certo? Em efeito de desuso, aqui mesmo. Vamos invocar a função de foco. E eu vou fazer em Peter F dot current gods para carros. Exatamente assim. Com isso, React está definindo a propriedade atual Raph para o nó DOM correspondente. Vamos ver o que acontece em um navegador. Você pode ver quando o componente é montado O mouse se concentrará na entrada visualizada. Essa implementação é muito útil quando você está criando um formulário de registro. E você quer que o primeiro campo de entrada no formulário de registro se concentre no momento em que a página for carregada. Você pode ver isso claramente. Use o curso corretamente, dentro do campo de entrada. Mas quando retirarmos o href, vamos fazer um comentário sobre isso. Você pode ver que nada foi encontrado no campo de entrada. Portanto, o campo de entrada não tem quatro núcleos. Mas quando você implementa a referência na recarga do navegador, você pode ver que o campo de entrada está focado? Então, é exatamente isso que o usuário pode ajudar você a alcançar. 52. 50 useRef ganchos temporizador: Para explicar melhor, usuário do hook, vamos configurar rapidamente um exemplo de aplicativo de cronômetro. Então, certo, quando você usa a prática de arbitragem? Vamos criar rapidamente um novo componente chamado timer. Clique com o botão direito em novo arquivo. Ponto do temporizador. Gere o componente funcional. A intenção desta palestra é implementar um cronômetro de intervalo que leva cada segundo para exibir o valor no navegador. Para fazer isso, primeiro, temos que declarar a variável para manter o valor do intervalo. Então, no topo das causas até agora, você deve saber como fazer isso. E aqui vamos declarar uma variável de estado. E vamos chamá-lo de cronômetro. Então, só temos que transformar isso em uma caixa de vírgula aqui. E o estado inicial estará lá. Vamos exibir rapidamente o valor do cronômetro, diretamente nos GSAs. Vou usar a tag H2. Então, aqui eu vou fazer o cronômetro, que é o novo valor do cronômetro seguro. Vamos renderizá-lo rapidamente no componente do aplicativo. E aqui temos que importar o cronômetro dos componentes cortar o cronômetro de barra dos usuários logo abaixo. Vamos renderizá-lo aqui. Ao salvar o aplicativo, finalizar a compra no navegador, você vê que o cronômetro é o estado inicial ou o valor inicial do cronômetro. Volte ao código VS e vamos implementar rapidamente o cronômetro. Para configurar o cronômetro, precisamos implementá-lo diretamente no efeito WHO. Então, no topo, temos que importar o efeito Hooke. Venha aqui. O gancho é uma função e então temos que invocar. Essa função usa uma função de erro como primeiro parâmetro e, também, o segundo parâmetro é uma matriz de dependências. E nesse caso, teremos uma matriz de dependências vazia. Então, na verdade, é onde a transformação ocorre. Vamos ter um intervalo constante, um intervalo definido igual. E, novamente, temos que assumir uma função de erro. Então, dentro dessa função, temos que atualizar o cronômetro. Fazemos isso chamando a função de configuração de um cronômetro, dentro do cronômetro normal, usado no cronômetro anterior. E o Timer Plus anterior, o mais simples. E queremos que eles sejam exibidos no navegador a cada segundo. Então, aqui, vamos colocar uma vírgula aqui e depois induzi-la aqui. Feito isso, precisamos implementar uma função de retorno para limpar o intervalo. Retornar. Aqui eu vou fazer o intervalo de Claire. Temos que passar em Java. Quando você salva e verifica o navegador. Você pode ver? O maior desafio que temos nesta palestra é desligar o cronômetro quando o botão é clicado. Então, vamos implementar rapidamente uma navegação para realizar essa funcionalidade. Temos que especificar o onclick. Ao clicar neste botão. Queremos desligar o cronômetro. Tudo bem, vamos fazer isso e ver no que acontece. Vamos chamar o TVA limpo e depois passar o intervalo. Aqui. Dentro do teste interno, vou fazer o cronômetro de cliques. Quando você salva e verifica o navegador. Veja, diz que o intervalo não está definido. Você sabe, por quê? Volte ao código VS e deixe-me mostrar a você. É simplesmente porque o intervalo variável tem um escopo local apenas no sentido da OMS. Então, quando você faz isso, o intervalo só pode ser limpo, certo? Qual é o efeito de quem? Queremos limpar o intervalo quando o botão é clicado. E imediatamente implementamos o botão. Olha o que acontece. Diz que o intervalo variável do qual passamos aqui não está definido. Mas olha, nós o definimos aqui na linha sete. Então, isso significa simplesmente que esse intervalo só pode ser visto diretamente dentro do gancho de efeito. Para resolver esse problema, precisamos facilitar o uso do href, cuja técnica geralmente tem, também pode ser usada para armazenar um valor mutável que não causa uma nova renderização quando atualizado. Novamente, o usuário f é uma função, então temos que invocá-la normalmente. Mas primeiro, ele precisa ser importado em um clube. Aqui no topo, vamos invocar o usuário F. Agora vamos fazer const, ref em Dava, atribuí-lo assim. Portanto, o próximo item da fila é substituir todas as ocorrências do intervalo pela corrente do ponto de referência. Venha aqui, temos que apagar essa variável. Então eu vou fazer pontos de intervalo. Dados atuais e mais simples. Lembre-se de que temos que substituir todas as ocorrências do intervalo. E aqui temos um aqui que é passado para o método do intervalo de argila. Substitua-o assim. Aqui temos outro. Quando você salva o aplicativo, vamos retirar o navegador. Vamos tentar clicando em declarar tempo limite, votando. Dê uma olhada. Agora, conseguimos limpar o cronômetro. Quando clicarmos neste tabuleiro, o intervalo será apagado e o cronômetro será interrompido. Portanto, esse é outro problema que o usuário resolve. 53. 51 construindo o site de comer de yum (reage a instalação): Nesta palestra, vamos começar a construir o site. E, como sempre, vamos começar do zero instalando um novo aplicativo React no desktop. Vamos criar rapidamente uma nova pasta chamada Yom eats. O ninho e a linha são arrastar e soltar a pasta no VS Code. Então, abra rapidamente o código VS. Vá em frente e arraste a pasta para o VS Code. Vamos maximizar. Então eu vou sair da página de amostra. Abra o terminal integrado do VS Code. E eu vou fazer chá Control and Bark. Ou você pode encontrá-lo no canto superior direito, que é o terminal e depois o novo terminal. Então, vamos usar o comando MUX para criar um novo aplicativo React sem precisar instalá-lo em nosso sistema MP x dash React app. E então queremos instalá-lo em um diretório chamado Klein's. Pressione a tecla Enter para disparar. Ah, a instalação do React js está em andamento. E enquanto a instalação estiver em andamento, quero apresentar a você uma estrutura de utilitários CSS. Essa estrutura é Tailwind. A estrutura Tailwind facilita muito o estilo de seu aplicativo. Em seguida, você pode clicar em Começar para ver como instalar um tailwind inicializado. Aqui está o conselho para fazer isso instalado, você vai fazer npm install dash d, tailwind CSAs. E então, se você quiser inicializar, você vai fazer NP x tailwind CSS. Precisa. Por enquanto, vamos pular o CSS Tailwind. Estou focado na instalação do React. O React foi instalado com sucesso. Portanto, o próximo na fila é iniciar o servidor de desenvolvimento front-end. Vá até o terminal. Primeiro, temos que ver as reivindicações D. Então eu vou fazer npm starts. E aqui está a página de amostra do React. Tudo bem, agora terminamos de instalar o React js. Na próxima palestra, vamos limpar o padrão excluindo arquivos desnecessários que não são necessários nessa causa. E depois disso, criaremos o componente com base no aplicativo que será visualizado. Nos vemos na próxima palestra. 54. 52 Limpe a placa de cozimento: Tudo bem, vamos limpar as placas da caldeira. Portanto, significa simplesmente que queremos excluir arquivos desnecessários que não precisamos para criar o aplicativo. Então, abra rapidamente o SRC do cliente. Aqui. Não precisamos da configuração test.js. Então, vou pressionar a tecla de comando no meu teclado e, em seguida, pressionar o mouse para selecionar, mantendo pressionada a tecla de comando, queremos selecionar várias vezes o resto dos arquivos desnecessários. Então, vou selecionar o relatório, os vetos da web, logotipo do ponto SVG, o ponto de teste ascendente js e, por último, os pontos CSAs. Clique com o botão direito Vamos movê-lo para o lixo rapidamente. E quando isso acontecer, você verá esse erro irritante aqui, certo? Dentro dos grupos de terminais. Selecionamos o aplicativo CSS, mas parece que algo deu errado. Então, eu tenho que excluí-lo novamente porque não é necessário. Sim, o aplicativo dot css desapareceu. E, por favor, não exclua o aplicativo Js. Tudo bem, então o resto desses arquivos aqui são extremamente importantes na construção de nosso aplicativo. Então, abram o aplicativo, judeus. E aqui está reclamando que o logotipo DOT SVG não foi encontrado. Estragar tudo. Aqui está o logotipo dot SVG e, em seguida, aqui está o aplicativo dot css. E, claro, acabamos de excluí-lo. Então, o que vou fazer agora é destacar 1-2 e depois apagá-lo. Role para baixo. Ok, eu acho que está tudo bem por enquanto. A próxima linha do termo é destacar da tag de abertura até a tag de fechamento, porque não precisamos de nenhum desses itens aqui, limpe-o. Comando S para salvar uma parede indeterminada. Diz que o relatório dos sinais vitais também está faltando. E aqui é onde você pode encontrá-lo. O ponto de índice é. Aqui. Primeiro, temos que excluir as entradas nas linhas cinco. Feito isso, foi chamado para cá. Também precisamos excluí-lo. Agora acho que agora nosso aplicativo seria bom. Confira rapidamente o navegador e vamos ver o resultado final. Agora temos uma tela em branco, então esse é exatamente o final esperado. Na próxima palestra, criaremos nossos componentes com base na observação do projeto Yom. Te vejo então. 55. 53 Criar componentes: Antes de prosseguirmos com a criação dos componentes, é extremamente importante observar o site para entender como ele foi visualizado. Vamos crescer rapidamente. Dê uma olhada. Esse design é fantástico, acreditou em mim. Tudo bem, então vamos começar. Agora, ao observar a tela, você perceberá que temos o componente de navegação, banheira aqui, que inclui o Young, seu logotipo aqui, o lote de entrega gratuita. E no centro temos a caixa de pesquisa. No lado direito da tela. Nós também temos as cartas, sim, eu aqui, temos o ícone para alternar a navegação. Quando você clica em. Consegue ver isso? Linda? E também temos o ícone x para dar pistas. Logo abaixo dos principais componentes de navegação, você verá a empresa heroica, onde temos o lindo slide aqui. Você pode ver? E logo abaixo do componente herói, temos os componentes de entrega rápida. Abaixo, também temos os principais componentes de pico. Com este lindo controle deslizante para mostrar, você vai adorar. E abaixo temos o componente do moinho. E aqui está o componente de categorias de tendências. E aqui temos os componentes do boletim informativo. Logo abaixo está o componente alimentar. E agora conseguimos dividir o aplicativo em um segmento menor encapsulado chamado componentes. Então, vamos ao VS Code, criar esses componentes. Vamos arrastar isso para baixo por um momento. Quando o SRC, assim, cria uma nova pasta chamada componentes. Então, dentro desse diretório, vamos criar as flores e forçar, temos o componente Top Nav. Eu vou fazer top nav dot g is. E até o topo. Agora temos o componente herói, ou também podemos chamá-lo de componente do item futuro. Acho que isso soa melhor. Então, eu vou fazer Poucas crianças, zombarias. E depois disso, temos a entrega rápida. Temos o componente de escolhas principais, o componente de refeição, refeição ab.js, categorias de tendências, e eu vou chamá-lo de categorias dot js. Temos o componente de boletim informativo. Por fim, os componentes dos alimentos. Então, esta lista mostra como criar um aplicativo como um profissional. Ao observar o aplicativo, a primeira coisa que você fará é dividir o site em segmentos menores encapsulados chamados componentes. E, claro, agora você já deve saber que esse componente é o componente básico de cada aplicativo React. Então, tendo criado todos os componentes, na próxima palestra, iremos instalar o PTI wind. 56. 54 Instalação de barriga: Vamos prosseguir com a instalação e configuração do Tailwind. Clique no botão Começar. Aqui está o conselho. Então, primeiro vamos fazer npm install dash d, tailwind CSAs. Então, vou clicar aqui para copiar. Volte para o VS Code Terminal e verifique se você está no diretório do cliente. Cole aqui, e isso será usado para inicializar o vento de cauda. Deixa eu te mostrar aqui, não é? Então, quando você clica nesse ícone Copiar, copiaremos a cabine do comando. Então, cetone rapidamente a tecla Enter para instalá-la em fogo ou vento de cauda, subtrai a forma. Vamos dar uma olhada. Por aqui. Vou apertar os componentes. Vamos abrir o arquivo package.json. E quando você rola para baixo, aqui está o Tailwind. Perfeito. Então, aqui você verá o arquivo de configuração do Tailwind dot. Volte para o conselho do ninho para copiá-los aqui e colá-los na matriz de conteúdo. Então, o que eu vou fazer agora é voltar para a área de trabalho aberta. E aqui você encontrará os materiais ou os materiais alimentares. Abra o código **** power. Agora vou copiar esse módulo aqui. Então, vou destacar minha parábola e depois substituí-la. Salvar. Então, a próxima linha é seguir esse conselho aqui, destacar e depois copiar. Ou você pode clicar neste ícone aqui para copiar. Volte, abra o ponto índice dos destaques do CSAs, limpe-o e cole-o aqui. Então, tendo feito isso, conseguimos configurar o Tailwind. Agora eu quero criar um CSS básico para a navegação, ok, então ele será mais parecido com o CSS global para que todas as proteínas na revogação sigam o mesmo padrão. E a maneira como fazemos isso é adicionar base de camada. Então, vamos ter aqui na parte inferior, à direita, estamos na parte inferior. Vou me inscrever. Então, vamos aplicar o estilo storyboard up. Comprei um bloco com traço arredondado x L. Então, na verdade, estamos apenas aplicando o raio da borda ao barco. Ok, então isso vai fazer com que nossas proteínas tenham um pouco de curvas. E agora queremos aplicar um preenchimento a partir do eixo x. Então eu vou fazer p x. Isso realmente implica o preenchimento da esquerda para a direita, ok? Então, qual é o eixo x? E eu vou fazer isso em cinco pixels. Portanto, o PY representa o preenchimento na parte superior e inferior. Então, na parte superior e inferior, teremos um com preenchimento. Então, isso realmente criará espaço na parte superior da parte inferior e na parte inferior. Simples assim. E, claro, se você está se perguntando por que estou tendo todos esses detalhes aqui, é simplesmente porque instalei uma extensão muito inteligente chamada tailwind IntelliSense. Então, deixe-me mostrar como fazer isso agora. Abra a extensão e, em seguida, vamos configurar nosso IntelliSense eólico aqui. É do meu lado? Eu já o tenho instalado. Então, o que você vai fazer do seu lado é apertar o botão de instalação. Ali mesmo. Você verá instalar em vez de desinstalar. Clique no botão de instalação no final para instalar essa poderosa extensão. Na verdade, é tão poderoso quanto a tensão e com certeza será útil. Ok, feche-o. E agora, quando eu passar o mouse sobre a classe, agora , assim, você verá o equivalente em CSS. Então, basicamente, o que fizemos aqui foi aplicar o raio da borda para ser 0,75 rem. E aqui o padrão restante é 1,25 rem. O padrão certo é 1,25 rem. Quando você passa o mouse sobre eles, novamente, a parte superior do padrão é 0,25 rem e a parte inferior do preenchimento é 0,25 rem. Então, isso é simplesmente porque eu instalei uma extensão muito poderosa chamada tailwind IntelliSense. Então, isso realmente lhe dará o equivalente em CSS do Tailwind. E isso ocorre quando você passa o mouse sobre as classes de utilitários. Por exemplo, eu. mouse sobre esta classe aqui. Você pode ver que o que simplesmente fizemos aqui foi implementar a cor da borda e, neste caso, é preto. Isso está desligado agora. E na próxima palestra, começaremos a trabalhar no aluno do Top Nav. 57. 55 Componente de TopNav: Nesta palestra, prosseguiremos com o componente Top Nav. E é aqui que a diversão começa. Então, está certo ao pedir o pacote de componentes. Vamos abrir o canto superior esquerdo do Tata J's. Por enquanto. Vamos derrubar o terminal e depois Comando B para fechar o Explorer. Nosso AFC para gerar o React js são componentes funcionais. Perfeito. Vamos renderizar rapidamente esse componente diretamente no comando P do app jeers para abrir esta pequena caixa de pesquisa na parte superior. E eu vou configurar que G esteja aberto. Então, dentro do div com o nome da classe AB, vamos renderizar a parte superior agora, fechá-la com a tag de fechamento automático e a carga técnica. A parte superior agora é importada automaticamente em uma banheira. Então, se você está se perguntando como fazer isso, ok, vamos começar do zero, limpe-o. E eu vou fazer o Top Nav partir dos componentes da barra de pontos slash top nav. É tão simples quanto isso. Vamos voltar ao componente Top Nav. Tudo bem, então vamos dar a esse div um nome de classe. Em seguida, vamos especificar a largura máxima. Vamos fazer uma margem de 15, 20 da esquerda e da direita. Vamos fazer com que seja automático. E vamos fazer com que ele exiba, flexione, justifique o conteúdo, o espaço entre eles. E então vamos alinhar os itens para centralizar o preenchimento. Vamos fazer com que seja o mais simples, certo. Eu sei que alguém está curioso sobre todos esses termos porque alguns de vocês, isso parecerá meio-dia, mas incautos. Depois da minha incrível explicação, você definitivamente a entenderia bem o suficiente. Então, o que está acontecendo aqui é que recebemos essa div, uma largura máxima de 15, 20. E faça anotações, é assim que se especifica um valor personalizado. Então, eu posso limpar isso assim, e então você pode especificar o valor real da classe. Mas se você quiser especificar um valor personalizado, você abrirá o bloco assim e depois fará 15, 20. Então, quando eu passar o mouse sobre a classe agora, ela mostrará o equivalente real do CSS que está funcionando nos bastidores. Deixe-me mostrar, espero que na largura máxima, então aqui temos a largura máxima de 15, 20. Quando eu passo o mouse sobre o MX auto. Você pode ver aqui que temos a margem esquerda para ser automática e a margem direita para ser automática. Portanto, o MX simplesmente implica margem no eixo x, que é uma atriz diz margem da esquerda para a direita. E aqui temos o display flex. E eu sei que você não vai se perguntar se não mencionamos a tela aqui. Mas quando você passa o mouse sobre o fluxo da classe, você verá a tela flexível. E aqui justifique o espaço de conteúdo entre. Deixa eu te mostrar. Você pode ver que justifique o espaço de conteúdo entre e alinhe os itens ao centro e o preenchimento é uma rédea. Com a simplicidade dessa explicação, sei que você a entenderá melhor o suficiente agora. Então, vamos começar. O nervo superior é dividido em três lugares. Temos o lado esquerdo, o centro e o lado direito. Então, o lado esquerdo, deixe-me mostrar rapidamente. Aqui. No lado esquerdo, temos o hambúrguer, o jovem, seu logotipo e a entrega gratuita. E no centro temos a caixa de pesquisa. No canto superior direito, temos as cartas. Então, vamos trabalhar no lado esquerdo. Vamos ter um div aqui com o nome da classe e escrever usando o nome da classe, vamos ter uma tela flexível, alinhar itens, centralizar. Rapazes. Algo que eu realmente quero chamar sua atenção é que o vento de cauda misturou Eileen, muito fácil. Honestamente falando, ao final deste curso, você sempre desejará usar o Tailwind, acredite em mim. Agora vamos ter outro div com o nome da classe de ponteiro de conhecimento causal. Então, nesse div, vamos renderizar o ícone. E então, para isso, temos que instalar o ícone do React. E agora eu vou fazer. O Npm instala os ícones do React Dash. Exatamente assim. Cetona, a tecla Enter. Tudo bem, então os ícones do React instalados, subtraem, caem. Quero dizer, claro que você abre o arquivo package.json e aqui está. Feche isso. Então , dentro desta div, vamos renderizar um ícone chamado menu delineado. Mas antes de fazer isso, primeiro precisamos importá-lo dos ícones do React. Então, eu vou fazer importações. Eu delineei o menu na barra de ícones do React. Temos dois sufixos com IA. Porque aqui nós o prefixamos com IA e também temos que revesti-lo aqui com um corante. Portanto, todos os ícones relacionados à IA serão importados aqui. Legal. Então, acho que devemos fazer isso agora para que não tenhamos que perder tempo fazendo isso no futuro. Aqui eu vou fazer. Eu delineei pistas de contorno mais calmas. O ícone de fechamento do menu. Deixe-me te mostrar rapidamente esse cara aqui. Então esse é o cara que acabamos de importar, que é o menu offline de IA. E esse é o esboço, esse cara, eu sei que você entende todas essas abas. E por último, tag de campo. Então, todos esses topos são prefixados com AI. E é por isso que o revelamos com um belo. Agora vamos ver o menu que eu descrevi. Vamos dar um tamanho. Eu digo 25. Seguro. A partir daqui, faremos o npm starts para iniciar o projeto e garantir que você renderize esse componente diretamente no aplicativo. Opa, desculpe pessoal, há um erro no comando. Então eu acho que isso vai funcionar desta vez. No canto superior esquerdo da tela, você verá o menu de tópicos. E esse ícone aqui será usado para alternar o desenho lateral. Logo após a divisão de encerramento. Vamos ter uma etiqueta principal e eu vou chamar esses direitos de que estamos no Hipódromo. Vamos receber um spam. Spam. Eu vou comer. Então, vamos dar a ele um estilo className, test, dash para o Excel. Então, estamos basicamente especificando o estilo do formulário. E quando você passa o mouse sobre a classe, ela mostra o equivalente em CSS que está sendo executado nos bastidores. E, por favor, ao aplicar estilos com o Tailwind, você não precisa sair da cotação. Então, tudo o que você vai fazer estará dentro dos códigos. Parece bom, certo? Linda. Em um dispositivo menor como m, queremos que o teste apareça como Excel. Então, basicamente, estamos implementando o ponto de interrupção aqui. Então, em uma tela maior, o teste aparecerá para o Excel, tão simples quanto isso. Então, aqui, o espaçamento à esquerda e à direita serão dois. Então, quando você economizar, volte para o Brasil. Deixa eu te mostrar. Agora. Quando eu aperto, você vê que o teste fica menor. Então, quando você aumenta em um determinado ponto, esse teste se torna cada vez maior. Então, isso vai ser grande, médio e esse é um dispositivo menor. Observe novamente mais uma vez. Então, em um dispositivo menor, o teste é assim. No tamanho médio, o tamanho da fonte vai aumentar. Você pode ver que em um dispositivo maior, ele vai aumentar. De novo. Dê uma olhada. Gente do lucro. Então, eu acho que o tailwind é extremamente incrível e, na verdade , facilita o trabalho. Bom. Então, logo após o fechamento da etiqueta principal, teremos um div. Vamos dar a ele um nome de classe. E, certo, dentro da classe, vamos estilizá-la chamando as classes utilitárias em tailwind. Agora é pelo menos assim que o Tailwind funciona. Então, aqui vamos aquecê-lo em um dispositivo menor. Ok, então, em uma tela grande, tela normal flexiona, alinhe os itens ao centro. A cor de fundo será cinza. Então, vamos especificar um número para que ele seja realmente adicionado. Devo ver a espessura da cor ou algo parecido? Então, queremos que seja arredondado. Corra que vai ficar cheia. Então, o acolchoamento será um. Os testes. Vamos fazer com que seja de 14 pixels. E, por favor, aqui também temos que adicionar pixels como este. Ei, passe o mouse sobre ele e confira. Agora temos a largura máxima de 15, 20 pixels, feche o diferencial. Então, agora, deixe-me explicar o que está acontecendo. Então, aqui vamos ter uma etiqueta P, e eu vou fazer três. Outra tag P aqui, duplicada. E vamos ter uma entrega assim. Então, em um dispositivo menor, não queremos ver que esse cara está bem, mas em uma tela maior, queremos vê-los aqui em cima. Ok, deixe-me mostrar rapidamente quando você salva no navegador. Aqui está? Então, quando eu encolho a tela, vamos ver, você pode ver que em um dispositivo menor, ela desaparece. Mas quando você aumenta em uma tela maior, devemos ser capazes de ver que eles estavam realmente fazendo com que tudo parecesse responsivo. E, claro, eu agradeceria profundamente se você também pudesse avaliar e revisar essas ligações. Compartilhe esse custo para seus amigos porque será útil. Então, vamos dialisar a tag p gratuitamente, vou fazer className. A cor de fundo é G traço, laranja, traço 700 porque, mulheres, a espessura da cor laranja é realmente muito boa. A cor do teste será branca. Testa o traço branco. O plano de fundo vai ser arredondado, tolo. O preenchimento está à prova. Queríamos embarcar. E se preocupe, vou explicar todas essas coisas em um GPA. E aqui, novamente, vamos dar a ela um nome de classe. O estofamento será feito para esse teste, será curvado. Salvar. E vamos ver o que temos no navegador. Dê uma olhada. Consegue ver isso? Agora temos o logotipo e a entrega gratuita em perfeitas condições. Eu amei esses. Agora deixe-me explicar o que acontece sob o capô. Aqui temos um className e, em um dispositivo menor, vamos esconder todas essas tags p. Mas em uma tela maior, queremos que ela exiba itens de alinhamento flexível no centro. O plano de fundo dos formulários será ótimo. Portanto, o pé arredondado fará com que o fogão seja uma espécie de secular. Deixa eu te mostrar essas coisas aqui. E quando você passa o mouse sobre ele, o raio da borda é de 999 pixels, o que na verdade pode ser de 100 por cento. E o preenchimento é 0,2. O teste Rem é que 14 pixels estão corretos. Agora terminamos com o lado esquerdo. Vamos continuar com a barra de pesquisa no centro. Logo após a divisão de encerramento. Vamos ter outro div com o nome da classe. Vamos dar a ele uma cor de fundo de cinza tracejado 200. Então, isso realmente indicaria o valor do cinza, ok, quão acinzentado ele parecerá. Coisas assim. Comida arredondada. Então, agora você deve entender todas essas coisas. Exiba itens flexíveis, alinhe, centralize e padronize a partir do eixo x, o que implica esquerda e direita. Vamos fazer com que sejam dois. E depois a largura, teremos nossa própria largura personalizada. Então, sempre que você faz algo assim, significa que você deseja implementar seu próprio tipo de coisa personalizada, por exemplo, o preenchimento esquerdo e direito, posso decidir fazer assim de uma forma personalizada que eu possa fazer para ter fotos. Quando você passa o mouse sobre ele assim, você vê, mas à esquerda. Então, se os pixels forem preenchidos corretamente para ter pixels , eu decido não fazer isso. Vou mantê-lo assim. Então, sempre que quiser ter seu próprio estilo personalizado, você pode usar o colchete. Agora, o preenchimento esquerdo é um botão de 0,5 rem, o direito é 0,5 rem. Portanto, a largura é de 200 pixels. Em um dispositivo menor, a largura será de 100 pixels. Em um dispositivo grande, a largura será de 500 pixels. Opa, dê uma olhada. Bom. Vamos fechar a div. Aqui mesmo. Vamos usar o esboço, lembre-se de que o importamos de Riade. Ícones. Basta destacar e copiar. E aqui vou renderizá-la mais perto da etiqueta de fechamento automático, dando a ela um tamanho de 25. Salve, confira o navegador. Agora, você pode ver, deixe-me te mostrar. Aqui, não é? Mas o problema agora é que ele foi alinhado ao canto superior direito da tela. Então, encontraremos uma maneira de alinhá-lo ao centro. Novamente, diretamente dentro da div. Teremos uma tag de entrada com o nome da classe e, em seguida, a cor de fundo será. Transparente, traço P T2. Claro que você sabe o que é. A largura vai ser uma bobagem. Na verdade, isso especificará 100 por cento da largura. Vamos tirá-lo. Dê uma olhada. Você pode ver que, ao passar o mouse sobre a classe, você verá o CSS real que está sendo executado nos bastidores. E diz que a largura é 100%. E, por favor, se toda essa barra não está funcionando para você, é simplesmente porque você não instalou o Tailwind IntelliSense. Portanto, certifique-se de ir até as extensões. Em seguida, instale o Tailwind Intelligence. Tem isso. Tudo bem, tudo bem. E, a propósito, eu te ensinei como fazer isso na palestra anterior. Vamos continuar. Então, o esboço do foco, deixe-me mostrar algo antes de fazermos isso. Salvar. Ok, vamos fechá-lo assim no navegador. Aqui está? Você pode ver que quando eu coloco meu mouse diretamente dentro da tag de entrada, você verá esse contorno. Então, isso é o que não queremos. Quando eu clico para sair, você vê que ele sumiu. E então, quando eu clicar, você verá o esboço. Vamos tirá-lo rapidamente. Então, eu vou fazer um esboço de foco. Isso vai ser conhecido. Salve Jakarta, o navegador. Quando você clica nele, você vê que ele sumiu. Perfeito. Ok, acho que devemos fechá-lo com a etiqueta de fechamento automático. Isso faz com que o código pareça um pouco mais limpo. E, ei, vamos fazer com que o tipo de entrada seja um espaço reservado para teste rápido. Essas refeições, quando você salva no navegador, você pode ver as refeições definidas? E esse é o ícone que alugamos por lá, que é o ícone de pesquisa de esboços. Temos que implementar os cortes. Então, logo após o encerramento, vamos passear de barco. Dê o nome do cluster a ser estilizado G dash, orange, dash 700. Então, isso realmente ajudará para os ricos, para os quais a cor parecerá mais espessa ou algo parecido. O teste será branco. Queremos que ele fique escondido diretamente, em um dispositivo menor e depois em um dispositivo médio, como o iPad. Ok? Vamos alinhar os itens ao centro. O acolchoamento superior e inferior. Também. Arredondado. Vamos fazer com que o pé passe direto para dentro do corpo. E eu vou fazer cartões quando você salvar e conferir o navegador. E agora conseguimos empurrar a caixa de pesquisa um pouco para o centro. E então o corte está sendo alinhado ao canto superior direito da tela. O ninho e o limão servem para adicionar o ícone de corte diretamente no corpo. Como fazemos isso agora? Ok, eu vou fazer aqui, vamos usar o combustível do cartão de combustível. Vá para o topo. Também temos que inserir esse campo de entrada, campo de corte. E, por favor, não me pergunte de onde vêm todos esses nomes. Então, vamos importá-lo dos ícones do traço do React. Em seguida, vamos revesti-lo com BAs. Então, vamos importar rapidamente todos os ícones que estão sob BAs. E acho que é mais um. Ei, eu vou fazer besteira. Tão simples quanto isso. Certo? Estamos no fundo. Vamos renderizar combustível BS, cortar o combustível mais de perto com a etiqueta de fechamento automático. E então vamos especificar o tamanho. Exatamente assim. Salve no navegador. Neles, você pode ver que tudo aparece conforme o esperado. Então, deixe-me te mostrar. Agora, quando minimizo a tela, deixe-me pressioná-la para aquecer um ponto de interrupção específico. Veja, você pode ver em um dispositivo menor, não queremos que ele apareça. Agora, o gato parece bom. Na verdade, estamos atingindo nossos alvos, e tudo bem. Portanto, a próxima linha do termo é implementar o sorteio lateral. Então, quando eu clico nesse botão, o desenho deslizará para fora. E quando eu clico no ícone, eles desenham também. Vamos fechar. Vamos fazer isso na próxima palestra. 58. 56 Nav lateral: Então, a intenção aqui é clicar no menu do hambúrguer para abrir a navegação lateral. Mas agora, quando você clica nele, nada acontece. Você pode ver mais alto, certo? Então, vamos adicionar rapidamente o código do VS para implementar essa funcionalidade. Para prosseguir, primeiro, temos que declarar a variável de estado necessária a ser usada. Então, vou fazer um lado consistente o suficiente, mais calmo agora, adquirir o estado dos EUA. E isso vai ser uma operação booleana. Portanto, o estado inicial será falso. Bom, depois de fazer isso, vamos implementar rapidamente esse ícone aqui. Então, onde a temos? Aqui está, que é o menu delineado da IA. E então vamos implementá-lo neste div wrapper div para o menu de esboço. Vamos especificar onclick. Ao clicar neste ícone. Queremos abrir o lado agora, ok, então basicamente o que ele faz é mudar o estado de falso para verdadeiro ou falso para verdadeiro e falso para verdadeiro. Deixe-me te mostrar rapidamente. Agora, vamos invocar a função de configuração para atualizar o estado inicial. E será configurado como navegação lateral. Não vou citar o suficiente. Ok, então clique no ícone aqui. Ele mudará o estado inicial para forçar quando você clicar nele novamente, mudará para “ ininterrupto”. Deixe-me mostrar o que quero dizer com esse lado do console.log. Agora, quando você diz ventrículo no navegador , certifique-se de que o aplicativo já esteja em execução. Aqui mesmo. Opa, diz que o lado agora não está definido. É aqui que está o problema. Há um erro tipográfico aqui. Isso deveria ser constante, e eu sei que alguns de vocês podem detectar esse erro rapidamente, corrigi-lo ao salvá-lo no navegador ou no Comando I para abrir o console. Agora, quando eu clico no menu, ele vai mudar o estado inicial, o verdadeiro. Agora, o estado inicial se torna verdadeiro quando eu clico no menu novamente, isso mudará a força. Então, basicamente, estamos mudando de falso para verdadeiro ou falso para verdadeiro. Bom. Vamos continuar. Ok, então o melhor e o melhor é criar uma sobreposição de plano de fundo, porque queremos que tudo apareça de forma profissional. Então, logo depois que ele comprou, teremos outro div className. Então vou dar uma cor de fundo preta e depois dividir o preto por 60 e me preocupar, você definitivamente verá o resultado. A posição será fixa, a largura, vamos fazer com que seja 100%, que está cheia. A tela principal. O índice z porque queremos que ele apareça na parte superior. Ok, ele será salvo como uma sobreposição. Portanto, temos que especificar o índice Z. A caneta de cima é zero e da esquerda é a seta. Feche o DV ao salvar o navegador. Agora, aqui está o resultado. Não se preocupe, nós vamos controlá-lo. Portanto, a forma como controlaremos isso é colocando uma condição. Então, quando o suficiente for verdade, queremos mostrar a sobreposição. Agora. Não queremos mostrar nada, o que simplesmente implica que, quando clicamos no menu de hambúrguer dessa forma, queremos mostrar a sobreposição. Então, quando o menu de hambúrguer for clicado, mostraremos o excesso de outra coisa. Não vamos exibi-lo. Deixe-me te mostrar rapidamente. Agora, escreva JavaScript. Em Jesus, temos que abrir o colchete encaracolado. Então eu vou fazer se a coragem repentina for verdadeira. Queremos mostrar neste DVD aqui, quais são os destaques da sobreposição. Corte-o e abra os parênteses porque estamos esperando um layout de interface de usuário, colado e outro como este. Não vamos mostrar nada. Salve e vamos ver se está funcionando. Recarregar. Você pode ver? Então, quando eu clico, parece exatamente como colocar uma condição na preocupação excessiva de que tudo esteja prestes a tomar forma em relação ao topo agora. Tudo bem, então a próxima fila é criar a própria navegação lateral. Então, aqui, teremos um div com o nome da classe e uma escrita em que o nome do cluster terá que estilizá-lo. Então, aqui, a receita pairava sobre a posição fixa de cima, zero, da esquerda, zero. A largura será, vamos especificar uma largura personalizada, 300 pixels. Ecrã. Então, clicar na tela significa simplesmente que a altura é 100. Poucas alturas. Dê uma olhada. Bg vai ser branco, que é o fundo. O índice z é dez. Então, queremos que ele se anime para dentro e também para fora. Então, para isso, especifique a duração. E vamos fazer com que seja 300. Podemos chegar a 200 quando você salva no navegador. Aqui está. Você pode ver que já está tomando forma, mas agora parece que está fixado na tela. Não é móvel. Você vê? Ok, vamos seguir em frente. Deixe-me te mostrar. Então, hum, vamos fazer algo muito bom. Vamos condicionar o sorteio lateral. Então, aqui, vamos ter um colchete de abertura e fechamento. Então, se a navegação lateral for verdadeira, queremos mostrar esse bloco aqui, destacá-lo e recortá-lo. Venha aqui. Ok? Se a navegação lateral for verdadeira, queremos mostrar esse tau. Ok? Também destaque e copie, mas agora vamos mudar o estilo. Rosa. Vamos fazer assim. Formato, o código. Bom. Agora, deixe-me explicar cuidadosamente o que acontece aqui. Então, se a navegação lateral for verdadeira, deixe-me mostrar o estado inicial aqui. Se for verdade, queremos que apareça a partir dos zero pixels à esquerda. E então vamos especificar a largura de 300 pixels. Caso contrário, se for falso, queremos que vá em uma direção negativa. Deixe-me te mostrar. Então, aqui vamos especificar o traço esquerdo. Teremos um valor personalizado. E eu vou fazer com que seja 100 por cento, vou deslocar a barra lateral em uma direção negativa em direção ao eixo x, escondendo-a da tela. Seguro no navegador. Ok, deixe-me ver uma coisa aqui. Ok, vamos mudar isso para verdadeiro. Nada acontece. Tudo está correto aqui. Certo pessoal, vamos mudar os 200, que é a duração. Vamos mudar para 300. Ok, pessoal, isso vai funcionar. Quando você o altera para falso. Salvar. Você pode ver que ele desaparece? Quando você muda para verdadeiro? Parece. Você pode ver da esquerda quando o estado inicial da navegação lateral estiver definido como verdadeiro, a gaveta de navegação aparecerá da esquerda com zero pixels e, em seguida, a largura será de 200 pixels. Mas se o estado inicial do lado agora for definido como falso, da esquerda, ele vai ser menos 100%. Ok? E, assim, escondendo esse lado, desenhe o mais simples. Então, agora vamos começar a implementar os ícones do menu, certo, usando a lateral agora. Então, vamos fazer isso na próxima palestra. 59. 57: Bem-vindos de volta a todos. Então, nesta palestra, vamos implementar os menus diretamente no sorteio. Ok, então a primeira coisa vamos fazer é implementar um ícone que será usado para fechar o desenho lateral. Vamos fazer isso rapidamente. Então, certo, estamos no DV. Deixa eu te mostrar isso, o DV aqui, assim, aqui dentro. Vamos renderizar o ícone de fechamento do contorno. Deixe-me ver. Aqui está. Nós o importamos na palestra anterior. Copiar. Desça. Vamos virar o diodo aqui. Aproxime-se com a etiqueta de fechamento automático. O tamanho, claro, será 25. Salve no navegador. Aqui está? Mas não o queremos no canto superior esquerdo. Portanto, as mulheres precisam estar alinhadas no canto superior direito aqui, bem dentro da gaveta de navegação. Por enquanto, não acho que o estilo seria algo difícil, então vamos torná-lo clicável. Por enquanto. Aqui, vou especificar o ícone onclick onclick. Também queremos mudar o estado inicial de falso para verdadeiro, assim como fizemos na aula anterior. Aqui, deixe-me mostrar exatamente o que fizemos aqui. Então, acho que só preciso copiar o onclick assim. Cole aqui. Vamos formatar o código. Linda. Salve no navegador. Clique em Você pode ver e, em seguida, clique aqui para abrir. Esses dois se fecham. Tudo bem, então vamos estilizar rapidamente o ícone de fechamento e alinhá-lo corretamente. Vamos fazer com que ele se posicione como absoluto. Deixa eu te mostrar. Você vê. Bom. Então, da direita, vamos fazer quatro. Do topo. Vamos fazer quatro. E então o custo será um indicador. Salvar. E agora aqui está. Fechar, abrir, fechar, abrir. E agora espero que você entenda bem como alcançamos esses resultados. Se você não entender pela primeira vez, aconselho que você leia as palestras novamente para ter uma ideia clara do que estamos falando. Vamos ver as notícias responsivas para dispositivos móveis. Você verá no iPhone. Vamos usar isso no iPhone 12. Dê uma olhada. Tudo legal. Então, vamos implementar os menus aqui, e isso é extremamente fácil. É tão simples quanto o ABC. Então, depois do ícone, teremos aqui, uma cobertura para marcar. O preenchimento serve para ler a tag H2. Vamos fazer isso exatamente como fizemos na palestra anterior. E então vamos ter um intervalo. Um espaço. Eu vou comer. Vamos dialisar o intervalo. Laranja 700. E aqui está. Uma coisa que eu adoro fazer é a fonte. Você pode ver agora que a etiqueta de extensão fica extremamente curvada. Tudo bem. Então, logo após a tag H2, teremos uma protuberância diretamente dentro da navegação. Teremos uma lista não ordenada, UL. Vamos dar um estilo a isso. Vamos fazer com que ele exiba flex e a coluna de direção flexível. O preenchimento é para o teste. Cinza 900. Legal. Não seria a UL, nós vamos ter as etiquetas LI, que é o mínimo. Então, aqui, dê a ela um nome de classe, estilize-a dentro da classe, importando realmente as classes utilitárias que estão presentes ali mesmo e o Tailwind. E eu sou uma das turmas do test dash Excel, PUI, que é a parte superior e inferior. E então teremos uma tela flexível. Então, tão simples quanto isso. Então, dentro da tag LI, vamos renderizar o BS Pearson, que é esse ícone aqui. O tamanho 25, dê um nome de classe para estilizá-lo. Então, a margem, certo? Quem, apenas MR., existirá para o qual o sentido de uma atriz será uma RAM. Deixe-me mostrar como gerar uma RAM. E depois o teste. Brancos. A cor de fundo é preta. Arredondado, idiota. Na verdade, isso ajudará a reduzir e salvar a fronteira . E vamos ver. Bom. Consegue ver isso? Agora temos esse cara aqui e o que você deve fazer são minhas contas. Então, diretamente na tag LI, quando você salva, ela aparece assim. Incrível. Tudo está funcionando conforme o esperado. Você vê mais alto, certo? Então, o que vou fazer agora é destacar a tag LI desta forma. E depois duplique quatro vezes, 1234. Ou você pode copiar e colar quatro vezes. Então, o que devemos fazer agora é mudar os ícones e o rótulo é bem simples para fazer isso. Aqui mesmo. Este ícone será CB truck return. E, claro, devemos importá-los do ícone de Riade. Acho que devemos fazer isso do jeito que fizemos antes. Vamos importar todos os ícones necessários para que não precisemos voltar aqui para fazer isso de novo. Aqui. Vamos importar, vamos importar FA, amigos do usuário, FE, Google Wallet. Você pode decidir usar um ícone diferente. Só sua escolha. Ok. Acho que temos que duplicar isso porque não preciso mais digitar do zero. Então pessoal, percebam que prefixamos todos os ícones aqui com FE. Então, vamos fixar sua largura. A mesma coisa aqui. Nós o prefixamos com TB, então temos que corrigi-lo com TB. Essa é a única maneira de funcionar. Então me perguntou como funciona porque eu não sei. Então aqui vamos importar ajuda vazia, mais calma. Md, febre esboçada, certo? Opa, o esboço deve estar aqui, letra maiúscula 0. Vá até o fogão e verifique se toda a entrada está correta. Ok. Agora vamos começar a usá-lo. Aqui temos o retorno do caminhão TB. E isso vai ser uma entrega. Muitos economizam e finalizam a compra. O sorteio lateral. Você pode ver aqui que temos entrega. E quando você aumentar o zoom, você vai ver as bolas aqui. Tudo bem, então temos que mudar. O resto desse cara é que o nist é um favorito vazio e delineado. Aqui. F8, Google Wallets. Opa, isso deveria ser uma carteira. Então, por fim, vamos ter ajuda. Você pode adicionar mais ícones e mais coisas que quiser. Ok, eu não acho que estamos usando a etiqueta de campo de IA, limpe-a. As perguntas frequentes, nossos amigos, não fizemos uso delas. Limpe-o. Você pode decidir usá-lo se quiser. Opa. O favorito do contorno vazio não foi encontrado nas diagonais de Riade. Eu era meu favorito. Esse cara aqui. Opa, pessoal, temos dois sufixos com MD. Eu disse que isso não funcionaria se você também não o revelar. Se você não prefixar. Não sei por que eles construíram coisas assim. Então, altos. Certo, pessoal. Ok. Tudo bem. Ok. Desculpe. Acho que isso vai funcionar dessa vez. Sim, isso vai andar. Favoritos está trazendo problemas. Eu não sei por quê. De qualquer forma, tailwind é meu favorito. Agora, tudo é qual jogo? E está funcionando perfeitamente, conforme o esperado. Tudo parece bom. Você vê que um dispositivo móvel aparece bem. Da minha parte. Dê uma olhada. Isso é clássico. Isso é clássico. Tudo bem pessoal, terminamos com a parte superior agora. Portanto, o próximo termo é implementar o futuro terceiro componente. Vamos fazer isso na próxima palestra. Te vejo então. 60. Toque final de SiseNav: Tudo bem, então antes de prosseguirmos com o componente futuro, precisamos fazer as correções necessárias. Ao abrir o navegador, você perceberá que, por padrão, o desenho lateral é aberto. Você pode ver? Então, quando o usuário visita seu site, é exatamente assim que ele será adicionado aqui. E isso não é nada bom. Agora você pode ver que, quando eu clico aqui, ele fecha. Você pode ver, por padrão , que ela aparece assim. Você sabe por quê? É simplesmente porque definimos o estado inicial como verdadeiro. Volte para o código VS, diretamente nas linhas 14, onde temos os estados. Vamos defini-lo como falso. Portanto, o estado inicial é falso. Ao voltar ao navegador, você pode ver como ele aparece conforme o esperado e, em seguida, o usuário precisa clicar no ícone do hambúrguer para abrir a gaveta de navegação. Uma coisa que eu também adoraria fazer é implementar os direitos ao clicar não seria exagerado. Então, quando eu clico na sobreposição, eu deveria ser capaz de fechar a gaveta de navegação. Deixe-me te mostrar uma cópia. E aqui está a sobreposição. O que vou fazer agora. Vamos ver se isso vai funcionar. Algo parecido com isso. Seguro. Aqui. Quando você clica no hambúrguer, ele se abre na lateral. Desenhe. Quando você clica na sobreposição, a gaveta de navegação do site fecha. Tudo bem, então não dependemos mais apenas do ícone de fechar. Você também pode clicar no ícone de adição. Você está clicando na sobreposição. Linda. A próxima correção será o logotipo aqui. Então, queremos que o Aedes apareça corporalmente. Então, o que vou fazer agora, rolar até o topo, é dar o nome da aula de espanhol e, em seguida, o painel da fonte. E isso fará com que pareça mais seguro corporalmente no navegador. Você pode ver o quão lindo é isso? Dê uma olhada. Incrível. Eu adoro isso. 61. 59 Componente em destaque: Bem-vindos de volta a todos. Nesta palestra, prosseguiremos com o componente futuro. Vá até o VS Code, abra o Explorer e, em seguida, escreva em que pacote de componentes você verá o futuro. Jazz. Clique para abrir um FCE para gerar os componentes funcionais da seta do React. Vamos renderizar rapidamente esse componente, certo? Estamos no aplicativo Js. E, por favor, certifique-se de importá-lo na parte superior. Agora, a primeira coisa que vamos fazer é declarar uma matriz de objetos. E logo, dentro do objeto, teremos a URL das imagens que queremos deslizar. Aqui. Vou fazer controles deslizantes constantes, equa, configurá-los como uma matriz vazia e, diretamente dentro da matriz, teremos o objeto. Então não se preocupe, eu já tenho o objeto preparado. O que vamos fazer é copiar e colar. É tão simples quanto isso. Então, volte para os materiais alimentares. Poderia ajudá-la e depois copiar os objetos do herói. Venha aqui, destaque novamente das linhas cinco a sete. Limpe-o, pois copiamos os objetos prontos. Então, só precisamos colar. Ok, então, todas essas imagens, eu as implantei no Cloudinary. Ok, eu tenho uma conta Cloudinary onde posso fazer upload de imagens. Bom. Feito isso, o próximo passo é declarar a variável de estado necessária a ser usada. Então, no topo, queremos fazer uso do gancho americano. Então, logo abaixo da matriz, vamos gerar trechos de ganchos feitos nos EUA como este. Então, aqui teremos conjuntos de índices atuais. Deixe que essas duas capitais vejam. O estado inicial será zero. Tudo bem? Vamos implementar a interface do usuário. Destaca o futuro. Limpe-o. Vamos dar a ela um nome de classe e escrevê-la na classe, temos que usar as classes utilitárias para estilizar o div. Dê a ele uma largura máxima de 15.20 pixels e a altura de 500 pixels. A largura. Vamos fazer isso por quatro anos. Estofamento superior e inferior. Será para a esquerda e para a direita, quatro. E vamos fazer com que ele posicione os direitos relativos dentro da div. Vamos ter outro div, dar a ele um nome de classe e, em seguida, especificaremos que a largura novamente será a largura total. Então, eu só tenho que copiar daqui. A altura é a altura total. Isso fará com que a altura seja 100% e a largura 100%. Você já deveria saber disso. Gerencie dívidas para se destacar, BAG. A duração é 500. A posição do plano de fundo é central. O tamanho do fundo é cava. Portanto, isso terá que redimensionar as imagens para caber no contêiner. Então essa será a duração da transição, tão simples quanto isso. Então, deixe-me te mostrar rapidamente. Agora. Eu posso escolher aplicar estilos a ele. Imagem de fundo. Agora temos que usar os controles deslizantes de URL literais do modelo dentro da matriz. URL do ponto de índice atual. Então, vamos ver o que acontece no navegador. O navegador. Você pode ver agora que esta é a primeira imagem. Então, deixe-me explicar o que acontece sob o capô. Aqui, temos uma série de objetos. Para acessar o elemento em uma matriz, precisamos usar o índice da matriz. Então, aqui dizemos que o estado inicial do índice é zero, o que significa que ele retornará essa imagem aqui. Então, quando você dá uma olhada no navegador, está aqui? Essa é a primeira imagem correta, dentro da matriz. Então, quando eu indexo um, ele recuperará a segunda imagem na matriz. Você pode ver o índice dois que recuperará os elementos de texto ou a imagem na matriz. Perfeito. Certo? Agora, exibimos nossas imagens com sucesso, mas agora elas não estão deslizando, mas se preocupe, faríamos isso em um GeV. Portanto, antes de prosseguirmos com os slides, também precisamos implementar as setas para a esquerda e para a direita. Vamos rolar rapidamente até o topo, onde importaremos os ícones dos ícones reacts, BS como diferentes compactos. Esquerda. Nest é o direito de combate da Chevron da cerveja. Então, só precisamos destacá-los e copiá-los aqui. E então vamos mudar isso para escrever. Simples assim. Role para baixo. Logo após esse div. Vamos ter outro div. Certo? Dentro do div, vamos renderizar com vários compostos restantes. Vamos aplicar estilo para comer a posição absoluta. Então, isso realmente colocará o ícone em cima da imagem. O topo é 50 por cento. Então, vamos ter uma tradução negativa x aqui. Em seguida, traduza y. Vamos especificar um valor personalizado. 50%, certo, são cinco. Testes para o Excel. Então isso indica que o tamanho da fonte n, a altura da linha, arredondada, está cheia. Estofamento. No fundo haverá um traço laranja 700. O teste é branco. Vamos definir o cursor como um ponteiro. simples quanto isso. Salve no navegador. Aqui está, esse cara aqui deveria vir para a esquerda. Vamos ver o que está errado. O topo é de 50 por cento. Traduza x menos zero, traduza Y. Isso vai ser -50 por cento. Aqui. Isso deve começar da esquerda e o modo da direita. Acho que isso resolverá o problema. Dê uma olhada. Você pode ver? Perfeito. Então, o próximo na fila é duplicar esse ícone aqui e alinhá-lo para derivar ao quadrado. É fácil fazer isso. A partir das linhas 2042, linhas 26, destaque e duplique. Então, aqui, vamos mudar isso para escrever de forma segura. Agora, você vê? Bom. Então, vamos mudar o ícone para indicar o lado direito. Aqui vão haver vários compactos. Bom. Tudo bem, então pessoal, tudo está tomando forma e não se esqueçam de revisar, enriquecer esse curso é extremamente importante porque eu tenho que saber exatamente o que vocês estão sentindo por lá. Ensinar bem. Linda. Ok? Então, basicamente, o que eu quero fazer agora é esconder as flechas. E então queremos que o erro fique visível quando passamos o mouse sobre o controle deslizante. Para isso, eu vou fazer algo assim. Aqui. Vamos agrupar a div principal assim. Então venha aqui e eu vou fazer aquecimento. Então isso vai esconder a flecha à esquerda. Agora queremos que a seta esquerda apareça em Hoover. O que eu vou fazer é agrupar, Hoover, ter um bloco de exibição regular. Salvar. Você pode ver que quando eu passo o mouse sobre ele, ele aparece. Agora, dê uma olhada. Você pode ver, vamos aplicá-lo rapidamente na seta direita. Só tenho que copiar tudo daqui. Em seguida, cole. Salve no navegador. Você vê que quando eu passo o mouse sobre ele, ele mostra as setas para a esquerda e para a direita, para a direita. Agora, quando você clica nas setas, nada acontece. Então, vamos definir rapidamente a função para implementar a seta. Role até o topo. Desculpe, vamos fazer com que o estado inicial seja zero para que apareça bem. Então, aqui vamos definir uma função para lidar com o clique da seta. Const. controle deslizante anterior, um núcleo, configure-o para nossa função. E aqui teremos uma variável chamada primeiro slide. Defina-o para que o índice atual seja igual a zero. Outro. E isso será chamado de novo índice. Igual é o primeiro slide. Então, se o primeiro slide for verdadeiro, vamos fazer controles deslizantes. Ponto deslizante, comprimento do ponto menos um, setas. O índice atual será menos um. Portanto, o próximo na fila é atualizar o estado. Então, vamos definir o índice atual para o novo índice, tão simples quanto implementar os direitos de clique nos compactos da Chevron à esquerda, que é a seta à esquerda. E clique em. Temos que chamar a função de controle deslizante anterior. Quando você salva, finalize a compra no navegador. Vamos tentar clicando no controle deslizante esquerdo. Gente, vocês conseguem ver? Funciona muito bem. Agora, conseguimos criar nosso próprio controle deslizante do zero. Que lindo nos dias de hoje. Certo? Então, agora vamos implementá-lo para a seta direita. Vamos ter outra função, controle deslizante de ninho constante, configurando-a para nossa função. E então teremos uma variável chamada índice atual do primeiro slide. Vamos fazer controles deslizantes com o comprimento dos pontos. Ok? Então, na verdade, acessamos todo o slide com nossos direitos dentro da matriz para obter o valor total do controle deslizante. Ou seja, esse é o comprimento do ponto deslizante. E então aqui vamos fazer menos um. Novo índice. Igual é o último slide. Então, se o último slide for verdadeiro, vamos defini-lo como zero agora. Então, vamos configurá-lo para o índice atual mais um, simples assim. Agora temos que atualizar o estado inicial fazendo conjuntos do índice atual para o novo índice. E, na verdade, aqui. Antes de prosseguirmos, isso no Atrazine deve ser o último slide. Então, aqui, clique, temos que chamar essa função. Cole aqui. Salve no navegador. Vamos dar uma olhada. Você pode ver que tudo está funcionando perfeitamente bem? Dê uma olhada. Mais uma coisa. Venha aqui. Novamente. Na verdade, serão para as balas logo abaixo dos controles deslizantes. Vai ter uma constante. Mova para o slide igual, índice do slide. Vamos definir o índice atual para o índice do slide do parâmetro. Caras legais. Então vá até o topo e vamos importar. Um ícone. Esse ícone será salvo como um marcador logo abaixo do controle deslizante. Ao clicar nos marcadores, você poderá mover os controles deslizantes. Não se preocupe, você definitivamente entenderá quando terminarmos a implementação. Nosso combustível de x pontos, como esses dos ícones do React. Logo após esse div. Vamos ter outro div. Estilize-o de forma ondulada. Vamos ter uma tela flexível de cima para baixo. Vamos usá-lo para justificar a parte do centro de conteúdo na parte superior e inferior. Nós vamos ter que fazer isso. Então, o que vamos fazer é mapear os slides. Ok? Então eu vou fazer sliders, dots. Mapa. O mapa é um método, certo? E certo. Dentro desse método, vamos pegar itens do controle deslizante de parâmetros, que esse cara aqui representa cada elemento, certo, dentro dessa matriz. E neste caso, o URL da imagem, mais calmo, ligeiramente indexado. Vamos renderizar a interface do usuário. Um div com o nome da classe será para x L. Cos é um ponteiro. Feche isso. Certo? Quando o div, vamos renderizar o RX pontilhado visualizado. Feche isso. Então, deixe-me te mostrar rapidamente. Diz, Eric, que dotar combustível não era divertido. Você sabe por quê? É simplesmente porque, novamente, esquecemos de prefixá-lo com RAX. Rapazes. É assim que eu reajo. Os ícones funcionam. Salvar. Você consegue ver esses ícones? Mas agora, quando você clica nele, nada acontece. Vamos implementar rapidamente a própria camarilha. Primeiro. Vamos lhe dar uma chave. Porque o aplicativo reclamará se você não especificar a chave. Deixe-me te mostrar. Você pode ver que diz que uma em cada criança em uma lista deve ter um adereço único. Eu sei que você sabe que isso é apenas um lembrete. Vou fazer com que c0 seja igual a um pequeno índice. Esse cara aqui, certo? Salve novamente no navegador. Confira o console. Vamos atualizar. Agora. O erro desapareceu. Linda. Ok, vamos implementar o onclick. clicar, chamaremos a função de mover para o próximo slide. Então, vamos torná-lo legível. Vá para o próximo slide. Copiar. Venha aqui. Cole isso. Ok, tudo bem. Então, vamos pegar o parâmetro. Um pequeno índice é tão simples quanto isso. Quando você salva no navegador, eu clico em. Você pode ver que isso é extremamente fantástico, amigos. Tudo bem, então isso é tudo por enquanto para o controle deslizante. E na próxima palestra, prosseguiremos com os componentes do aplicativo de entrega. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 62. 60 componente de entrega rápida: Tudo bem, bem-vindos de volta a todos. Portanto, nesta palestra, prosseguiremos com o componente do aplicativo de entrega rápida. Heron ao VS Code. Feche isso, abra o ponto de entrega js, feche o explorador ou um FCE para gerar o componente funcional de seta de reação. Vamos executar rapidamente o Died dentro do componente do aplicativo. E, por favor, certifique-se de importá-lo na parte superior. Então, vamos especificar a largura como foo, o que a tornará com 100 por cento. O fundo é branco. O acolchoamento superior, o acolchoamento e a parte inferior são 16 e, em seguida, o acolchoamento esquerdo e direito é para sempre. Então, agora isso servirá como div principal. Aqui vamos ter uma etiqueta histórica. Vamos estilizá-lo rapidamente. O teste é laranja, traço laranja 500. Vamos torná-lo ousado. Fonte, painel de instrumentos. Um teste é para se destacar e , em seguida, os testes alinham o centro. Agora, vou fazer entregas rápidas e seguras no navegador. Aqui, não é? Agora, logo após a tag do histórico de fechamento, teremos um div. Vamos estilizar rapidamente o diferencial. A largura será de 15, 20 pixels. A margem esquerda e a margem direita serão automáticas. Vamos ter uma grade de exibição. Então, em um dispositivo médio, queremos que a grade exiba dois pontos. Portanto, as colunas do modelo de grade devem fechar a div. Agora vamos ter uma imagem, IMG. Vamos dar a ela um nome de classe e depois estilizar a imagem. A largura é de 550 pixels. Será um valor constante. Agora você sabe o que é isso? Topo da montanha e margem inferior. Para SRC. Vamos voltar ao que poderia ajudá-la a copiar o URL. E aqui está. Destaque e copie. Venha aqui, cole. Em seguida, feche-o com a etiqueta de fechamento automático. Vamos economizar. Veja o que temos no navegador. Você pode ver que aparece aqui. Esses são bons. Então, logo após a tag IMG, teremos outra div. Vamos dar um estilo a isso. Vamos ter uma tela, flexão, direção flexível, coluna, conteúdo justificado, centro. Certo? Usando esse div, teremos uma etiqueta p. Vamos rapidamente dar um estilo a ele. Novamente, esse será um estilo personalizado. Esses são a, D, F. Agora, os telefones serão ousados. Novamente, aqui vamos ter uma etiqueta principal e eu vou fazer Vamos dar uma olhada. Ok, parece que está tudo bem. Também temos que estilizá-lo, certo? Em um dispositivo médio. O teste fará com que nosso dispositivo de quatro x l e menor, três exalem a fonte. Vamos torná-lo ousado. Parte superior do acolchoamento, parte inferior do acolchoamento. Vamos fazer isso também. Acho que isso fará com que tudo esteja certo. Já está parecendo bom. Ok, não se preocupe. Definitivamente vai chegar ao topo. Ok. Então, agora vamos ter uma tag p logo abaixo da etiqueta principal. Então, aqui eu vou copiar um teste fictício e depois colá-lo aqui. Então, isso é apenas um teste fictício. E se quiser, você pode voltar para o que poderia ajudá-la. Eu sei que a maioria de vocês gostaria de fazer exatamente o que eu estou fazendo. Então venha aqui e copie este teste. Mas você pode acessar a Internet e simplesmente configurar um teste fictício e depois copiá-lo para lá. Quando você salva, finalize a compra no navegador. Boom, parece bom, mas eu não gosto do jeito que parece. Formato. Não se preocupe Vamos prosseguir. Vamos fazer um parafuso, dar a ele um nome de classe e depois vamos fazer a diálise. O tabuleiro em segundo plano será bloqueado. O teste, certo? Estamos no barco, vai ser esse cara aqui. Só tenho que copiar. Não há necessidade de repetição. A largura, 200 pixels, arredondada, a fonte. Vamos fazer disso um meio. Margem, superior e inferior. Vamos fazer com seis margens, esquerda e direita. Vamos fazer com que seja automático. Em um dispositivo médio. Vamos fazer com que a margem esquerda e direita seja zero. E a parte superior do acolchoamento, parte inferior do acolchoamento serão três. Então, logo no barco, eu vou escrever, começar. Seguro. Tudo bem, então tudo parece estar bem, mas eu realmente não gosto do resultado. Então, eu só tenho que voltar ao VS Code. Vamos descobrir as coisas por aqui. Esta é a div que contém todas essas informações aqui. Então, o que vou fazer, temos 15, 20, vamos mudar para 12, 40. Seguro. Vamos dar uma olhada ou escrever. Tudo parece extremamente incrível. E parece como esperado. Uma coisa que resta é que não há espaço entre a tag p na parte inferior. Então, acho que temos que corrigir isso rapidamente. Agora vamos adicionar, certo pessoal, vocês podem ver que adicionamos seis como margem superior e margem inferior. Mas olha, não está funcionando. E você vê que temos que fazer o traço seis. E aí está. Caras perfeitos. Isso é tudo por enquanto. E na próxima palestra, prosseguiremos com os principais componentes de pico. E lá também vou te ensinar como fazer um controle deslizante React usando o slide fornecido. Nos vemos na próxima palestra. Mantenha o foco em sempre cuidar. 63. 61 componente de picareta superior: Bem-vindos de volta a todos. Nesta palestra, implementaremos o controle deslizante, que são os principais componentes do pico. Então, sem mais delongas, vamos começar. Abra o Explorer. E então temos que abrir o pico superior do ponto js, fechar o Explorer. E então eu vou fazer um FCE para gerar o componente funcional da seta. Agora, eu quero mudar essa div, certo? Queremos ter um fragmento de reação que foi salvo como o nó pai. Então, certo, dentro desses fragmentos, vou fazer a primeira página. Então, vou dizer aqui os tópicos. Vamos dar uma aula para que possamos estilizá-lo. O teste Orange Dash 500, as fontes, queremos que seja vaiado. Emblema de teste para o Excel. Vamos alinhar o texto ao centro. Acolchoamento na parte superior e inferior, na parte inferior. Vamos fazer com que seja mais simples, certo. Ok, digamos que, por enquanto, direitos dentro do componente do aplicativo direitos dentro do componente do aplicativo. Vamos executá-lo no componente de pico superior e fazer bem em importá-lo em uma banheira. Seguro. Verifique se o aplicativo está em execução. Tudo bem, então no navegador, aqui está. Então, isso será salvo como cabeçalho. Linda. Agora, a próxima linha é implementar esse planador. Ok, então vá rapidamente para splice gs.com. Em seguida, você verá o botão Começar, clique nele. E aqui você pode ler a documentação para entender as conhecidas obras de altura. Mas, por enquanto, vou prosseguir para o MPM aqui. Ok. Deixe-me te mostrar rapidamente. Você pode ver o link para esta página, à direita, indicaria ajudar nosso nebuloso. Aqui, veja como instalar o slide do React aqui. Vou copiar, voltar ao VS Code Control C para interromper o comando V do servidor atualmente em execução, colar o comando e pressionar a tecla Enter para iniciá-lo. Bom, instalado, bem-sucedido. Agora, o próximo na fila é importá-lo de forma cartola para o tópico. E então, novamente, volte para o slide de reação. Temos que copiar essa entrada aqui . Cole na parte superior. Seguro. Bom. Tudo bem, tão rapidamente, também precisamos importar os dados que usaremos para o controle deslizante de pico superior. Aconselho você a minimizar seu VS Code. Comando B para abrir o explorador, fechar os componentes e também fechar o SRC. Então, abra os materiais alimentares. Então você encontrará o pacote aqui chamado data. Certo? Dentro desses dados, temos o módulo data js, que compreende as categorias, os dados de pico médio e superior são incautos. Quando terminarmos de importar, vou divulgar para você. Então, arraste e solte diretamente no SRC. Você pode ver agora que está dentro do SRC. Quando eu fechar o SRC, você não verá mais os dados. Você vê bem? Maximize nosso direito. Então, vamos abri-lo. Agora, aqui você verá uma série de objetos e direitos dentro do objeto. Você verá alguns itens na forma de um par chave-valor, que é o id. E aqui está um, o título, e aqui está o que é. O preço de 50 e a imagem. Então, esses são os dados dos principais picos. Vou rolar para baixo novamente. Você verá os dados da refeição. Obviamente, há uma série de objetos que incluem o ID, o nome da refeição, a categoria em que ela se enquadra, a imagem e o prêmio. Role para baixo novamente. Você verá os dados das categorias. E é claro que é exatamente o mesmo, mas agora temos dados diferentes. Sim, então isso é exatamente o que é. E os benefícios de fazer isso são ajudá-lo a trabalhar com a API, ok, então, se pudermos buscar dados aqui. Então, obter dados de dinossauros S não será mais um problema no futuro. Quando começarmos a criar o site do filme, definitivamente precisaríamos nos ajustar a partir de um endpoint de API. Então, logo na parte superior, vamos importar os dados diretamente no módulo de dados, todos chamados de exportação. Deixa eu te mostrar. Você pode ver um ponto no topo do pico. Portanto, essa é uma exportação nomeada. E temos que importá-lo assim partir de dados de barra de dados de barra de ponto a ponto. Simples assim. Bom. Agora, aqui é onde a diversão começa. Vamos ter um div aqui, dê a ele um nome de classe para estilizá-lo. Queremos que ele fique escondido em um dispositivo menor. Portanto, em um dispositivo maior, queremos que ele seja flexível, com a largura máxima. Queríamos 15, 20. Portanto, simplificando, não queremos exibir a categoria deslizante em telefones celulares. Tudo bem? Queremos que ele seja exibido em uma tela maior, como seu laptop, desktop e o resto deles. Com certeza, isso será em pixels. E então a margem é automática. Mas no estofamento superior e inferior , o padrão da mão esquerda também é dois. Feito isso, temos que mapear os dados, que são os dados do tópico, tudo bem, então temos que mapear todos esses topos aqui. Assim. Queremos que eles passem por ele e depois o exibam na tela. Na verdade, é muito simples fazer isso. Primeiro, os colchetes de abertura e fechamento. E então eu vou fazer um mapa de pontos de tópicos. Então aqui eu vou fazer o item. Então, esse item aqui representa cada objeto, à direita, dentro da área do tópico. Sim, então agora vamos devolver a interface do usuário. E logo na interface do usuário, começaremos a exibir itens como título, preço, N e imagem. Então, aqui eu vou ter um div com o nome da classe e depois teremos que estilizá-lo. Então, vamos estilizar o raio da borda, que será três posições x L em relação. Então, certo, dentro desse div, vamos ter outro div, dar a ele um nome de classe e depois estilizar o div. Então, como esse cara está posicionado em relação, queremos posicionar esse cara forma absoluta para que ele possa ficar no topo da div principal, assim. Ok? Então essa div aqui vai ser posicionada em cima desse cara. A mais simples dessa posição, absoluta. A largura está cheia, o que a torna 100%. A altura está cheia, o que também torna a altura 100 por cento a BG, eu vou fazer o bloco de traço B G. Mas, nesse caso, queremos que seja um pouco transparente. Então, vou dividir por 50 depois arredondar, que fará com que as bordas fiquem um pouco curvas. Então eu vou ter o Excel, o teste. Apenas torne-o branco. Feche a div. Ok. Vamos encerrar isso. Acho que estou bem. Legal, assim. Então, queremos usar a tag p para exibir o título. Então, aqui eu vou fazer p, depois o título do ponto do item. Você pode lembrar que esse item aqui representa cada objeto na matriz. Então, o título do ponto do item, este é o título aqui que estamos tentando exibir. E então todos esses títulos como esse, todos eles assim, serão exibidos. Porque usamos o item que representa cada objeto a ser exibido, esse título. Definitivamente entenderia isso bem o suficiente. Salve e vamos conferir no navegador, certo? Portanto, antes de conferirmos no navegador, lembre-se de que paramos o servidor, então precisamos reiniciá-lo novamente. Tudo bem, role para baixo. Onde estão os dados? Nenhum lugar pode ser encontrado? Quando você observa a tela, você pode não ver os dados, certo? Mas eu posso te garantir. Os dados estão escondidos no canto inferior esquerdo da tela. Deixe-me ampliar um pouco. E agora eu quero mostrar que você pode ver simplesmente porque não estilizamos, é exatamente por isso que ela aparece assim . Então venha aqui. Agora, vamos dialisá-la, dar a ela um nome de classe e escrever bem no nome da classe. Mas à esquerda e à direita há duas fotos. Ao salvar e finalizar a compra no navegador, você pode não ver isso claramente. Então, vamos fazer algo agora. Essa é a div parental desse cara, ok? Então, posicionamos esse cara em relação e, em seguida, posicionamos esse div para ser absoluto. No sentido natural, isso significa que essa div estará bem na frente desse d. Ok? Então, deixe-me te mostrar rapidamente. Agora, saia do def, fora desse D, ok. Vamos ter uma tag IMG porque eu quero exibir a imagem agora para que tudo apareça do jeito que esperamos. Aqui. Vamos dar a ele um nome de classe. Ok, primeiro, vamos exibir a imagem antes do nome da classe. Então, eu vou apenas desfazer a tag de fechamento automático e vou fazer SRC igual item dot IMG. Deixe-me te mostrar aqui. Então é isso aqui. Quando você salva no navegador. A ideia é, você pode ver, agora parece bom, mas não parece bom porque também não estilizamos a imagem. Mas pelo menos você pode ver que é comida aqui com o título correspondente. Aqui temos o Sharma, temos o suco de frutas, os iogurtes, as laranjeiras, o ovo que estou plantando. Wu vata terá um sabor agradável. Peixe tilápia naquele julho de arroz. Oh meu Deus, pessoal. Vamos estilizar essas coisas. Vamos dialisar isso rapidamente. Agora. Vamos dar a esse IMG um nome de classe. A altura será uma altura personalizada. Então, vamos fazer com que seja 200 pixels. A largura. Vamos fazer com que seja 2100 pixels, o que está cheio. Então, agora, vamos salvar e ver o que temos. Parece assim. Não se preocupe Quando começarmos a implementar o controle deslizante, teremos espaços entre os itens. Agora, vamos terminar. O objeto de estilo será chamado. Então, esse será o objeto que se encaixa. E, na verdade, o que isso faz é redimensionar a imagem para caber em seu contêiner real. Queremos que as bordas da imagem sejam um pouco curvas, expire mais grosseiramente. Vamos fazer disso um indicador. No entanto, quando você passa o mouse sobre a imagem, queremos dimensioná-la. 105. Bom. E queremos que isso facilite a duração. Vamos fazer com que seja 300. Você salva no navegador e está certo, então quando passamos o mouse sobre a imagem, nada acontece. Tudo bem, pessoal, acho que precisamos configurar um controle deslizante antes de começarmos a ver algumas das mudanças. Mas, por enquanto, vamos arredondar com o controle deslizante. Ok? Ok, vamos implementar o canto inferior direito abaixo da tag p, que está dentro desta div aqui. Vamos exibir a parte inferior. Eu vou fazer para cortar. Vamos dialisar a fronteira. A fronteira. Vamos fazer com que seja pontilhado. Esse é o meu próprio estilo, então você pode realmente fazer outra coisa do seu lado. A cor da borda será branca. O teste. Vamos deixá-lo branco também. margens esquerda e direita terão sua posição absoluta. Por fim, o fundo. Vamos fazer quatro, que é a margem inferior. Ok? Quando você salva, vamos ver os resultados. Bom. Consegue ver a linha pontilhada? Você vê? Mas o problema agora é que ele não apareceu em branco. Deixe-me ver uma coisa. Opa, pessoal. É aqui que está o problema. A borda deveria ser branca. Então, agora você pode ver isso na tela. Veja, ok, vamos implementar o controle deslizante para que tudo pareça bom para implementar o controle deslizante. Primeiro, precisamos instalar o slide do React que fizemos no estágio inicial. Confira o arquivo package.json. E aqui está. E então, quando você chega ao pico superior, temos que importar essa praga no slide, slide, incluindo o pacote CSS. Agora, o que vamos fazer é embrulhá-lo com o fornecido. Então, logo após esse div, vou fazer o fornecimento. Feche-o, certifique-se de destacar, copiar e depois colá-lo aqui. Assim. Ok, ótimo. Agora, neste slide, vou fazer as opções de abrir e fechar colchetes e, em seguida, queremos que apareça quatro por página. Se você observar a tela agora, perceberá que temos quase dez itens que aparecem no par na página 1, 234-567-8910. Então essa é a razão pela qual a imagem não tomou sua forma. Ok, agora queremos quatro itens por página. Então, como fazer isso é pouco a pouco. Queremos isso para. E, novamente, antes de prosseguirmos, vamos encerrá-lo com o slide fornecido. Logo abaixo da devolução. Vamos dividir o slide, destacar, cortar, a tag de fechamento e, em seguida, colocá-la após a divisão de fechamento. Aqui assim. Ao salvar uma tela observada, você perceberá que esta cidade será aplicada. Veja, temos 1234 e agora você pode deslizar as imagens. Você pode ver o quão incrível é isso? Temos as setas para deslizar. Dê uma olhada. Linda. Agora, se você observar os itens, perceberá que há mais espaço entre eles. Sim, então vamos fazer isso rapidamente. Venha aqui para criar espaços entre os itens. Tudo o que vamos fazer é que a lacuna será igual a 0,5 rem VCs conforme minha própria especificação, você pode fazer isso para m cinco ou o que quiser no final. Salve e confira o navegador. Agora, você vê, você pode ver isso? Isso é legal. Eu adoro isso. Ok, então uma coisa que eu quero fazer é realmente tornar a droga um pouco mais suave. Então, vamos fazer isso rapidamente. Certifique-se de colocar uma vírgula aqui e então eu vou me livrar das drogas. Ao observar a tela, que está no lado esquerdo da tela, você verá esta seta deslizante aqui. Eu não gosto disso. Ok, então vou cortar meu cabelo e depois vou fazer flechas. Vamos configurá-lo como falso. E eu acho que isso é o fim de tudo. Você vê? Agora a flecha desapareceu. Os campos são formados. O que precisamos fazer novamente? Ok, vamos abrir o console e deixar eu te mostrar. Aqui diz querer cada filho e pelo menos ter um suporte chave único, é claro, você já deve saber disso. Então o que eu vou fazer agora é a chave igual ao item ponto. Portanto, temos que procurar algo que seja usado para identificar os itens de forma exclusiva. E aqui, posso dizer que o ID é a única coisa que pode ser usada para identificar de forma exclusiva todas essas coisas aqui, porque você também pode ter dois itens com o mesmo preço. Você pode ter dois itens com o mesmo título. Então, acho que usar o id é a melhor ideia. Sim, então agora vou fazer a identificação de pontos do item. Quando você salva no navegador. Vamos retirar o console novamente. Atualizar. Linda. Agora você não vê mais o erro do índice de chaves. Por favor, leve cargas ao aplicar a chave, isso deve ser feito no nível superior. Então, quando eu faço algo assim, copio essa chave aqui, capturada. Suponha que eu queira aplicá-lo a esta div. Ao salvar no navegador, abra o console e verá que o gráfico nas folhas deve ter um suporte de tecla exclusivo, simplesmente porque aplicamos o suporte de tecla a esse dv aqui. Portanto, isso deve ser feito no nível superior. Então, vamos fazer assim. Finalização da compra segura, navegador, atualize o console, recarregue. Tudo está funcionando perfeitamente, conforme o esperado. Até agora, tudo bem. Tudo está bom. Eu adoro isso. Portanto, o melhor online é mostrar o prêmio. E com certeza, vamos dar uma alternativa aqui para que, se a imagem não aparecer, algo bom realmente apareça. Se a imagem não aparecer, exibiremos o nome do item. Então, agora eu vou fazer o título do ponto do item. Então, se tivermos uma pausa na imagem, queremos exibir essas coisas aqui, que é o título. Ok, vamos formatar o código e ele parece limpo. Por fim, vamos implementar o preço. De novo. Queremos usar a tag p para fazer isso. Sim, vamos ter uma etiqueta p. E então eu vou fazer o preço por pontos do item. Quando você salva e verifica o navegador. Você pode ver agora que o preço é assim. Vamos dialisá-lo rapidamente com um className, que precisa dar uma parte em B X traço dois, mas à esquerda e à direita há dois. E aqui, para o título, também precisamos fazer com que as fontes fiquem em negrito. Fonte, traço, quadro. O teste para se destacar, preenchendo a parte superior. Ok, vamos uniformizá-lo. Parte na parte superior. Vamos fazer quatro. Você pode ver que tudo parece bem? Adoro esses resultados. Amigos. Você pode ver, pessoal, tudo parece bem. Mas se você observar a borda esquerda da tela, perceberá que não há espaço no meio. E eu não gosto desse jeito. Ok. Então, deve começar daqui assim. Então, vamos dar uma olhada no padrão à esquerda. O nome da classe Div está chegando. Uma tela grande deve parecer flexionada na posição. A largura máxima é de 15, 20 pixels, a margem é Otto, a onda P e a P X são duas. Mas pessoal, dêem uma olhada. É aqui que entra o erro. C P x. Aqui temos que tirar o sinal de igual. Consegue ver o cofre de atendimento? Dê uma olhada agora, parece bom. Gente, na verdade, nós seres humanos, estamos propensos a erros ao digitar e vocês estão ensinando, falando, com certeza cometeriam erros. Sim, então, mas isso não importa necessariamente porque todo mundo comete erros. Por enquanto, tudo isso é para o controle deslizante e está funcionando perfeitamente bem. Adoro o resultado final mais uma vez. Sim, então dê uma olhada. Linda. Isso é tudo por enquanto. E na próxima palestra, prosseguiremos com a fábrica. Portanto, teremos que exibir as gravações dos alimentos na tela. Te vejo então. 64. Componente de refeição: Bem-vindos de volta a todos. Anteriormente, implementamos o controle deslizante de pico superior. E do papai. Tudo bem, então nesta palestra, vamos implementar o componente de refeição. Ok? Então, vamos mapear os dados das refeições e exibi-los na tela com um design muito bonito. E acredite em mim, o design será responsivo, como sempre. Heroína para componentes do código VS e depois refeição. Mas g está próximo do Explorer, um FCE para gerar o componente da função de seta de reação. Ok, vou tirar isso por enquanto. Volte para o app.js e vamos renderizá-lo aqui. Vamos começar estilizando essa div. Primeiro, dê a ela um nome de classe. E então a largura máxima, 15, 20 pixels. Margem automática. Mas não padronizou à esquerda os direitos de preenchimento da parte superior e inferior. Vamos fazer com que seja 12. Sim, então, nessa div, teremos a tag hedge one que será salva como título. Agora vou abordar o tópico. Quero copiá-lo daqui, destacar a etiqueta principal, vir aqui e colar. Só precisamos mudar o artigo. Nossa refeição Save. E aqui está. Você pode ver logo abaixo da tag H1, vamos ter um div, dê a ele um nome de classe. E então estilize menos a div. Queremos que esse div apareça em um tipo de coluna de grade. Tudo bem, então vamos dizer grade de exibição. Então. Em dispositivos médios, como iPads, queremos que a grade apareça em duas colunas. Então, eu vou fazer colunas de grade, traço dois, simples assim. Então, em um dispositivo menor, que é SM, mude esse cara para S M. Em um dispositivo menor, queremos uma coluna. E em um dispositivo maior, queremos quatro colunas. Aqui. Vou mudá-lo para o nosso GI. E não o LG na forma de seu gadget. Ok, isso é grande. Susan, está certa, qual ninho? A diferença deve ser de seis, mas acho que devemos implementar o resto dos estilos quando terminarmos o design. Aqui dentro da div, temos que mapear os dados. E, claro, na palestra anterior, importamos esses dados aqui. E é, certo, estamos nos dados SRC, SRC, e então você verá o arquivo JS de dados. Então, à direita neste módulo, temos os dados Mu. E, claro, isso é apenas uma matriz de objetos. E escreva o objeto de renderização, temos os itens na forma de par chave-valor, o ID, o nome, categoria, a imagem e o preço. E então temos quantos deles aqui? Temos até 15. Bom. Comando B para fechar o explorador. Em seguida, vamos abrir o colchete aqui para incluir expressões em JavaScript. Mas antes de prosseguirmos, temos que importar os dados na parte superior, eu vou fazer as importações. Será uma refeição de exportação nomeada a partir de dados de barra de dados GIS. Aqui, vou fazer o mapa de pontos de dados de refeições, o método do mapa, a vacina, um parâmetro chamado item. E com certeza você pode nomear esse parâmetro como quiser, mas eu recomendo fortemente que você se atenha ao item da convenção, ok? Mas você pode dar a ele qualquer outro nome descritivo do seu lado. Portanto, esse item aqui representa os direitos de cada item dentro do objeto. Então, defina-o para nossa função. E então queremos retornar uma interface de usuário. Certo, na interface do usuário, teremos um div. Vamos dar um estilo a isso. Então. A borda dessa div não será nenhuma porque ela servirá como cartão. Sim. Então, esta é a div sobre a qual toda essa parte superior se apoiará. Então, vamos ter a fronteira a ser conhecida em Hoover. Quando você passa o mouse sobre este div ou sobre este cartão. Então, por exemplo, queremos escalá-lo em 105. E a duração é 300. Feche isso. Sim, então qual ninho? Agora, vamos ter uma tag IMG. Img. Vamos fazer SRC, que é a fonte e a fonte dessa imagem. Está vindo da imagem de pontos do item. Feche com a etiqueta de fechamento automático. Portanto, o molho aqui vem, é claro, dos dados que importamos na parte superior. Então, quando você salva e verifica no navegador, os IDs, Você pode ver a beleza agora em uma tela grande, aparecem em quatro colunas, coluna um, também aparecem em quatro colunas, coluna um, coluna 23.4. Se você observar com atenção, quando eu passo o mouse sobre a imagem, ela aumenta um pouco o zoom, o que a torna extremamente agradável. Dê uma olhada. Você pode ver que, no entanto, eu entendo que não há espaço entre os itens, mas também podemos corrigir isso rapidamente. Agora, volte para o cartão, que é esse cara aqui. Eu vou fazer a lacuna, a lacuna de seis. Salve no navegador. Você pode ver agora que temos espaço entre as imagens. Mas, novamente, você perceberá que as imagens não estão bem, Stout, não se preocupe, faremos isso em um G V. Então, agora conseguimos exibir todas as imagens corretamente, dentro dos dados da refeição. Esses caras estão aqui. Tudo isso é legal. Agora você sabe como andar dinamicamente com o React js usando o método map. Ensinar, ótimo. Linda. Tudo bem, vamos continuar. Agora. Vamos estilizar a imagem. Então, aqui eu vou fazer className, dentro da classe, eu vou fazer a largura. Vamos fazer com que seja 100 por cento, a altura. Vamos torná-lo 100% seguro no navegador, nos IDs. Agora, está tudo bem, mas quando você observar novamente com cuidado, você vai perceber que as imagens estão meio quebrando como essa imagem aqui. Portanto, temos que redimensionar a imagem de forma que ela caiba em seu contêiner. E a maneira de fazer isso é especificando os feeds do objeto. Venha aqui. E eu vou fazer Object dash cava. Portanto, a alimentação do objeto é cava, salve no navegador. Você pode ver que todos eles estão bem agora, eu gosto. Vamos fazer com que a parte inferior da imagem fique um pouco curvilínea. Venha aqui e eu vou fazer um traço arredondado, LG, salve no navegador. Do papai. Agora você tem as bordas arredondadas. Espero que você possa ver isso claramente. Ótimo. Vamos continuar. Tudo bem, então pessoal, há algo que eu apenas observo agora. Se você olhar de perto, perceberá que a altura das imagens não é igual. Como esse chuveiro mais aqui. A altura não é igual a essa pizza. E também, esses peixes de tilápia muito saborosos que você pode ver por lá. Portanto, temos que procurar uma maneira de fazer com que as alturas sejam iguais. E, claro, vai ser muito fácil. Então, vamos mudar a altura para 200 pixels. Quando você salva no navegador. Eles são todos iguais. Agora, ensinar bem, é lindo. Portanto, se houver uma quebra na imagem, teremos que exibir o tipo alternativo de opção. Então, aqui eu vou fazer uma alternativa. Queremos exibi-lo dinamicamente. Vou colocar o ponto do item no nome do item. Bom. Feito isso, vamos trabalhar no nome. Logo após a tag de fechamento do IMG, teremos um div, daremos um nome ao cluster para estilizá-lo. E então vamos fazer com que ele seja flexível. Justifique o espaço do conteúdo entre preenchimento superior e inferior para o preenchimento à esquerda e o padrão à direita. Vamos fazer quatro também. Ok, vamos fazer esses dois para que não se tornem demais. Feche a div. Salve , dentro desta div, vamos usar a tag p para exibir o preço. Ok? Vou fazer Hi Tim, dogs, price, save and see no navegador. Ok, agora você tem o preço aqui, mas não é assim que queremos. Agora, vamos dialisar isso. Vamos dar a ele um nome de classe. Queremos que o fundo seja laranja. Traço laranja 700. A altura é, está na largura. Tem 18 anos. Arredondado, queríamos enganar. Você pode ver que isso fará com que o raio da borda seja esférico, quase 100%. Sim. Quando você salva no navegador, o papai está. Ok, você pode ver que agora não está aparecendo bem. Então, agora queremos colocá-lo em cima da imagem. Então, eu vou fazer a margem superior. Vai ser menos dez. É por isso que eu uso esse topo de margem negativa para ser dez. Então, isso realmente fará com que esse valor seja um valor negativo. Salve e veja do que estou falando. Isso vai empurrá-lo para o topo. Você pode ver agora que temos o material aqui , bem no topo da imagem. Então lembre-se de que antes estava abaixo da imagem, agora está no topo, à direita. Então, o teste, vamos torná-lo branco. Branco. Pui, que é o padrão superior e inferior, parte inferior do preenchimento à esquerda e à direita está na borda, é oito porque queremos dar a ela uma borda muito grande. Quando você se salva e semeia, você pode ver que agora ela está gradualmente tomando forma. Eu amo isso honestamente. Isso parece tão bonito e tão bonito. Sim, isso é legal, incrível, incrível, fantástico. As fontes, vamos deixá-las em negrito. Painel de controle de empresas. Tudo bem, então não exibi o preço. O ninho e a linha são, vamos dar uma olhada aqui. O nome da refeição. Sim, então logo acima do preço, teremos outra etiqueta p. Então eu vou fazer o nome do ponto do item. É tão simples quanto isso. Salve, confira. E você vê que o nome aparece aqui. E agora, empurrou o preço para a direita. Tudo aqui está bem e eu adoro isso. Vamos continuar. Vamos dar um pouco de estilo. Aqui. Eu vou fazer o painel de fontes. Essa é a única coisa que vamos fazer aqui . Eu posso te garantir. Ok, Cool. A próxima é a visão mais votada. Sim, então teremos um botão Exibir Mais logo abaixo do nome do item. Então, logo após esse div de encerramento, teremos outro div com o nome da classe. Ok, vamos fechá-lo. Vamos colocar um preenchimento à esquerda de dois e depois preencher a parte superior e inferior. Vamos fazer com que caia. Ok, agora, você pode não ver nada. Então, vamos trabalhar nisso aqui. Vamos ter uma etiqueta P e eu vou fazer uma visualização assim. E o que eu vou fazer é exibi-lo com uma seta. Então vá para o topo. Vamos importar. Vamos importar o ícone direito da seta SM do. Portanto, antes de prosseguirmos com a entrada, vamos instalar rapidamente o pacote aqui. Npm install, adhere, icon slash, reaja aqui, você também pode visitar sua página e copiá-la daqui. Você vê sinal verde para instalar. A solução está em andamento, então vamos continuar importando a barra, reagindo e olhando do ícone do herói. A instalação está concluída. Linda. Ok, vamos iniciar o servidor para que não tenhamos que fazer isso de novo. Então, aqui queremos exibir o ícone. E eu vou fazer mais depois da exibição. Vou fazer nosso ícone correto do OSM. Feche com uma etiqueta de fechamento automático. Vamos dar rapidamente a esse tau, a largura. Vamos fazer com que sejam cinco. Margem esquerda. Vamos fazer isso também. Sim, então quando você salva e confere o navegador, ok, pessoal, o ícone não está funcionando. Na verdade, não sei por quê. Então, vou pausar o vídeo e depois fazer uma pesquisa nos bastidores para entender por que o ícone não está funcionando. Porque, na verdade, fizemos a coisa certa aqui. Também podemos fazer algo como um contorno de barras. Vamos ver o que acontece. Não funcionou. Ok, vamos ver o console. Você está tentando importar, blá, blá, blá, blá, blá, blá, blá. Da V1. Ambos instalaram sua própria visão de ícones para nossos caras certos, parece que eles realmente atualizaram a biblioteca. Agora eu tenho que fazer uma reinicialização nos bastidores e ver o que funciona para nós. Tudo bem. Te vejo então. Tudo bem, pessoal, embarquem. Depois da pesquisa que fiz nos bastidores , percebi isso. Eles atualizaram a biblioteca, ok, então a única solução que tenho no momento é fazer o downgrade da biblioteca profissional. Se você olhar aqui, perceberá que instalamos a versão 2.0. Portanto, a ideia é fazer o downgrade para a versão um. Sim, então vou destacar, limpar e salvar diretamente no arquivo package.json. E venha aqui, deixe-me te mostrar. Temos que copiar esse cara daqui, assim, cópia. E então, diretamente no terminal, verifique se você está no diretório do cliente, comando V para colar. Então, vou fazer isso simplesmente porque temos que segmentar uma versão específica, 1.0, 0.6. Portanto, essa é a versão que nos permitirá usar esse erro específico. Então, quando eu instalo, vamos ver o que acontece. Ok, tudo bem. Instalado, bem-sucedido. E por que é isso? Então, volte para o giro medial. E então, se você não tem esse esboço, você só precisa fazer algo assim. Esboço de corte. Salvar. Vamos começar com vários mais uma vez. Tudo bem, então quando você rola para baixo, aqui está o erro. Agora temos a seta exibida na tela. Então, nesta linha deve alinhá-la adequadamente porque queremos que ela fique mais na frente da vista. Sim. Então, volte ao código VS. Então. Vamos dialisar a tag p. Dê a ele um nome de classe. Aqui vamos fazer com que ele seja flexível. Então, quando você exibe flex, tudo vai aparecer na mesma linha. Aqui está, você pode ver? Incrível. Vamos alinhar os itens ao centro. O teste. Esquivar. O lote Indigo contém 100. Vamos dar uma olhada. Oh, lindo. Dei uma olhada. Você pode ver? Funciona bem. Vamos pensar que há espaços entre o modo de visualização e o nome do item que, na verdade, são demais e não estão bem alinhados em relação ao eixo esquerdo. Então, vamos corrigir isso rapidamente. Vamos dar a ele uma margem superior. Será um valor negativo, o que o empurrará para o topo. Vamos fazer com que seja sete. Salve o navegador. Agora, funcionou, mas não está na mesma linha do lado esquerdo. Tudo bem pessoal, então isso é tudo por enquanto. E na próxima palestra, continuaremos com esse componente. 65. Chave de componente de refeição: Bem-vindos de volta a todos. Tudo bem, então antes de prosseguirmos, quero chamar sua atenção para um resultado muito importante e eu, para abrir o console, certo? Estamos no console. Você quer ver se sua criança em uma lista deve ter um adereço chave exclusivo, pessoal Na verdade, pensei que vocês conseguiriam descobrir isso do seu lado. Mas não tem problema, vou ajudá-lo a voltar ao código VS aqui. Deixe-me ver. Dentro dessa div, vamos especificar a chave. chave é igual a item.name id. O id é o que pode ser usado para identificar de forma exclusiva os itens na matriz dos dados da refeição. Claro, você sabe disso. Deixe-me te mostrar mais uma vez. Ok, aqui está. Portanto, o ID é exclusivo. Portanto, temos que usar o ID como um teste de chave exclusivo para identificar cada elemento na matriz ou em cada objeto, por exemplo, Atualizar. E agora, quando você atualiza o console, tudo está funcionando bem. Você não tem mais o erro irritante do que o bom. Outra coisa importante que eu quero que você anote é o nome do item e a equipe de visualização móvel. Então, queremos que esteja alinhado. Você pode ver que parece que está sobreposto. O que precisamos fazer agora é alinhá-los adequadamente. Venha aqui. Então, dentro desse div, esse div aqui. Então dissemos que o padrão, padrão esquerdo à direita, é quatro aqui e Micky dois aqui, Save. Agora está tudo alinhado. Outra coisa que queremos fazer aqui é que você pode ver que não há espaço entre o título e os itens. Então, eu só vou errar. Aqui. Temos que o PI é 12. Isso aqui. Vamos ver o que acontece. Vamos ter um PUI aqui. Mas em cima e em baixo, embaixo, vamos fazer quatro. Salvar no navegador ou certo? Agora, tudo está funcionando perfeitamente, conforme o esperado. Na próxima palestra, começaremos a implementar a navegação para classificar os itens de acordo com as categorias. Nos vemos na próxima palestra. 66. 64 Botões: Ok, agora temos um design muito bonito com os itens exibidos na tela. O próximo passo é implementar os painéis para classificar os itens por categorias. Tudo bem, então, ao clicar no botão, queremos classificar os itens por suas categorias correspondentes. Vamos implementar isso rapidamente. Código Vs. Então, logo após o fechamento da etiqueta principal, teremos um div. Vamos dar a ela um nome de classe para que possamos estilizá-la. Vamos ter esse div display flex. A direção da flexão é cólon. Em dispositivos grandes, a direção flexível será Rho. Justifique o conteúdo para o centro, feche o DFF. Então, certo, dentro desse div, vamos ter outro div, dar a ele um nome de classe e então podemos estilizar o div. Agora mesmo. Vamos ter um display flex, então vou copiar daqui e colar. Também queremos que seja justificada a pasta central. E o que está, novamente, em um dispositivo médio MD. Também queremos justificar o conteúdo para centralizar. É tão simples quanto isso. Tudo bem, então vamos criar rapidamente os botões. Aqui eu vou fazer, tudo bem, estamos neste destaque de navegação. Duplique-o três vezes. Então aqui eu vou fazer pizza, verificar, verificar a grafia da galinha. E por último, vou fazer Salat, exceto. E vamos ver o que temos no navegador. E osso. Você pode ver que parece assim. Na verdade, parece muito legal, mas eu quero usar um pouco de lanterna profissional para que o botão pareça medido em Andes. Então, o que fazer agora é dar aula de botânica e depois estilizá-la, destaca o Bertin. E, por favor, só precisa ser preciso aqui, estou destacando apenas os direitos de voto dentro da tag. Agora estou destacando as línguas. Então, quando você destaca o primeiro presidente apoiante, o OT e a tecla de comando em seu teclado. Em seguida, toque na tecla de seta para baixo para selecionar várias coisas e, em seguida, dê a ela um nome de classe. Agora você pode ver? Queremos estilizar todos os botões de uma só vez, e isso é fantástico. Isso facilita o trabalho. Gente, estou te ensinando algumas paradas profissionais por aqui. E espero que você goste. Dê uma margem de um. A borda será laranja, traço 700, mas o teste será branco. Então, no Hoover, queremos mudar a cor de fundo para branco. Eu vou fazer em Hoover. Mude o fundo para branco. Sim. Depois, também ao passar o mouse. Queremos mudar o teste para Orange Dash 700. Novamente em Hoover. Também queremos mudar a cor da borda para laranja traço 700. Acho que isso é tudo por enquanto. Ok, vamos salvar rapidamente no navegador. Opa, dê uma olhada. Então pessoal, vamos mudar o plano de fundo aqui. Temos que aplicar o plano de fundo. Deixe-me mostrar como fazemos isso agora. Aqui temos a borda para ser laranja. O teste é branco, a margem é uma. E então vamos especificar o plano de fundo. Bg, dash, orange, dash, 700, salve e veja o resultado no navegador. Bom. Tudo funciona perfeitamente bem. Mas agora, quando você clica nos botões, nada acontece. Opa, pessoal, dêem uma olhada. Certifique-se de corrigi-lo. Deve ser sólido e não o contrário. Assim. Tudo bem. Pizza, tudo, tudo está escrito. E depois salve aqui. Bom. Parece bom com o efeito de passar o mouse funcionando perfeitamente bem. Linda. Eu amo o que estou vendo honestamente. Então, quando clicamos em que as ervilhas estão votando, ele selecionará todos os itens relacionados à praça. O frango selecionará os itens relacionados ao frango. E então o sólido também filtrará os itens com classificação sólida. Então, como fazer isso agora? Então, primeiro temos que importar os EUA, gancho na parte superior. É importante usar dívidas. E aqui vamos fazer os trechos usados. E eu vou chamar isso de alimentos. Vamos colocar alimentos como esses no Cup. Dei uma olhada. E aqui o estado inicial será o dado da refeição, que é o objeto de dados que temos no pacote de dados. É importante te mostrar isso de novo? Ok, deixe-me te mostrar aqui. Esta é a refeição Beta, ok? Então, tendo feito isso, presume-se que atribuímos os dados da refeição a uma variável chamada alimentos. Então eu vou copiar, venha aqui. Então, vamos fazer mapa de pontos de alimentos quando você salvar e conferir o navegador. Frase, tudo legal. Sim. Certo. Então, vamos implementar a funcionalidade do filtro. Estrague tudo logo abaixo das variáveis de estado. Vamos definir a função para filtrar os itens por cada categoria. Agora, vou criar algumas categorias de TA, que é o nome da função. Em seguida, vou pegar a categoria como parâmetro e, em seguida, configurá-la para nossa função. Aqui, temos que atualizar o estado inicial. Então, vou fazer o filtro de pontos de dados de refeições porque vamos filtrar dados do MUX para selecionar com precisão cada categoria. Ok? Então aqui eu vou fazer o item, sim. Novamente, defina-o para nossa função. Pronto, retornaremos a pontos do item igual à categoria real, certo, dentro dos dados da refeição. Então, tendo feito isso, menos de uma linha é implementar o onclick. Vamos formatar o código. Assim. Desclique em igual. Temos que atualizar os alimentos e alimentos de acordo com meus dados. Ok, bom. Destaque esta cópia, vá até a peça para cima ou para a lata e depois vamos colá-la aqui. Mas agora, neste caso, queremos chamar a função que definimos aqui. Chame essa função assim. Então temos que passar na categoria pizza. Ok? Salve e vamos ver se funciona. Diz que as categorias não estão definidas para. Eu fiz isso? Por outro lado, meu Deus pessoal, dêem uma olhada na linha dez. Agora, deve funcionar. É minha data não definida. Opa. Os olhos do cara estão se fechando aqui. É tarde da noite, desculpe por isso. Agora vamos experimentá-lo na Piazza. Funciona, pessoal, está lindo. E quando eu clico em Tudo, ele retorna todas as refeições. Acho que é bom, mas salada de frango não está funcionando por enquanto. Vamos implementá-lo rapidamente. Eu só tenho que copiar esse cara. Cole aqui mesmo. E isso vai ser frango. Eu amo muito frango. Em seguida, copie novamente, inserido no corpo sólido, e depois altere a categoria para sólido. Salvar. No navegador. Atualizar. Quando você clica em pizza , mostra pizza, frango, salada de frango. Parece sólido. Isso é extremamente fantástico, pessoal, e eu adoro isso. Estou adorando cada pedacinho desse curso. Isso é tudo por enquanto e tudo está funcionando perfeitamente, conforme o esperado. Vamos verificar a capacidade de resposta do celular. Consegue ver isso? Funciona bem? Dê uma olhada. Vamos fazer isso em um dispositivo iPhone. Frango para salada. Oh meu Deus. Ok, vamos continuar. Na próxima palestra, começaremos a implementar a seção de categorias principais. Isso é tudo por enquanto. Nos vemos na próxima palestra. 67. 65 categorias de tendência: Linda. Tudo bem, então, nesta palestra, vamos trabalhar nas principais categorias. Então, basicamente, o que vamos fazer é mapear as categorias e exibi-las na tela. E, claro, vamos dar a ele uma aparência muito bonita em termos de design para que pareça atraente aos olhos dos usuários finais. Siga o comando B do VS Code para abrir as categorias de jazz do Explorer. E então eu vou fazer uma análise aproximada, degenerar é um componente funcional e , em seguida, só precisamos analisar os dados novamente. Então, aqui estão os dados das categorias, essa seta aqui com objeto e depois os itens ali. Então, basicamente, vamos exibir o nome e as imagens. Feche isso. Então, primeiro, o que vou fazer é importar categorias. E, por favor, esta é uma letra minúscula dos dados da barra de dados de barra de dados de ponto a ponto. Claro que você já deveria saber disso. Precisamos renderizar o componente de categorias diretamente no aplicativo. Além disso, certifique-se de importá-lo na parte superior. Então, agora eu vou fazer categorias de console.log. Definitivamente, algo aparece diretamente no console. E aqui estão os detalhes. Você pode ver? Temos que o índice é zero, o ID é um, o nome da categoria e o caminho da imagem. Sim, então pessoal, isso é exatamente o que temos por enquanto. Então, vamos ver como podemos exibir todas essas características na tela. Vamos dar ao div um nome de classe para estilizá-lo. A largura máxima será de 15, 20 pixels. Margem, automática. O acolchoamento esquerdo e o canto inferior direito são para a parte superior externa e a parte inferior do acolchoamento é de 12 K. Quero ser exato, então não tenho certeza disso. Deixe-me abrir o e-mail JS ou qualquer outra coisa e deixe-me ver. Ok. 15, 20, acho que é isso. Ok. Ótimo. Quando você salvar aqui, teremos uma tag de cabeçalho que será salva como título, página um, diretamente em Eu também farei as categorias mais populares. Eu só tenho que copiar o estilo daqui. Eles são todos iguais. Copiar. Venha aqui. Só tenho que substituí-lo assim. Salve o navegador. Aqui. É isso. Bom? Portanto, o PY tem 12 pixels, acho que devemos fazer com quatro pixels. Sim, isso é beta agora. Tudo bem, então vamos continuar. linha de Vanessa agora é mapear os dados e depois exibi-los na tela. Além de estilizar o item para que fique bem aos olhos dos usuários finais. Aqui, vamos ter um div, dê a ele um nome de classe, grid dash. Então, vamos fazer com que seja uma grade de exibição. Em um dispositivo médio. Queremos que a grade exiba as colunas seis. Em seguida, dê ao espaço cinco, preenchendo a parte superior e inferior, cinco, preenchendo para a esquerda e o padrão para a direita. Vamos fazer isso também. Vamos começar a mapear as categorias. Categorias, pontos, mapa. Eu acredito que todos vocês podem mapear por meio de um item. Não há mais muita coisa para todos vocês, porque estamos fazendo isso nas últimas quatro a cinco palestras no momento. Então, sim, eles podem itens que representam cada elemento corretamente, dentro da matriz. E aqui vamos retornar uma interface de usuário, dar a ela um div com o nome da classe. Vamos dialisar qual será o padrão div, vamos fazer com que ele exiba o flex. Justifique o conteúdo para centralizar. Itens, alinhe. Centro. Em Hoover. Queremos que ele seja escalado de um a cinco e a duração seja 300. Ok, tudo bem. Fechado sob dv. De novo. Aqui eu vou fazer IMG, SRC, item igual, imagem de pontos. Feche isso. Quando você economiza. Vamos tirá-lo no navegador. Opa, nada está aqui. Certo, pessoal. Vamos fazer assim. Dê uma olhada. Você pode ver? Funciona. Isso está lindo. Ok, vamos analisar o topo agora mesmo. Então, a imagem, vamos dar uma alternativa. Se o link da imagem ficar inativo, algo mais pode realmente aparecer na tela. Agora, a alternativa, ok, eu vou fazer o nome do ponto do item. Então, na verdade, quando o link da imagem estiver morto, esse cara vai aparecer, que é o nome do item. Deixe-me mostrar, por exemplo a. Erro neste momento, quando eu salvo no navegador, você vê que ele vai exibir os nomes, certo? Então, essas são as alternativas, certo? Bom. Eu lhe disse no início deste curso que vou tentar, tanto quanto possível explicar tudo de forma simples, para que todos entendam bem o suficiente. E, a propósito, varia a voz de Albert Einstein. Tudo legal. Quando você verificar o console, você verá este aqui. Então, neste momento, quero que você pause o vídeo e tente tanto quanto possível, implementá-lo do seu jeito. Bem-vindos de volta a todos. Agora, eu quero ajudá-lo a resolver esse problema. Na verdade, não é um problema, ok? Então, isso é apenas uma coisa muito simples que todos podem fazer. Então, temos que especificar a chave, certo? No nível superior. Vou fazer um item muito difícil, ID, porque ID é algo que pode ser usado para identificar as categorias de forma exclusiva. Vamos refrescar. Bom. Você pode ver que é móvel, responsivo. Difícil, tudo bem, então tudo está funcionando perfeitamente, conforme o esperado. Isso é tudo por enquanto. E na próxima palestra, começaremos a implementar os componentes do boletim informativo. Te vejo então. 68. 66 Contagem de Cateogry de tendência: Então, rapidamente, vamos prosseguir com o componente de boletim informativo VS Code. E então temos que abrir os componentes do boletim informativo. Ok, rapidamente, Let's run died dentro do componente do aplicativo. Agora vamos começar. Vamos dar um nome à classe desse defeito. Então, podemos estilizá-lo. A largura máxima será, como de costume, de 15, 20 pixels. A margem será Otto. O teste. Vamos torná-lo branco. Acolchoamento à esquerda e à direita. Vamos fazer com que caia. Então. O BG, que é a cor de fundo, vamos especificar nossa própria cor personalizada. Então eu vou fazer 24, 26 para ser outro div com o nome da classe. Desta vez, vou fazer uma grade de exibição automática com o máximo de traços e um dispositivo grande. Queremos que ele cumprimente a coluna três. E então o div com o nome da classe. Então, dispositivo destravado, vamos fazer com que seja bom. Margem, superior e inferior. Vamos fazer cinco ou quatro. Ok. Vamos usar uma etiqueta principal e eu darei bons conselhos sobre como melhorar seu piso. Vamos ter uma etiqueta p aqui. Logan, sim. Ok, vamos salvar o aplicativo para ver o que temos no navegador. Outro div, dê um nome de classe, e então eu vou fazer MEU dash four, certo? Dentro desta div. Teremos outro div com o nome da classe e , em seguida, teremos um display flex. Portanto, a direção da flexão é cólon. Em um dispositivo menor. A direção da flexão será em linha. Vamos alinhar os itens. Centro. Justifique o conteúdo. Espaço entre. A largura será a largura total, o que a torna 100%. Ok? Tudo bem, estamos nesta div, vamos ter uma tag de entrada aqui. A entrada é fechada com uma etiqueta de fechamento automático. Vamos dar a ele um nome de classe. P traço três. Vamos ter uma tela flexível com a qual ficará cheia. Em seguida, arredondado. Teste médio, vamos torná-lo preto. Bom. E o tipo de entrada é igual a e-mail. Vamos dar a ele um espaço reservado. Vou enviar um e-mail quando você salvar no navegador. E aqui está. Ok, então o próximo termo é criar a navegação. Então, logo após a tag de fechamento do campo de entrada, teremos uma garrafa. Dê a esse botão um nome de classe e depois estilize-o. O plano de fundo será um plano de fundo personalizado. Então eu vou fazer aquelas setas D, F, a. O teste é amplo. Queremos que a borda seja um pouco curvilínea. As fontes terão largura média. Então, a largura do botão, vamos fazer com que seja 200 pixels. Margem esquerda. Vamos fazer com que a margem esquerda seja quatro. E, em seguida, marque a margem superior e a margem inferior. Vamos fazer com que sejam seis. Margem esquerda e margem direita. Além disso, vamos fazer seis. Então. Fronteira. Nenhum. Então, aqui vou me notificar com segurança. Você pode ver aqui Acho que a largura do botão não é. Tudo bem, pessoal, aqui deveriam ser pixels, certo? Bom. Então, logo após o encerramento da div, teremos uma tag P. E eu vou fazer. Então. Na verdade, isso ajudará a criar espaço intermediário. E eu vou fazer aqui. Vamos ter span, dê a ele um nome de classe. Temos que estilizá-lo. Teste, teste interno vai ficar bem. Só precisamos usar a mesma cor aqui, então copie e cole. Tudo bem, por fim, o que vou fazer agora é destacar a etiqueta de fechamento capturada e fechá-la aqui. Então, depois disso, logo abaixo da div de fechamento, teremos uma seta de cobertura. Dê uma aula. Então, isso traçará a linha intermediária. Então se preocupe, eu vou te mostrar, ok, vamos fazer um comentário sobre eles. Salve o aplicativo. E agora temos algo assim. Parece bom. Remova os comentários e depois o nome da classe. Eu vou fazer. Meu traço oito. Para estilizar o engate estão o traço g, traço cinza 700 na borda. Trace um. Aqui estão os resultados. Ok, então essa linha aqui. Acho que tudo é legal. Sim, então, novamente, vamos examinar essas coisas aqui porque eu não gosto da forma como o botão aparece. Então fique por aqui. Meu E6. P x é três, e então P Y é três. Ok? Então, acho que temos que adicionar um preenchimento a ele. Então, eu vou fazer PY, que é preenchimento, parte superior, preenchimento inferior. Vamos fazer com que sejam três. Salve nossos olhos. Parece muito bom e eu adoro isso. Por enquanto, isso é tudo para os componentes do boletim informativo. E na próxima palestra, prosseguiremos com o FUTA. Nos vemos na próxima palestra. 69. Componente de 67 rodapé: Bem-vindos de volta a todos. Tudo bem, então, na palestra anterior, implementamos o componente de boletim informativo. Com certeza, tudo parece bem conforme o esperado. Então, nesta palestra, prosseguiremos com a implementação do FUTA. Volte para o VS Code, abra o Explorer e aqui estão os anos completos de Todd. Cada FCE gera nossa linha de tônus venoso de componentes funcionais para importar os ícones de mídia social necessários que serão usados no rodapé. Então, aqui eu vou fazer em potes FA, driblar a vírgula quadrada. E isso deve ser o triplo B, depois f, um quadrado do Facebook, FAA, quadrado do GitHub, Instagram. E, por último, FA, Twitter. E tudo isso vem dos ícones do painel do React. E então temos que resolver, consertar com o mais simples que temos, quadrado de reinicialização FH, f. F é quadrado grande, quadrado GitOps, Instagram e Twitter. Tudo bem, vamos continuar. Agora. Vamos dialisar o div. Então, teremos a largura máxima de 15, 20 pixels. A margem será automática. padrão X, que é da esquerda para a direita, serve para preencher a parte superior e inferior, da parte inferior até a cor do plano de fundo. Tudo bem, então vamos copiar alguns dos materiais do boletim informativo. Ok, então essa é a cor de fundo que usamos. Então, eu vou fazer assim. Tudo bem. Vamos ter outra div, dar a ela um nome de classe, e depois ficaremos na parte superior e inferior, a parte inferior será 16. Mas então o padrão esquerdo à direita é quatro. Vamos ter uma grade de exibição. E em um dispositivo grande, queremos que a grade exiba três colunas. Então, a diferença, a diferença é oito. Os testes dão a ele uma cor de grade verde 300. Legal. Outra div, certo, dentro dessa div, teremos uma tag principal. Então eu vou fazer isso o mais rápido possível para estilizar o Adriano, dar-lhe uma largura total. O teste será de três x L. A fonte estará em negrito. A cor vai ser laranja. Dash 500. Linda. Agora vamos ter uma etiqueta p, certo? Quando a tag p, vou copiar e colar o teste fictício. Vamos formatar o código. Depois de fechar a tag p, teremos outro div, daremos a ele um nome de classe e, em seguida, faremos com que ele exiba flex. Justifique o conteúdo. Espaço entre dispositivos médios. Vamos ter a largura de 75 por cento, margem superior e margem inferior. Vamos fazer com que sejam seis. E aqui está isso. Lee é onde exibiremos o ícone. Ok, então primeiro vamos ter o tamanho quadrado do Facebook. Vamos fazer com que seja 30. Em seguida, destaque, duplique quatro vezes. Este lugar será o Instagram, FE, Twitter, GitHub Square. E por último, FE drible ao quadrado. Tudo bem, vamos economizar. Vamos executar isso. O componente diretamente no aplicativo G está aqui. Teremos uma palestra completa para importá-la na parte superior. Salve no navegador. Eles são esses. Você pode ver? Dê uma olhada. Facebook, Instagram, Twitter, GitHub e o drible. Minha porta. Não apareceu como um espectador. Não se preocupe. Vamos dar a ele um treinador profissional. Então, vamos fazer isso rapidamente. Então, logo após esse div de encerramento, teremos outro div com o nome da classe. Desculpe pessoal, certo, dentro da div. Em dispositivos maiores, teremos seu traço de extensão de coluna, é verdade. Vamos ter uma tela flexível que justifique o espaço do conteúdo entre as seis primeiras margens. Outro div, certo? Dentro desta div, teremos um engate seis mais escuro. E eu vou fazer a localização aqui. Eu vou fazer className da mesma forma. Vamos fazer com que os telefones sejam médios. O teste. Vamos usar um teste personalizado aqui. Então eu vou fazer 999. Tudo bem? Vou te dar um pequeno toque de verde, certo? Agora vamos ter em tudo que pelo menos você escreverá que não era um UL. Teremos os itens da lista. Então, aqui, dê um nome de classe. O preenchimento da parte superior e inferior servirá para testar o ASM, o que implica no tamanho da fonte e nos destaques da altura da linha, precisamos duplicá-lo três vezes. Então, aqui eu vou fazer a cidade de Nova York. Eu vou fazer EUA, Índia. Por fim, temos o Canadá. Eu amo muito mais o Canadá, certo? E faz, aliás. Então, o que é, agora, vou destacar essa div. Em seguida, vamos duplicá-lo três vezes. 123. E esse é o verdadeiro d que criamos. Salve e vamos ver o que temos no navegador. Tudo parece bem, mas com certeza, esse não é o resultado esperado. Então, eu não gosto da forma como essas coisas estão espalhadas. Portanto, volte ao código VS, a menos que corrija isso rapidamente. Basicamente, é aqui que está o problema. Aqui, dissemos que, em dispositivos maiores, queremos que seja a coluna três da grade. Mas o problema é que tudo estava misturado. E eu acho que essa é uma das desvantagens do vento de cauda. Você tem que estar fazendo o traço três da coluna. Se você não usar esses dados aqui, eles não funcionarão para você. Então, quando você faz o Columbus dash three, ele o divide em três colunas. É quando tudo vai ficar bem. E você vai ter algo assim. Dê uma olhada. Você gosta disso? Tudo bem pessoal, esse é o fim da palestra e acredito que tudo está conforme o esperado. Você pode ver? 70. 68 Teste e fixação: Bem-vindos de volta a todos. Tudo bem, então, na palestra anterior, implementamos o componente de boletim informativo. Com certeza, tudo parece bem conforme o esperado. Então, nesta palestra, prosseguiremos com a implementação do FUTA. Volte para o VS Code, abra o Explorer e aqui estão os anos completos de Todd. Cada FCE gera nossa linha de tônus venoso de componentes funcionais para importar os ícones de mídia social necessários que serão usados no rodapé. Então, aqui eu vou fazer em potes FA, driblar a vírgula quadrada. E isso deve ser o triplo B, depois f, um quadrado do Facebook, FAA, quadrado do GitHub, Instagram. E, por último, FA, Twitter. E tudo isso vem dos ícones do painel do React. E então temos que resolver, consertar com o mais simples que temos, quadrado de reinicialização FH, f. F é quadrado grande, quadrado GitOps, Instagram e Twitter. Tudo bem, vamos continuar. Agora. Vamos dialisar o div. Então, teremos a largura máxima de 15, 20 pixels. A margem será automática. padrão X, que é da esquerda para a direita, serve para preencher a parte superior e inferior, da parte inferior até a cor do plano de fundo. Tudo bem, então vamos copiar alguns dos materiais do boletim informativo. Ok, então essa é a cor de fundo que usamos. Então, eu vou fazer assim. Tudo bem. Vamos ter outra div, dar a ela um nome de classe, e depois ficaremos na parte superior e inferior, a parte inferior será 16. Mas então o padrão esquerdo à direita é quatro. Vamos ter uma grade de exibição. E em um dispositivo grande, queremos que a grade exiba três colunas. Então, a diferença, a diferença é oito. Os testes dão a ele uma cor de grade verde 300. Legal. Outra div, certo, dentro dessa div, teremos uma tag principal. Então eu vou fazer isso o mais rápido possível para estilizar o Adriano, dar-lhe uma largura total. O teste será de três x L. A fonte estará em negrito. A cor vai ser laranja. Dash 500. Linda. Agora vamos ter uma etiqueta p, certo? Quando a tag p, vou copiar e colar o teste fictício. Vamos formatar o código. Depois de fechar a tag p, teremos outro div, daremos a ele um nome de classe e, em seguida, faremos com que ele exiba flex. Justifique o conteúdo. Espaço entre dispositivos médios. Vamos ter a largura de 75 por cento, margem superior e margem inferior. Vamos fazer com que sejam seis. E aqui está isso. Lee é onde exibiremos o ícone. Ok, então primeiro vamos ter o tamanho quadrado do Facebook. Vamos fazer com que seja 30. Em seguida, destaque, duplique quatro vezes. Este lugar será o Instagram, FE, Twitter, GitHub Square. E por último, FE drible ao quadrado. Tudo bem, vamos economizar. Vamos executar isso. O componente diretamente no aplicativo G está aqui. Teremos uma palestra completa para importá-la na parte superior. Salve no navegador. Eles são esses. Você pode ver? Dê uma olhada. Facebook, Instagram, Twitter, GitHub e o drible. Minha porta. Não apareceu como um espectador. Não se preocupe Vamos dar a ele um treinador profissional. Então, vamos fazer isso rapidamente. Então, logo após esse div de encerramento, teremos outro div com o nome da classe. Desculpe pessoal, certo, dentro da div. Em dispositivos maiores, teremos seu traço de extensão de coluna, é verdade. Vamos ter uma tela flexível que justifique o espaço do conteúdo entre as seis primeiras margens. Outro div, certo? Dentro desta div, teremos um engate seis mais escuro. E eu vou fazer a localização aqui. Eu vou fazer className da mesma forma. Vamos fazer com que os telefones sejam médios. O teste. Vamos usar um teste personalizado aqui. Então, eu vou fazer 999. Tudo bem? Vou te dar um pequeno toque de verde, certo? Agora vamos ter em tudo que pelo menos você escreverá que não era um UL. Teremos os itens da lista. Então, aqui, dê a ele um nome de classe. O preenchimento da parte superior e inferior servirá para testar o ASM, o que implica no tamanho da fonte e nos destaques da altura da linha, precisamos duplicá-lo três vezes. Então, aqui eu vou fazer a cidade de Nova York. Eu vou fazer EUA, Índia. Por fim, temos o Canadá. Eu amo muito mais o Canadá, certo? E faz, aliás. Então, o que é, agora, vou destacar essa div. Em seguida, vamos duplicá-lo três vezes. 123. E esse é o verdadeiro d que criamos. Salve e vamos ver o que temos no navegador. Tudo parece bem, mas com certeza, esse não é o resultado esperado. Então, eu não gosto da forma como essas coisas estão espalhadas. Portanto, volte ao código VS, a menos que corrija isso rapidamente. Basicamente, é aqui que está o problema. Aqui, dissemos que, em dispositivos maiores, queremos que seja a coluna três da grade. Mas o problema é que tudo estava misturado. E eu acho que essa é uma das desvantagens do vento de cauda. Você tem que estar fazendo o traço três da coluna. Se você não usar esses dados aqui, eles não funcionarão para você. Então, quando você faz o Columbus dash three, ele o divide em três colunas. É quando tudo vai ficar bem. E você vai ter algo assim. Dê uma olhada. Você gosta disso? Tudo bem pessoal, esse é o fim da palestra e acredito que tudo está conforme o esperado. Você pode ver? 71. 69 clone de Netflix (criar aplicativo de reação): Bem-vindos de volta a todos. Nesta seção do curso, começaremos a construir a colônia Netflix. E, como sempre, vamos começar do zero para instalar um novo aplicativo React. Então, diretamente no desktop, vamos criar rapidamente um novo diretório chamado clone da Netflix. Não fiz isso. Arraste e solte a pasta, à direita, dentro do código VS. Só precisamos fechar a página de primeiros passos. Tudo bem, então eu vou dizer que sim. Em seguida, feche esta página maximize a tática de controle de pressão do VS Code para abrir o terminal integrado do VS Code. Ou você também pode encontrá-lo no menu superior, dominó no novo terminal. Deixe-me arrastá-lo ou construir, aí vai haver, então aqui eu vou fazer e ser x, create dash , react, dash n. Como normalmente fazemos, vamos instalá-lo em um diretório chamado cleanse. E, claro, você sabe que o React js é usado para criar um aplicativo de front-end. Essa é a razão pela qual sempre o instalamos em uma reclamação direta. Pressione a tecla Enter para fazê-lo disparar. E com certeza, a instalação definitivamente demoraria um pouco. Então, eu tenho que acelerar a palestra. O React foi instalado com sucesso. Aqui eu vou fazer npm. As startups estão certas, vou fazer o cliente de CD e depois o npm start. Tudo está funcionando conforme o esperado. Aqui está a página de amostra. Então, vamos limpar rapidamente o código de volta para o VS. O código foi recusado. Abra o SRC. Não precisamos do teste de configuração dot js. Selecione, pressione a tecla de comando no teclado e toque no trackpad para selecionar relatórios como vitaes, logotipo dot SVG up test.js e tudo isso que não precisamos. Tudo bem, então, depois de fazer isso, clique com o botão direito do mouse e mova-o para a lixeira. Abra o aplicativo Js, o logotipo desapareceu. Temos que limpá-lo. Além disso, não precisamos de nada aqui dentro do aplicativo js. Então, vou destacar tudo, desde a do cabeçalho de abertura até a tag de fechamento do cabeçalho . Limpe-o. Certifique-se de salvar. Vamos voltar ao index.js. E, com certeza, não precisamos do relatório de sinais vitais da web e de todas essas coisas aqui. Limpe-o. O que é de novo? Vamos salvar o aplicativo e está tudo bem. O navegador, esses são os resultados esperados. Tudo bem, então nesta palestra, começaremos a criar as páginas e os componentes. Te vejo então. 72. 70 Componentes e páginas: Nesta palestra, vamos começar a criar os componentes MPGs. Então, usando a receita do SRC, crie uma nova pasta chamada componentes. Outro, diretamente dentro do SRC. E vou chamar essas páginas de outra. E isso será chamado de seus T's. E por último, isso será chamado de barraca. Bom. Certo. Não seria no diretório de páginas que teríamos páginas como a página de login, filme Pitch, a inscrição e muito mais. Então, vamos fazer isso rapidamente. Faça login em peach.genome ways, você também pode fazer o GSS, se desejar. Mas eu sempre gosto de usar a extensão dot js. Novamente, diretamente nas páginas. Novo arquivo, peach.genes. Aqui está o jogador que nos convida. Então esse será o componente ou página do reprodutor de filmes. Veja aqui que teremos o programa de TV dot js. O filme ph dot g é. Então vamos ter netflix dot g is. Tudo bem, então, depois de criar as páginas, vamos criar rapidamente os componentes relacionados. Logo quando o pacote de componentes clicar com o botão direito do mouse e, em seguida, em um novo arquivo, teremos a imagem de fundo dot g está aqui. Novamente. Metade da receita tinha nossos pontos. Então, tudo bem, por enquanto, à medida que prosseguirmos com as palestras, criaríamos mais componentes. Tudo bem, então, depois de fazer isso, vamos gerar rapidamente os componentes funcionais, diretamente com ele. Então, eu só tenho que fechar todos eles a partir daqui, fechar os componentes. E então, na página de login, vou fazer nosso FCE. Boom, sem mais nem menos. Netflix ou um reprodutor FCE, uma inscrição no FCE ou um FCE. E isso deve ser aplicado a todas as páginas e componentes. É tão simples quanto isso. Ok, vamos trabalhar no componente. Tudo bem, agora terminamos de configurar as páginas e os componentes. Na próxima palestra, vamos configurar nossas rotas. Nos vemos na próxima palestra. Mantenha o cuidado focado e holístico. 73. 71 Configurando as rotas: Para começar com a rota, primeiro, temos que instalar o roteador React fazendo aqui, está aqui? Eu só tenho que copiar esse comando. E com certeza você pode acessar NPM js.com slash packages slash React router, fazer e depois copiar o comando de instalação aqui. Certo? Estamos no terminal. Vou fazer o Controle C para parar o servidor atualmente em execução e depois colar o comando npm, install, React, router, dash, não aperte a tecla Enter para ativá-lo. Instalado. Bem sucedido. Portanto, o próximo passo é implementar o comando de rotas P para abrir a caixa de pesquisa na parte superior. E agora, você deve saber como fazer isso. E então eu vou configurar o G está aqui. Vamos fechar o Explorer. Primeiro. Vamos importar rotas e rotas de roteadores de navegadores. Deixa eu te mostrar. Eu vou fazer em vasos, navegador fora, coma, rotas, rotas, assim. Todos esses pacotes viremos da rota do React dash. Eu simplesmente não gosto disso. Tudo bem, então, depois de fazer isso, vamos configurar rapidamente as rodadas. Então, aqui vou excluir tudo porque queremos agrupar todo o aplicativo diretamente no roteador do navegador. Então, eu vou fazer um roteador de navegador. E boom, eles servirão como nódulo principal por enquanto. Então, por dentro, teremos as rotas. Portanto, isso inclui todas as rotas às quais teremos direitos de acesso. Vamos especificar rotas individuais. Sim, então eu vou fazer rotas como essas. Então isso representa cada rota que vamos ter. E isso fechará todas as rotas que teremos no aplicativo NPR. E então, dentro das rotas, vamos resumir isso com o roteador do navegador , tão simples quanto isso. Então, ao inserir as rotas individuais, vou fazer exatamente. Então, vamos definir o caminho exato. O caminho será igual à barra, vamos supor que faça login, ok? Então, sempre que seguimos esse caminho, temos que abrir um elemento, neste caso, o componente de preocupação. Então eu vou fazer elementos. Então, os elementos que queremos abrir serão uma página de login de cartão competente. Certifique-se de fechá-lo. O que é a etiqueta de fechamento automático? Além disso, certifique-se de importar a página de login na parte superior. Então, o que vou fazer agora é fechar a rota com uma etiqueta de fechamento automático. Agora, vou destacar e duplicar seis vezes. Exatamente assim. Aqui temos um alvo, a inscrição. Quando seguirmos esse caminho, abriremos a página de inscrição. Certifique-se sempre de importá-los na parte superior. E essas são as páginas que criamos anteriormente nesta palestra. Então, nada é novo por aqui. Então, quando atingimos esse caminho, queremos nos abrir. Deixe-me mostrar também o pH de login quando entrarmos em contato. Ok, vamos abrir os objetos. De novo. Estou tentando, tanto quanto possível, garantir que todos entendam isso bem o suficiente. Quando atingirmos as rotas de inscrição, abriremos a página de inscrição e assim por diante. Aqui. Eu vou jogar. E também temos que abrir a página do jogador. Vamos fazer aqui, TV. E isso abrirá os programas de TV. Isso aqui abrirá a página inicial. E, nesse caso, a página inicial é a Netflix. Ok. Acho que com isso terminamos. Deixe-me verificar isso agora mesmo. A página de inscrição, a página do filme. Ok. Também temos que abrir a página do filme. Então eu vou fazer aqui v. Então temos que abrir a página do filme. O que significa se inscrever novamente? Acho que fizemos todas as paradas por aqui. Tudo bem, então vamos dar uma olhada. Quando você salva o aplicativo. Aqui, vou fazer npm start. Vamos dar uma olhada no navegador. E agora estamos na página inicial, que é a Netflix dot js. Então, eu vou fazer o login com barra. E agora estamos na página de login. Mais uma vez, tire a barra. Eu vou fazer Slash, inscrever-se. Agora. Deixe-me ampliar um pouco. Agora estamos na página de inscrição. Então é exatamente assim que vamos fazer isso. Para testar todas as rotas. Temos que testá-lo. Que bagunça de novo, vamos fazer TV. E isso nos levará ao componente ou página do programa de TV. Então, todos os seus artistas estão trabalhando perfeitamente bem. Você também pode testar seus fins. Isso é tudo por enquanto. Na próxima palestra, começaremos a criar a página de inscrição e login. Nos vemos na próxima palestra. 74. Componente de reutilização de imagem de fundo: Nesta palestra, vamos criar os componentes reutilizáveis da imagem de fundo. Então, abra rapidamente a imagem de fundo ponto g é, ei, não é? Portanto, antes de prosseguirmos, precisamos instalar componentes estilizados. Sim, vamos falar sobre as zombarias do MPM. Ei, é para instalar o componente estilizado? Você só precisa copiar o comando aqui. Ou você pode fazer componentes de painel no estilo npm install. Para npm install style dash components, precisamos parar o neurônio atual e pesquisar novamente pressionando Control C e depois colar o comando aqui, npm, que é instalado no estilo dash components. Portanto, o componente de estilo é o que usaremos para estilizar nossa obrigação. Basicamente, o componente inicial é uma solução de mosaico CSS e JS específica do React que cria uma plataforma para os desenvolvedores usarem seu código CSS real para estilizar seus componentes. Sim, então, na verdade, a forma como fazemos uso disso é especificando os literais temperados. Não se preocupe, você verá como funciona em um G V. Não instalei o componente de estilo aqui em segundo plano, nós também geramos o componente funcional. Então, primeiro, aqui, temos que importar Stout a partir de componentes robustos. E logo abaixo, vou fazer const background container equa, start dot div. Então, é assim que se usa os componentes robustos. E feito isso, todo o nosso CSS será escrito entre os litros temperados. Portanto, temos que especificar os literais do modelo. E, a propósito, isso é apenas o Ártico. E o Arctic está localizado no canto superior esquerdo, logo abaixo da tecla Escape do teclado. É aqui que Lee é onde vamos escrever o CSS. Então, agora, tendo feito isso, vou copiar essa aula assim. Aqui. Eu vou fazer assim. Sim. Agora temos que trabalhar na imagem de fundo. Vou fazer IMG, SRC, equa, voltar aos materiais da Netflix e depois abrir. Eles poderiam ajudar e copiar o link para a imagem de fundo do clone da Netflix. Aqui está o link, sim, então você só precisa copiar o link em segundo plano da Netflix. Ele está localizado diretamente nos materiais da Netflix. E então abra o auxiliar de código. Aqui. Vou apenas colar, fechá-la também com a tag de fechamento automático. Temos que especificar a alternativa. Eu vou fazer aqui. Igual, conexão com a Internet. Exatamente assim. Sim, quando você salva , tudo bem, agora temos que estilizar essa imagem. Então, volte para os componentes robustos à direita, entre os literais do modelo. Portanto, o estilo do aplicativo ocorreria aqui. É tão simples quanto isso. Então, vamos especificar a altura da imagem de fundo. A altura. Vamos fazer com que seja 100 alturas de visão. Tudo bem, então, antes de prosseguirmos, quero apresentar a você a inteligência de componentes de estilo que o ajudará a exibir as opções diretamente no IntelliSense. Então, por exemplo, se você digitar hedge, ele exibirá a opção de altura. Então abra as extensões. A extensão que vamos definir para a ferramenta de destaque de código VS para o componente padrão. Então, aqui eu vou fazer VS code dash stout, componente grande. Aqui está. Portanto, essa é uma ferramenta de destaque de sintaxe para instalação de componentes estilizados. Eu costumava tê-lo antes. Eu o excluí simplesmente porque quero instalá-lo do zero para um entendimento adequado. Agora terminei de instalar a ferramenta de realce de sintaxe, que precisa fechá-la. Com certeza, alguns de vocês estão me perguntando o tema que estou usando para meu código VS. Então, dentro do decodificador, novamente, você só precisa configurar sua miragem. Aqui está. Portanto, esse é o tema que estou usando para o meu VS Code. E no final, você verá o botão Instalar. Então, instale-o e você começará a usar exatamente a mesma coisa com seu instrutor. Ensinar bem. Linda. Feche isso. Sim, então eu vou salvar e depois vamos voltar para o Explorer. Feche aqui embaixo. Vamos especificar a largura. Agora, quando eu faço isso, você consegue ver os direitos dentro do IntelliSense? Mostra as opções. Eu adoro isso. Isso facilita as coisas. As empresas instaladas terão uma largura de visualização de 100. E, por favor, sempre termine com ponto e vírgula. Se você não terminar com ponto e vírgula, definitivamente teremos problemas. Feito isso, queremos estilizar a tag IMG logo abaixo. Vou abrir e fechar colchetes do IMG. Dê a ele uma altura de 100 de altura de visualização, uma largura de 100 de largura de visualização. Tudo bem, então terminamos com isso. Só teremos que salvar os incautos. Você definitivamente verá o que fez em um GP. Então, só precisamos iniciar o aplicativo npm start. Se você quiser ver o que fizemos até agora, tudo o que você precisa fazer, Comando P, abra o aplicativo js, ok, por enquanto, só preciso fazer um comentário sobre eles. Sim, e eu vou fazer uma imagem de fundo como esta. Quando você salva e finaliza a compra no navegador. Aqui está. Você pode ver que esses são os componentes reutilizáveis em segundo plano que acabamos de criar. Tudo bem. Você pode ver? Está bem. Perfeito. Eu adoro isso. Eu só tenho que limpá-lo e depois remover o comentário aqui. Salvar. Volte ao normal. Vamos voltar para a página inicial. Remova a barra de TV. E ele tem pelo menos a página inicial, Netflix. Tudo bem. Deixe-me formatar o código com prettier. Tudo bem, então isso é horrível agora para os componentes reutilizáveis em segundo plano. E na próxima aula, também criaremos o componente reutilizável do cabeçalho . Te vejo então. 75. 73 Componente reutilizável de encabeçamento: Na palestra anterior, criamos os componentes reutilizáveis da imagem de fundo. Então, nesta palestra, criaremos o também criaremos o componente reutilizável do cabeçalho. Então, Command P e, em seguida, configure para head ArcGIS. E, claro, também criamos todos esses componentes na palestra anterior. Bom. Então, estamos neste componente primeiro, temos que importar o componente padrão, importar estilos de componentes robustos. E aqui, eu só tenho que limpar isso. Agora vou fazer aqui o contêiner de cabeçalho. Portanto, temos que criar isso rapidamente. Estou aqui e vou fazer o header container equa stout dot d. Então, é assim que se cria seu componente inicial. Feito isso, precisamos especificar o buck tq que não possamos escrever nossos estilos intermediários. Aqui é pelo menos onde vamos estilizar essas coisas. Deixe-me ampliar um pouco. Você pode ver o consecutivo aqui e o fechamento consecutivo aqui. Eu acho que é muito assim. Você tem que diminuir o zoom. Ótimo. Vamos prosseguir. Aqui. Vamos ter um div, dê a ele um nome de classe ou logotipo. Logo na definição, teremos uma tag IMG, SRC equa, copie e cole o link do logotipo da Netflix diretamente do código help out. Eu já copiei o link. Então, volte para o Catawba, desfaça isso mais de perto com a etiqueta de fechamento automático. E então temos que especificar a alternativa que vou fazer aqui. E eu vou fazer uma conexão com a internet. Dê uma olhada na internet aqui. Tudo bem? Feito isso, criaremos os painéis do lado fora do div com o nome da classe Logo. Vamos fazer um passeio de barco com o clique deste botão. Vamos navegar até a página de login ou a página de inscrição, dependendo da página em que você está atualmente. Sim. Então, se você estiver disposto a se inscrever na página, a parte inferior mostrará o login. Então, se você estiver disposto a fazer login na página, a parte inferior mostrará a inscrição. Então, vamos fazer essa limpeza rápida primeiro. Bem no topo. Vamos importar. Use navegações a partir de adivinhe onde reator, depois de fazer isso, eu vou fazer navegações. Vamos ter uma variável chamada navigates. Adquira, use navegadores. Tudo bem, então aqui, ao clicar neste botão, navegaremos até Ada, a página de login ou de inscrição, dependendo da página em que você está atualmente. Então, agora, como fazemos isso? Vou fazer aqui, configurá-lo para nossa função e depois navegar até, vou fazer adereços, pontos. E, claro, essa função também precisa levar adereços para ele. Então, vamos usar adereços para alterar a funcionalidade do barco e também o teste. Então, eu vou fazer se o login de pontos de props for igual a verdadeiro, vamos navegar até o login de barra. Portanto, em todo esse aplicativo, sempre que você seguir esse caminho, você sempre navegará até a página de login para exibição. Fizemos isso na palestra anterior. Aqui, não é? Sim, então, sempre que você seguir essa rota, você sempre navegará até a página de login e o resto da rota, bem como para o componente correspondente, como páginas. Então visite outra pessoa aqui. Vamos navegar até a página de inscrição, fechar o botão inferior direito, o botão. Também precisamos mudar o teste. Deixe-me te mostrar. Eu vou fazer aqui props dot login. Então, se o prompts dot login for igual a verdadeiro, o que faremos é mastigar o teste de login dessa forma. login. Sim. Caso contrário, vamos transformar o teste e o barco em sinal. Não há nada complicado por aqui. Sim, vamos começar a estilizar esse componente muito rapidamente. Mas aqui entre o Ártico, teremos uma tela flexível. Justifique o conteúdo. Espaço entre os itens alinhados ao centro. O acolchoamento será a mira distante de Sarah. Feito isso, temos que estilizar o logotipo. O logotipo, temos que estilizar o IMG, que é a tag IMG que exibe o logotipo. Aqui eu vou fazer IMG, dê uma altura de três rem. O mais grosso é o ponteiro. Agora vamos estilizar rapidamente o tabuleiro. Saia da cinta, aqui mesmo. Vamos fazer as duas coisas neste botão aqui. Dê um acolchoamento, 0,5 rem. E um aro. A cor de fundo, vamos torná-la vermelha. A fronteira será conhecida como o ponteiro do caso. As fontes dentro do barco serão brancas, que é esse cara aqui, o login ou login, raio de fronteira. Vamos fazer com que seja 0,2. Gente, essa é exatamente minha especificação. Portanto, você pode decidir alterar o estilo na última extremidade de acordo com sua própria especificação ou opinião. O peso da fonte será, vamos torná-la mais ousada. E por último, o tamanho da firma, 1,05, rem, lindo. Salvar. Vamos verificar rapidamente o que fizemos até agora. Abra o aplicativo js. Do lado de fora da rota. Vamos renderizar o cabeçalho na parte superior. Isso é apenas, por exemplo, saquê. Salvar diz que os adereços não estão definidos. O que temos que fazer agora é voltar ao cabeçalho. Você pode ver que isso deveria ser um aviso, ok, Salvar. Aqui temos o logotipo e aqui temos o login. Então, ao clicar nesta assinatura aqui, você será redirecionado para a página de login. Dê uma olhada de perto. Estamos exatamente onde está a página inicial, que é a página da Netflix. Agora, quando eu clico no login, dê uma olhada. Agora fomos redirecionados para a página de inscrição. Então, a ideia é simples. Se estivermos na página de inscrição, esse teste aqui será alterado para fazer login. Portanto, se estivermos na página de login, o teste dentro do botão será alterado para fazer login. No momento, talvez você não tenha essa funcionalidade simplesmente porque não implementamos a página de inscrição e a página de login. Vamos fazer isso na próxima aula para que possamos ter uma página de login e inscrição totalmente funcional. Nos vemos na próxima palestra. 76. 74 página de inscrição: Bem-vindos de volta a todos. Nesta palestra, vamos criar a página de inscrição. Então, diretamente no VS Code, vamos abrir rapidamente o Explorer e seguida, abrir o componente da página de inscrição da página. aqui, vamos importar os arquivos necessários. Primeiro, temos que importar a empresa de stout em Pottstown a partir de componentes robustos. E aqui vamos importar o componente de cabeçalho reutilizável, importar o cabeçalho de, Opa, temos que direcionar a barra do componente e, em seguida, o cabeçalho IgA é tão simples quanto isso. E, novamente, também precisamos importar a fundo do componente de aterramento do saco reutilizável da imagem de fundo da barra dos componentes. Ok, mais uma coisa. Também temos que importar o gancho feito nos EUA porque vamos fazer uso dele. Are, agora estamos prontos para ir. Então, aqui, eu vou limpar isso. Em seguida, vou renderizar a classe container. Agora temos que fazer const container equa stout dot d e, em seguida, especificar o verso. Então, vamos abordar o CSS aqui. Amigos. Eu quero que você tome nota de algo aqui. Você vê esse cara aqui. Eles devem estar na convenção de nomenclatura pascal. Portanto, isso implica que você coloca em maiúscula a primeira letra de cada palavra. Aqui está a letra maiúscula C. Bom, certo? Dentro do contêiner, vamos alugar a classe de imagem de fundo reutilizável mais próxima da etiqueta de fechamento automático. Então, aqui vamos ter um div. Vamos dar a ele um nome de classe de conteúdo, certo? Estamos no conteúdo, teremos o cabeçalho reutilizável. E o que vou fazer agora é especificar a sonda de login aqui. Deixa eu te mostrar, abra o cabeçalho. Você pode ver aqui que estamos pegando adereços, então estamos passando o login para esses componentes. Então, se o login do props dot for verdadeiro, abriremos a página de login. E outra. abriremos a página de inscrição tão simples quanto essa aqui Se o login do ponto de props for verdadeiro na votação, mostraremos o login. Agora, também dentro do barco, vamos mostrar o sinal. O objetivo é tão simples quanto isso. Agora, passamos essas sondas de login diretamente para o componente de cabeçalho. Ensino, bom, lindo. Tudo bem, aqui vamos ter um div com o nome da classe body. E exatamente onde no corpo vamos ter outra div, dê a ela um nome de classe de testes. Então vamos ter uma etiqueta de Adriano. E vou fazer filmes, programas de TV ilimitados e muito mais. Novamente, aqui vamos ter um hit por tag. E eu vou fazer o quê? Em qualquer lugar, cancele por vírgula a qualquer momento. Novamente, aqui teremos um hit six tag. Então, esses são os artigos que você pode ver na página de aprovação da Netflix. Sim. Então, na verdade, estamos copiando a partir daí. Então eu vou me preparar para assistir. Digite seu e-mail para criar. Reinicie os direitos de associação, a div de encerramento com o teste do nome da classe. Vamos ter outro div, dê a ele um nome de classe de espuma. E, a partir da espuma, teremos o campo de entrada, o tipo, a senha e o espaço reservado iguais. O que vou fazer agora é senha e o nome igual, senha, simples assim. E, hum, outro, um campo de entrada. O tipo aqui é igual a e-mail, o espaço reservado é igual a e-mail. Ou você pode dizer digite o endereço de e-mail ou algo parecido. Então deixe-me fazer o endereço de e-mail, pessoal de operações. Bom. No nome, e-mail igual. Também feche-o com a etiqueta de fechamento automático. Que mol. Agora, vamos ter dois botões. Aqui. Nós vamos tê-lo comprado. Esta será a votação do Get Started. Destaque e duplique. Esse será o botão de inscrição. Tão simples quanto isso. Tudo bem, então vamos dar uma olhada no navegador para ver o que fizemos até agora. Venha aqui e eu vou especificar o caminho para fazer a inscrição, barra da página de inscrição está correta. Aqui está o componente de fundo da imagem que renderizamos. Aqui está o cabeçalho em que também publicamos. E abaixo, aqui eles escrevem sobre os campos de entrada. Aqui está o botão Começar, a inscrição, o e-mail e o campo de senha, tudo legal. Tudo bem. Parece que não está bem alinhado. Sim, é simplesmente porque não o estilizamos. Então, vamos estilizar rapidamente esse componente para que fique bonito. Volte. A ideia aqui é colocar todos esses bastões em cima da imagem de fundo. Como você pode ver no cabeçalho, está logo abaixo da imagem de fundo. Então, para fazer isso, temos que especificar a posição como relativa, e então a posição desses caras será absoluta. Então venha aqui e eu vou fazer a posição relativa. Feito isso, o conteúdo, que é esse cara aqui, você pode ver tudo por dentro ? Vamos torná-lo absoluto para que ele possa ir direto para cima do componente da imagem de fundo. Eu sei que você entende do que estou falando. E, de fato, um cara esperto. Tudo bem, então eu vou fazer conteúdo de pontos. Então, vamos fazer com que ela posicione os absolutos. Feito isso, o que faremos a seguir é posicioná-lo do zero superior e do zero esquerdo. Então, quando eu fizer isso aqui, também, vamos zerar quando você salva a compra no navegador. Agora temos todos esses termos aqui, assim . Você pode ver? Vou fazer da esquerda, vamos fazer com que seja zero. Então, ao observar a tela, você perceberá que o brilho do fundo é bastante alto. Sim, então vamos fazer com que seja um pouco considerado. Então, isso é o que aparece na parte superior, pode ser mais visível, como esse topo aqui. Então, o que eu vou fazer isso é especificar a cor de fundo. E eu vou fazer RGBA. Zero vírgula zero vírgula zero vírgula zero pontos 79. Essa é minha especificação, certo? Assim, você pode fazer outra coisa do seu lado. Quando você salva e verifica o navegador. Você pode ver agora que temos um histórico considerado. Deixa eu te mostrar. Vamos tirar isso de novo. Salvar. Ao recarregar, você perceberá que o fundo fica muito claro. Então, quando você libera esse cara, Save, agora, isso é considerado um pouco, mas aparece no topo por enquanto. Você pode ver? Eu não sei se você pode ver esses. Ok. Vamos estilizá-lo para caber na tela. Vamos dar uma altura. 100 vh, a largura 100 vh. E você pode lembrar que essa é a dimensão real da imagem de fundo reutilizável. Então, estamos apenas chamando isso aqui para caber na tela da imagem de fundo quando você salva no navegador. Ainda temos algo assim. E eu não sei por quê. Opa, isso deveria ter uma largura de visualização de 100, assim. E você pode lembrar que essa é a dimensão real do componente reutilizável da imagem de fundo. Sim, então estamos trazendo isso aqui para caber na tela, salve, confira o navegador aqui. É mais uma vez? Deixe-me mostrar o que esse cara faz quando comenta Salvar. Agora você pode perceber que o fundo se torna realmente brilhante. Quando você economiza. Parece uma parte do nosso construtor. E é exatamente isso que estamos procurando. Então, aqui eu vou fazer colunas de modelo de grade, engate de 15 V e 85 v h. Agora vamos dialisar o corpo. O corpo. Deixe-me mostrar aqui, está dentro do corpo? Vamos ter uma tela flexível. E a direção da flexão é cólon. Justifique o conteúdo no centro, alinhe os itens ao centro. Quando você salvar, tudo ficará alinhado ao centro. Você pode ver agora o logotipo foi alinhado no canto superior esquerdo da tela. Aqui, o botão de login foi alinhado ao canto superior direito da tela. E na palestra anterior, eu disse que quando você estiver na página de inscrição, isso mostrará o botão de login. Quando você estiver na página de login, essa parte inferior será alterada para se inscrever. Acho que fizemos isso na palestra anterior diretamente no componente de cabeçalho aqui. Então, quando você coloca esses adereços aqui, tudo funciona melhor. Esse cara aqui. Então, isso significa que passamos as sondas de login para o cabeçalho. Então, aqui mostra que os prompts dot login são iguais a true. Então, esse botão no topo da votação aqui será alterado para fazer login, caso contrário, mudará para se inscrever. Mas deixe-me te mostrar rapidamente. Venha aqui. Vamos nos inscrever. Então, quando você salva o aplicativo, o checkout, o navegador, você pode ver agora que projetamos a votação. É tão simples quanto isso. Então, vamos deixar isso como login por enquanto. Vamos continuar com o estilo. Para o teste. Vamos ter uma tela flexível. A direção flexível é coluna. Então, vou copiar daqui desse jeito e depois colar aqui. O tamanho da fonte. Vamos passar pela borda. A cor dos telefones será branca. Vamos tirá-lo no navegador. Você vê tudo bem alinhado, no centro. Ok, vamos fazer algo aqui. Temos que remover o conteúdo justificado para centralizar. Então eu vou fazer o alinhamento do texto. O centro formata o código, salve o aplicativo. E agora eles estão bem no centro. Está tudo bem. Ok. O ninho é a etiqueta principal. Então, se eu acertar uma etiqueta, o preenchimento será 0,25 espaço para o engate para a etiqueta. Para. Então, vamos especificar a margem superior. E eu vou fazer com que seja -1,5 rem. Vamos tirá-lo para que você possa vê-lo claramente. Pressione um comentário sobre o seguro. Você pode ver que eu não gosto dos espaços entre o teste. Você vê que não parecem linhas. Então, como resolver isso é aplicar a margem superior. E também quero que o programa de TV acabe. Então, para o preenchimento, vou tirar o 0,25 rem. Então, eu vou dar 0,25 rem. Bom. H6. O hit F6 tem exatamente o mesmo limite de margem de dividendos , então pode se aproximar. Tudo bom. Tudo bem, então vamos começar a estilizar o campo de entrada, incluindo a parte inferior. Então, aqui, eu vou fazer o formulário de Dodds. Vamos ter uma grade de exibição. Vamos especificar que a largura seja de 60%. Ok? Também precisamos especificar as colunas do modelo de grade. Mas vamos deixar isso por enquanto. Então, aqui vamos estilizar a entrada visualizada, a cor. Vamos torná-lo preto. Perdão? 1,5 rem. O tamanho da fonte, 1,2 rem. E a largura desse campo de entrada será de 45 rem. Vamos dar uma olhada no navegador. Salvar. Eu adoro isso. Então, aqui estão os dois campos de entrada. Não se preocupe com o botão. Na verdade, não chegamos a isso por enquanto. Algo importante que também precisamos fazer é, deixe-me mostrar um olho focado no campo de entrada. Você verá o esboço. Você vê o contorno azul. Eu não quero isso. Então, o que vou fazer agora é fazer previsões. Vamos remover o contorno apenas para que não seja tão simples assim. Então eu não fiz isso. Vamos estilizar rapidamente o corpo. Dê um preenchimento de 0,5 rem, uma aula de borda para finalizá-la com ponto e vírgula e depois com a cor de fundo. Vamos torná-lo vermelho. A fronteira vai ficar entorpecida, mais grossa. Vamos fazer questão de salvar e ver o que temos. Ok, vamos encerrar isso agora. A cor, deixe-me mostrar a cor dos direitos da fonte. Mas na navegação, por exemplo, eles começam na inscrição. Vamos torná-lo branco. O tamanho da fonte. Vamos aumentá-lo um pouco. 1,05 rem. E a largura dessa borda oriental flutuante. Salvar. Confira. Certo. Mas esses não são os resultados esperados. Então, agora temos que obter o resultado esperado. O que vamos fazer é destacar o campo de senha e mostrar o e-mail quando o usuário digita o e-mail e pressionar o botão Começar a abortar. O campo de senha aparecerá e também o botão de inscrição. Deixe-me reiterar. A intenção é ocultar o campo de senha e o botão de inscrição. Então, a princípio, o que você verá é o campo de e-mail n, o botão Começar. Então, quando você digita seu e-mail e aquece o botão Começar, o e-mail e o botão Começar desaparecerão. Em seguida, o campo de inscrição e senha será exibido. Deixe-me mostrar o que quero dizer com isso. Então, role para cima. Agora temos que implementá-lo. O que os americanos, lembre-se que importamos os EUA, fizemos anteriormente. Temos que declarar as variáveis de estado necessárias a serem usadas. Vamos chamá-lo de Mostrar senha. Karma define a senha show para usar o stage. Então, o estado inicial será falso, assim. Agora, vamos condicionar o campo de entrada. Abra os colchetes. Então, se sua senha for igual a, mostraremos o campo de senha. Então, o que vou fazer é copiar o campo de senha como esses destaques capturados e depois colá-lo no meio. Senão. Vamos mostrar o campo do e-mail, recortá-lo e colá-lo aqui. É tão simples quanto isso. Ao salvar o checkout no navegador, agora você não vê mais o campo de senha. Sim, então você precisa digitar algo, certo, para colocar no campo de e-mail e clicar no botão Começar para que o campo de senha apareça. simples quanto isso. Então, agora vamos pressionar uma condição nos botões para que tudo comece a funcionar perfeitamente, conforme o esperado. Rapidamente, vamos formatar o código. Aqui. Vamos ter outro colchete encaracolado. Eu vou fazer. Se a opção mostrar senha não existir. Vamos mostrar como começar a votar a favor e colar aqui. Agora. Vamos mostrar o botão de inscrição. Quando você salva no navegador. Agora, tudo aparece assim, mas também queremos que apareça no canto superior direito do campo de entrada. Agora, venha aqui. Deixe-me mostrar o que nos resta, à direita, dentro da espuma. Temos que especificar as colunas do modelo de grade, um colchete de coluna, um parêntese e um colchete no meio. Então, vou mostrar a senha. Se a opção Mostrar senha for verdadeira. Aqui teremos uma seta F, e aqui teremos uma FOR, estamos tentando particionar as colunas e os erros. Não precisamos COMPRAR UM FOR quando você salva e finaliza a compra no navegador. E são esses, dá para ver que tudo parece como esperado, perfeitamente em bom estado. Então, deixe-me tentar digitar meu e-mail. Digito meu e-mail e depois clico no botão Começar. Por enquanto, nada acontece. Ok, então vamos voltar e implementar o OnClick para começar a votar. Estrague tudo, até onde temos o botão Começar. Então, vou clicar no botão Começar. Vamos mudar o estado inicial para verdadeiro, certo? Então, é mais como um tipo de vibração verdadeira ou falsa agora. Então, agora vou implementar o onclick no botão Começar. Ao clicar neste quadro em. Vamos chamar a função de configuração para atualizar o conjunto de estados iniciais. Mostrar senha. Vamos definir o estado inicial, o verdadeiro. Então, vamos atualizar os estados iniciais para verdadeiros. Nesse caso, esse cara aqui. Então, vou clicar aqui, Comece a votar. Alteramos o estado para verdadeiro e, em seguida, o botão de inscrição aparecerá. É tão simples quanto isso. Então, agora temos que atualizar. Deixe-me limpar meu e-mail e depois começar. Você vê que, ao clicar no botão Começar, o campo de senha que aparece no botão de inscrição também aparece. Aqui você pode digitar sua senha. Então, amigos, é isso que estamos esperando nesta palestra. Além disso, quero mostrar algo que fiz nos bastidores e que você não conhece. Quando você observa esta página? Você pode ver onde meu logotipo da Netflix está começando aqui? Eu também tenho um pouco de espaço aqui. Eu tenho algum espaço aqui no meio. É simplesmente porque, certo, para colocar o cabeçalho, especifiquei um preenchimento de um rem. Então, quando você tirar essa parte aqui e salvar o projeto, volte. Agora, você não tem espaço entre o logotipo da Netflix e a parte inferior. Então, essas linhas não parecem assim. E essa foi a razão pela qual coloquei um padrão aqui para ser wireframe. Agora você pode ver, está linda, tudo legal. Eu adoro isso. Então, França. Na próxima palestra, começaremos a criar a página de login. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 77. 75 Login: Bem-vindos de volta a todos. Na palestra anterior, implementamos a página de inscrição. E, para mostrar, isso está extremamente bonito e eu gosto. Então, nesta palestra, continuaremos criando a página de login. Vamos começar rapidamente. Não precisei usar o código VS. Vou configurar o login peach.genome years e depois abrir a página de inscrição. Temos que copiar quase tudo daqui, assim, que é o impulso de copiar e colar. Sim. Então, o que acontece de novo, agora vamos ter uma embalagem aqui. E eu vou fazer isso deve começar daqui. Para facilitar a leitura. Embalagem igual a ponto robusto dV. Em seguida, especifique a marca inversa. Ele tem, pelo menos, um estilo CSS que acontecerá. Feito isso, vou limpar isso e então teremos um nodo pai chamado wrapper, que é esse cara aqui. A linha Nesta é para renderizar os componentes reutilizáveis da imagem de fundo. Então, agora você vê como um componente reutilizável pode ser útil? Vamos renderizá-lo aqui também. Vamos renderizar o componente reutilizável do cabeçalho. Mas antes de prosseguirmos, teremos um div aqui. Dê a ele um nome de classe do conteúdo de login, como este. Direto para dv. Vamos renderizar o componente do cabeçalho. E todas essas dificuldades. Nós os importamos anteriormente. Nós apenas copiamos a entrada da página de inscrição quando você salva. Ok, vamos dar uma olhada no navegador. Venha aqui. Então, quando você clica nesse login, no canto inferior direito, estamos na página de inscrição. Ele o redirecionará para a página de login. E deixe-me mostrar onde implementamos isso. Venha aqui, fiz um componente rolar até a parte superior e inferior. Então, aqui especificamos o OnClick. Se o login do prop dot for verdadeiro, você será direcionado para a página de login. E ao observar a página de inscrição, você perceberá que os adereços aqui estão logados. É tão simples quanto isso. Agora, quando clicarmos nesse botão, ele nos levará à página de login e à página de inscrição, e à página de inscrição, faça login. E aqui renderizamos o componente reutilizável em segundo plano. E abaixo está o componente do cabeçalho. Não se preocupe, quando começarmos a estilizar a obrigação, tudo aqui dentro do conteúdo será colocado na parte superior do componente reutilizável da imagem de fundo. Vamos continuar rapidamente. Desculpe, certo, depois do cabeçalho. Vamos ter um div com o nome da classe da empresa. A empresa, teremos outro div com o nome da classe da ferramenta e a palavra certa no título. Você vai ter uma etiqueta enorme aqui. E eu vou fazer o registro da forma mais simples possível. Tudo bem, então logo após a div de encerramento do título do nome da classe, teremos outra div. Dê a ele um nome de classe de contêiner, certo? Para aproximar o contêiner div, teremos os campos de entrada, o tipo de entrada, os obrigatórios os textos mais próximos da tag de fechamento automático. Aqui eu vou fazer uma equação de espaço reservado, e-mail. Então você perceberá que eu tenho usado aspas duplas e aspas simples. Isso não importa necessariamente. Sim, então vamos continuar rapidamente. Mas o que vou fazer agora é duplicar esse campo de entrada, destacá-lo e duplicá-lo. Então eu vou mudar essa aqui para senha, porque ela será usada para o campo de senha. Aqui, vou criar a senha logo após o campo de entrada, vamos fazer logo após o campo de entrada, com que um barco seja o próprio botão de login. Tudo bem. Quando você salva no navegador, aqui, não é? Então, agora temos que estilizar os componentes para que tenham uma boa aparência. Aqui, a posição do invólucro será relativa para que possamos realmente colocar esse conteúdo de login diretamente no topo da classe de imagem de fundo para que todo esse conteúdo aqui apareça bem em cima da imagem de fundo. Então, continuo explicando essas coisas repetidamente , simplesmente porque quero que elas fiquem na sua memória. Então, aqui vamos estilizar o login contido. Basta copiar o conteúdo de login de pontos , abrir e fechar o colchete. Agora a posição vai ser, adivinha? Absolutos. Então, de cima para baixo, vamos fazer com que seja zero. Da esquerda. Vamos fazer com que seja zero. Então, com simplicidade, manteremos tudo dentro do conteúdo diretamente sobre o componente da imagem de fundo. E aqui está. Você pode ver agora que tudo está bem em cima do componente da imagem de fundo. Tudo bem, então vamos dar a ele uma altura de 100 pontos de vista. E, uh, também temos 100% de largura de visualização. E com certeza o plano de fundo será o mesmo. Então, eu só preciso ir até a página de inscrição e depois rolar até o final. Vou copiar tudo aqui. Não precisamos perder tempo fazendo essas lonas repetidamente. Desculpe por isso. Eu só tenho que fazer isso no começo, mas não me veio à mente. Salve no navegador. Bom. Tudo bem, depois de fazer isso, temos que estilizar o recipiente firme. Então, o que vou fazer agora é logo após o componente de cabeçalho, criar outro div, dar a ele um nome de classe no formato Dodge wrapper. Então, tudo aqui, copie das faixas 152, linhas 20. Mantenha pressionada a tecla Opção no Mac e pressione a tecla de seta para cima para movê-la para dentro. Se não funcionar para você, você também pode. Destaques e depois Controle X para recortar, cole-o dentro do div com o nome da classe de Form Wrapper. Quando você salva, agora temos que estilizar o Form Wrapper. Dodds, eu, te mostro esse cara. Cópia mais suave. Vamos ter uma tela flexível. A direção flexível é coluna. Alinhe os itens ao centro, justifique o conteúdo para centralizar a lacuna. Será para escalar as alturas. Vamos fazer com que seja 85, 85 v h. Ok, vamos tirá-lo no navegador. Você pode não ver isso claramente, mas agora, esse top está gradualmente tomando forma. Tudo bem, então vamos dialisar o ponto firme. Deixe-me mostrar o formulário. Esse cara aqui. Acabei de copiar e colar. Ok, vamos ter uma tela flexível, flexionar a direção, a coluna, o centro de itens de alinhamento e o centro de conteúdo justificado. Então, o que vou fazer agora é copiar tudo daqui. Vou copiar das linhas 44 a 48. Copie e cole aqui. Salvar. Vamos conferir o formulário. Tudo parece a mesma preocupação. Nós vamos melhorá-lo. Então, a cor de fundo do formulário. Agora vou fazer isso em seis. Seja zero. Vamos contar que 123456 são. Então, deixe-me salvar e dar uma olhada no navegador. Você pode ver que aqui está o que acabamos de fazer agora. Esse cara aqui, eu não sei se você pode ver isso claramente. Vamos voltar. Ok. Vou fazer algo para que apareça claramente aqui. Eu só vou fazer 0.1. Ok? Veja, é exatamente disso que estamos falando. Coloque-o de volta no palco real. Vamos liberar o formaldeído de 70 v h. Agora, ele vai aparecer claramente. O estofamento é para correr. A cor será branca para que o teste dentro da empresa pareça branco. E, hum, o que acontece de novo, vamos dar a ela um raio de fronteira. Queremos que a borda seja um pouco curvilínea. Então, vou usar o ponto zero para chuvas. Dê uma olhada ao salvar no navegador. E aqui está. Você pode ver agora que temos a empresa pronta. A próxima linha do termo é estilizar o campo de entrada e a navegação. E espero que você possa ver isso claramente agora. O melhor é estilizar esse contêiner. Então, podemos empacotar o contêiner de pontos do campo de entrada. E sempre verifique se a grafia do nome do seu cluster está correta. Ok. Flexão da tela. Direção flexível, coluna, uma lacuna. Vamos chegar até eles. Acho que isso é tudo para o contêiner. Então, vamos direcionar o campo de entrada. Aqui temos os imputos. Eu vou te mostrar em um GP, vá até o topo. Aqui está o div com o nome da classe do contêiner. E logo dentro do contêiner, temos os campos de entrada. Então, vamos direcionar os campos de entrada agora e depois estilizá-los. Forneça o raio da borda de ponto zero para o preenchimento em 0,5 rem. Aqui vamos ter um quarto. A largura é de 25 quartos. A altura será de 3,4. Então, vamos salvar e levar para o navegador. A ideia é, você pode ver, parece absolutamente bom. Eu adoro esses. Absolutamente. Isso parece bom. Ok. Então, novamente, temos que sair do modo offline. Você pode ver que quando eu coloco minhas necessidades de console, você verá esse contorno azul. Portanto, é muito fácil fazer isso. Vou fazer um esboço. Vamos fazer com que seja nove. Seguro. Aqui no navegador. Quando você coloca o mouse novamente sobre ele, ele aparece bem. Então, vamos dialisar o parafuso e a votação por login. Para o botão. A separação será de 0,5. Rem. Opa, eu continuo fazendo isso. Eu não entendo. Saia daqui. A cor do plano de fundo. Pode fazer com que pareça simples assim. Fronteira. Nenhum. O mais grosso é o ponteiro, o raio da borda é o ponto zero. Temos que dar a ele um raio de borda igual ao campo de entrada. Então, eu vou copiar esse cara a 0,4 m. Ok, vamos ver. Bom. Agora vamos dar a ele uma altura e um ponto de largura. Para ele. A cor será branca, que é a fonte, o teste escrito dentro do corpo. Deixa eu te mostrar esse cara aqui. E o que vamos fazer. Tweet divertido. Vou fazer com que seja um tamanho de fonte mais ousado. Para fazer com que seja 1,05 rem. Acho que isso é tudo por enquanto. Vamos salvar e levar para o navegador. Tudo parece como esperado, e eu adoro isso. Agora, ao observar o canto superior direito da tela, você perceberá que a parte inferior está mostrando login. Então, quando você clica nesse cara aqui, ele o redirecionará para a página de inscrição. Ei, é que você pode ver? E aqui agora vamos ver o login. Quando você clica no Login, ele o redireciona para a página de login. E, claro, foi aqui que o implementamos. Assim, você pode ler as palestras para entendê-las bem o suficiente e colocá-las em sua memória. Então, vamos ver se há algo a fazer aqui nos componentes de login ou na página de login. Então, eu acho que está tudo bem, certo? Então, isso é tudo por enquanto. E na próxima palestra, começaremos a implementar a autenticação usando as abelhas de fogo. E posso garantir que será bom ver você na próxima palestra. 78. 76 Correção de login: Tudo bem, então, antes de prosseguirmos com a autenticação de inscrição e login, há algo que eu gostaria de informar. Se você observar a tela, perceberá que o formulário não está visível. Não é muito visível como esperado. Você pode ver? Vai ser muito difícil perceber que há algo aqui. Então, vamos fixar essa energia v. Outra observação importante que quero chamar sua atenção é a entrada vista, a altura é muito alta. Sim. Portanto, temos que encontrar uma maneira de reduzir a altura e também fazer com que a empresa fique um pouco mais incapacitada do que antes. Volte para o código VS, role para baixo. Portanto, para o campo de entrada, é extremamente fácil fazer isso. Só precisamos reduzir a altura para 2,4 ram. Você pode ver agora que parece Beta. Então, vamos trabalhar no plano de fundo e na empresa. O que vou fazer, vou destacar isso. Deixe-me mostrar o conteúdo do login. Vou destacar. Então, antes de continuar, quero alterá-los para 0,4. Role para baixo dentro do formulário. Eu só tenho que limpar esse cara e depois colar. Então, vou mudar isso para três quando você salvar e conferir o navegador. E aqui está. Você pode ver, agora parece um pouco mais visível do que antes. Mas outro problema aqui é que o fundo está ficando muito claro e não, não queremos que seja assim. Então, vamos tratar o plano de fundo aqui. Vamos fazer 0,6 e ver qual é o resultado. Bom. Vamos prosseguir para a próxima aula, na qual começaremos a implementar a autenticação de login. Te vejo então. 79. 77 Configurando a base de fogo: Bem-vindos de volta a todos. Tudo bem, então nesta palestra, vamos vincular nosso projeto ao Firebase. Então, para continuar, primeiro, precisamos instalar o Firebase diretamente em nosso projeto. Então, navegue até o VS Code, à direita, usando o terminal. Certifique-se de atender aos clientes C, D. E então o NPM instala o Firebase. Pressione a tecla Enter para ativá-lo. Instalado. Bem sucedido. Então, vamos abrir o arquivo package.json. E aqui está. Aqui. Agora, instalamos o Firebase com sucesso. Então, vá rapidamente para o console do Firebase e vamos criar um novo aplicativo. Firebase. Assim, você pode acessar firebase.google.com e clicar no botão Começar. Vamos adicionar um novo projeto. Então, vou chamá-los projetos da Netflix e depois continuar. Novamente. Continuando. Aqui, vamos deixá-la como conta padrão do Firebase. Deixe-me mostrar que clique aqui, você verá criar uma nova conta e selecionar a conta padrão para o Firebase. Em seguida, crie um novo projeto concluído. E agora criamos um novo projeto. Temos que continuar. E aqui, vamos selecionar o componente baseado na web. Sim, então vamos selecionar esse cara aqui. Vamos criar um componente baseado na web. E agora, aqui vamos dar um nome ao aplicativo. Aplicativo Netflix. Você pode decidir configurar o Firebase Hosting para esse projeto. Mas não se preocupe, talvez façamos isso mais tarde. Agora, clique em Registrar. Feito isso, esse código aqui será gerado. Agora, volte ao código VS, certo, para trazer o SRC, basta abri-lo. E então você clica, clique com o botão direito do mouse em utilitários e cria um novo arquivo. E eu vou chamá-lo de Firebase dash. Config dot g está aqui. Só precisamos selecionar assim. Por favor. Você pode ver o que eu selecionei aqui. Então. Clique com o botão direito Copiar. Cole aqui assim. Sim, então, tendo feito isso, vamos limpar o código. Selecione entre as linhas para duas linhas para limpá-la. Além disso, não precisamos do Firebase Analytics por enquanto. Só temos que limpá-lo. Limpe isso também, limpe isso. Feito isso, o próximo na fila é importar amostras de esferas de fogo. Então vá até o topo. E eu vou fazer importações. Saia da barra de estatísticas mais simples do Firebase. E por último, logo abaixo, temos que exportar esse módulo. Vou fazer um spot const, Firebase ou igual. Saia. Em seguida, vamos passar o aplicativo aqui mesmo. É tão simples quanto isso. Então, com isso, vinculamos com sucesso o projeto ao Firebase. Então, rapidamente, deixe-me guiá-lo pelo console do Firebase para se familiarizar com ele. Então, observe que copiamos esse clichê aqui. Sim. Então, o próximo da fila é continuar no console. No canto inferior esquerdo da tela, você verá esse botão aqui continuando no console, à direita, estamos no console. Você tem que abrir o Butte e depois a autenticação. Clique em Começar. Então, clique na barra de senha do e-mail. Então, temos que habilitar aqui e depois Salvar. Tudo bem, então você vai ver esse verde aqui. E então, novamente, continue com Use-nos. Aqui exatamente é onde todo o usuário será armazenado, ok? Quando um usuário faz login em nossa obrigação, suas credenciais serão armazenadas aqui, que implica a senha e o e-mail. O mais simples que isso. Tudo bem, então isso é tudo por enquanto. E na próxima palestra, começaremos a implementar a página de inscrição. E então o usuário poderá se inscrever em nosso projeto e começar a fazer o login. É tão simples quanto isso. 80. 78 CreateUsers: Bem-vindos de volta a todos. Tudo bem, então vamos prosseguir com a página de inscrição. Código Vs. A página de inscrição dot j é nosso direito é definitivo. Então, bem no topo. A primeira coisa que faremos é importar a configuração do painel do Firebase, que é o módulo que criamos na aula anterior. Deixe-me te mostrar rapidamente esse cara aqui. Ok, então venha aqui e vamos fazer isso aqui. Vamos importar o Firebase dos pés reduzidos do Firebase DashCon da UT. Então esse cara aqui, deixe-me te mostrar esse cara. Are, você entende todas essas coisas. Eu não fiz isso. Vamos importar algumas das coisas que vamos usar. Então, para fazer isso, temos que seguir as melhores práticas. Deixe-me fazer alguma coisa. destacar as linhas dois a três. Tirei isso, venha aqui e cole. Então, essas serão as entradas que criamos, mas essas são as principais entradas das bibliotecas externas. Então, aqui eu vou fazer importações, criar usuários com e-mail e senha do Firebase sair correndo também. Temos que importar trocos intermitentes. Exatamente assim. Vamos criar rapidamente o gerenciador para a inscrição. Ei, eu vou fazer const, handle, sign-in, equa, configurá-lo para nossa função. Então, aqui vamos ter uma assíncrona. Bom. Então, agora mesmo, vamos encerrá-lo em um bloco de tentativa e captura. Aqui. Eu vou fazer e-mail, senha constantes. E eu vou configurá-lo para formar valores. Portanto, antes de prosseguirmos, vamos criar rapidamente as variáveis de estado necessárias para serem usadas. Então eu vou fazer a narrativa. Eles usam trechos de dados do valor, definem valores de telefone. Ok, aqui vai estar um conjunto de valores da Copa. O estado inicial será um objeto. E dentro dos objetos, vou enviar e-mails. O e-mail. Vamos configurá-lo como uma string vazia. Sim, então o estado inicial do campo de e-mail estará vazio. Sim, então o campo de senha, também o estado inicial, será uma string vazia, o que a torna vazia. Tudo bem? Feito isso, vamos continuar com os valores do formulário aqui. Aqui vamos para nossa largura, pois é assíncrona, então ela retornará uma promessa. Então, temos que esperar aqui. Vamos chamar o método de criação de usuário com e-mail e senha. Nós o importamos. Deixe-me mostrar a você na parte superior, do Firebase. Então, dentro desse método, vamos usar o Firebase de e-mail em coma, senha mais calma, tão simples quanto isso. E aqui vamos detectar o erro necessário. Então, quando detectamos o erro, precisamos registrá-lo no console. Vou fazer console.log. Esse cara aqui, que é o erro. Se houver algum erro ou problema, vamos registrá-lo no console. Sim, então o que é agora, temos que implementar todas essas dificuldades, certo, dentro do campo de entrada. Então esse é o campo de senha. O valor dos valores, pontos, senha. Portanto, isso capturará qualquer senha que o usuário inseriu, os direitos estavam no campo. Tão inalterado. Isso significa quando o usuário começa a digitar no campo de entrada. Então, isso nos dará acesso ao evento e, em seguida, o definirá como nossa função. Quando o usuário começa a digitar no campo de entrada, precisamos atualizar a empresa. Agora vou fazer um conjunto de valores. Então, temos que espalhar valores diferentes. Feito isso, vamos fazer ponto E, alvo, nome do ponto. Então, por último, vamos fazer um ponto para atingir esse valor. Temos que copiar tudo a partir de um valor como esse. A cópia das linhas 42, 43 vem dentro do e-mail. Então, dentro do campo de e-mail, vamos colar. Mas agora temos que mudar o valor da empresa para e-mail. O mais simples que ter feito isso. Temos que chamar a humilde função de login quando o botão de inscrição é clicado. Então, aqui vamos especificar o onclick, onclick desse parafuso. Vou fazer login manualmente. Agora você pode ver que a função está registrada. A cor da fonte fica tão nítida, antiga. Mas quando você vem aqui, por exemplo, vamos deletar. Estragar tudo. Você vê? Tudo bem, tudo bem. Salve o aplicativo e vamos testá-lo. Vamos fazer o npm starts para interromper o projeto. Então, prefiro arrastar o Firebase até aqui para que o aplicativo fique aqui. Tudo bem, então vamos navegar até a página de login. Meu e-mail será um enorme mistake@gmail.com. Clique em Começar. A senha. Eu vou fazer 123, ABC. Vamos nos inscrever. Vamos tirá-lo. Se realmente tivermos uma inscrição. Temos que atualizar o console aqui para ver. Gente, tudo funciona conforme o esperado. Você pode ver agora que isso é tech@gmail.com? Tudo legal. Tudo bem, então a próxima linha é redirecionar o usuário para a página inicial quando o usuário entra e sai. Portanto, após o login, quando as credenciais estiverem corretas, ao clicar no botão de inscrição, o aplicativo poderá redirecioná-lo para a página inicial, que é a página da Netflix. Volte para o VS Code e aqui, estrague tudo. Então, logo no topo, vamos importar o que diabos é esse ****? Um toque para fora. Salvar. Agora vamos voltar e conferir novamente. Quero que sejamos exatos aqui. Vamos supor que Mike adicione gmail.com, comece. Senha, um-dois-três, ABC. Você não se inscreve. Volte para o console e atualize. Bom. Ainda funciona conforme o esperado. Portanto, essa entrada aqui é desnecessária. Sim, então agora temos que importar, usar, navegar do React, roteador doom. E depois disso, vamos fazer navegações constantes. O CWA, use navigates. É claro que é uma função. Sim. E depois de fazer isso, agora, venha aqui e vamos configurar a autenticação. Vou fazer uma mudança de estado. Deixe-me mostrar esse cara que importamos do Firebase. Na verdade, estamos realizando a autenticação aqui. O estado ligado/desligado mudou. Vamos fazer a vírgula do Firebase e, em seguida, vamos passar o usuário atual. Portanto, isso ajudará a verificar o usuário atual que fez login. Portanto, quando o usuário atual fizer login, ele o redirecionará para a página inicial, que é a página da Netflix. Qual é exatamente a intenção? Aqui? Vamos verificar isso. Então, eu vou fazer se for usuário atual, então, se houver um novo registro, sim. Vamos navegar até a página inicial. Não se preocupe, vou explicar isso em um GeV. Use Navegar. Navegue. Gente, vamos alterá-los para navegar. Isso soa melhor. Navegue. Então, aqui vamos navegar após a chave em seu e-mail e senha. Então, aqui vamos verificar se o usuário atual, se você é o usuário atual que se inscreveu diretamente nesta página, você será redirecionado para a página inicial. E se preocupe, vamos fazer isso em um instante para que você possa ver. Então, quando especificamos esse conflito aqui, significa que você será redirecionado para a página inicial. Consegue ver o Slash? Isso significa que você será a página da Netflix. Aqui está escrito que a identificação nossos usuários navega já foi declarada. Vamos ver o que acontece por aqui. Naveguem de forma igual, usem, naveguem, pessoal , olhem, nós estragamos alguma coisa aqui. Temos que limpar isso. E eu sinto muito por isso. Gravação Safe Harbor usada. É definido, mas não usado. Por que é usado? Provavelmente não nesta página que se encontra na página de login. Sim, não se preocupe com isso por enquanto. Salve no navegador. Você pode ver agora que fomos redirecionados para a página da Netflix. Tudo bem, deixe-me mostrar rapidamente para que você possa entender bem o suficiente. Volte para o console. Vou excluir todos esses usuários e excluir contas. E aqui também precisamos excluir a palestra da conta para atualizar. E você vê que nada está aqui. Por enquanto. Volte para o aplicativo. Atualizar. Agora temos que navegar até a página de inscrição. Agora dê uma olhada. Quando eu me inscrevi com um novo e-mail, ele vai me redirecionar para a página da Netflix. Vou fazer aqui. John@gmail.com. Comece. Vou fazer 123ab C e depois me inscrever. Agora fomos redirecionados para a página da Netflix. E essa é exatamente a intenção. Sim. Você pode ver tudo bem, então terminamos com a página de inscrição. Na próxima aula, faremos a autenticação com a página de login. 81. Autenticação de login: Bem-vindos de volta a todos. Então, na palestra anterior, implementamos a página de inscrição. Assim, os usuários poderão criar uma conta e serão redirecionados para a página da Netflix, que é o padrão. Agora vamos prosseguir com a autenticação de login. Então, vamos supor que use nosso cadastro no aplicativo e, em seguida, saia. Então, ao sair, você não precisa se inscrever do zero. Tudo o que você precisa fazer é fazer login no aplicativo usando suas credenciais, que você realmente criou anteriormente. Agora, antes de prosseguirmos com a página de login, faremos algumas configurações que não levarão tempo. Volte para o navegador e depois volte para o console do Firebase. Queremos excluir o usuário dessa forma. Vamos excluir essa conta. Então, qualquer conta que você tenha aqui, exclua toda a conta. Vamos criá-lo do zero. Volte ao código, vá para a página de inscrição e, em seguida, faremos um comentário sobre isso. Portanto, não queremos que ele seja redirecionado para a página da Netflix quando eles usarem nossa inscrição por enquanto. Ok, só por enquanto. Isso é apenas, por exemplo, saquê. Um comentário sobre o uso de navegação. Você também pode pressionar um comentário aqui, se desejar. Bom. Não fiz isso. Vamos continuar com a página de login, certo? Estamos na página de login. importar Vamos importar, vamos copiar a entrada da página de inscrição. Não quero que percamos tempo aqui. Destaque e copie. Página de login e cole. Agora, não precisamos de usuário decretado com e-mail e senha. Anteriormente, criamos os usuários e não precisamos mais deles aqui. Então, o que precisamos agora é fazer login com e-mail e senha e nebuloso e todas essas coisas, além de uma vírgula aqui. E ele será importado da autenticação do Firebase. E, claro, criamos esse módulo anteriormente. Feito isso, também temos que importar a cópia do navegador do usuário daqui e colá-la aqui do comentário. Tudo bem, então também temos que importar o suco daquele gancho na parte superior. Então, para fazer isso de uma forma mais profissional, o que vou fazer agora é separar a entrada, destacar isso, recortá-la, vir aqui e colar. Então, essa é a entrada que fizemos para as bibliotecas externas, e essas são as entradas que fizemos para nossos próprios arquivos que criamos. Isso mostra pelo menos como criar um aplicativo como um profissional. E, por favor, observe que isso definitivamente o ajudará no futuro quando você for contratado. Então, agora, o que fazer a seguir é criar as variáveis de estado necessárias para serem usadas. Em vez disso, vou gerar o uso de trechos. Então eu vou fazer e-mail definido por e-mail. Isso deve ser na carpa. Portanto, o estado inicial deles também será uma string vazia aqui. Vamos fazer o trecho de uso. E isso será uma senha, desculpe, como essa senha definida, isso estará no CUP. Além disso, o estado inicial será uma string vazia, que é o campo de login, certo? Deixe-me te mostrar. Venha aqui, corte o login. Tudo bem, então aqui está o campo de e-mail e aqui está o campo de senha. Portanto, o estado inicial será um campo vazio como esse até que o usuário comece a imputar suas próprias credenciais. Volte ao código e vamos começar. Certo? A aula de campo de entrada não seria para formatar o código. Agora, tudo bem, então agora o código aparece bem. Vamos implementar o onchange. Então, quando o usuário começar a digitar no campo de entrada, teremos acesso aos eventos. Tudo bem? E então, primeiro, vamos chamar a função de configuração para atualizar o e-mail. Defina o e-mail. Em seguida, vamos defini-lo como e dot, o que quer que o usuário esteja digitando, que é o ponto e, tem como alvo esse valor. E eu te ensinei todas essas coisas. Então, quando estávamos realmente praticando o básico, reage individualmente. Então, aqui eu vou fazer o valor que vai ser e-mail, copiar, não gostar dessa cópia, destacar e copiar. Acesse o campo de senha e cole aqui. Formata o código com mais bonito. Basta manter pressionadas as teclas Shift e Option no teclado e tocar em F no teclado para formatar com mais bonito. Ou você também pode fazer algo assim: clique com o botão direito do mouse em Formatar documento com um código de lema mais bonito. Ok, então aqui vamos alterá-lo para definir a senha. Aqui inalterado. O valor será o valor da senha é tão simples quanto isso. Tudo bem, então, depois de fazer isso, vamos realizar rapidamente a autenticação. Role até o topo. Tudo bem, Ei, vamos fazer const, handle, lock in, equa, configurá-lo para nossa função. Vamos ter uma pia e certeza, ela retribuirá uma promessa. Então, temos que esperar. O problema está aqui desse jeito. E eu vou fazer login com e-mail e senha. Logo nesta função, vamos passar o Firebase de carma, e-mail e senha. E tudo isso seria embrulhado em um bloco de tentativa e captura. Então, destaque e corte. Em seguida, vamos gerar um bloco try catch. Então, dentro do bloco de teste, vamos colar e aqui está a captura. Portanto, se houver algum erro ou custo, precisamos detectar o erro e fazer login no console. É mais simples que, depois de fazer isso , por fim, precisamos realizar a autenticação para verificar o usuário atual. E então, se as credenciais estiverem corretas, teremos que redirecioná-las para a página da Netflix. E é claro que fizemos isso na palestra anterior. Vá para a página de inscrição. Venha aqui. Copie esse cara, destaque e copie. Fora dessa função. Por favor, não faça isso dentro desta função. Saia da função e cole. Agora temos que remover o comentário, o formato, o código, a opção de mudança F para formatar o código. E agora temos que chamar essa função diretamente dentro da proteína. Quando o botão Login é clicado, precisamos chamar a função de login do identificador save. Diz que a navegação não está definida. Tudo bem? É simplesmente porque não o inicializamos. Lembre-se de que nós o importamos aqui na parte superior. Agora, aqui temos que inicializá-lo. E é claro que fizemos isso na palestra anterior. E eu tenho que copiar. Cole, destaque, remova o comentário, salve o aplicativo e agora tudo está funcionando perfeitamente. O código está livre de erros. Mas mais uma coisa que você disse é uma contribuição aqui. É uma importação desnecessária. Talvez você não tenha essa importação no final. Tão ignorado. Salve, volte para o navegador. E agora vamos fazer login porque primeiro você precisa criar uma conta antes de fazer login. Sim. Então, aqui vou fazer uma inscrição no Slash. Certo. Para trazer a página de inscrição. Eu vou fazer angela@gmail.com. Comece. E então o campo de senha aparece e vamos fazer 123ab c. Agora inscreva-se. Ao clicar no botão Inscrever-se, por enquanto, você não será redirecionado para a página da Netflix simplesmente porque removemos essa funcionalidade. Agora, vamos ver se a inscrição foi atualizada com sucesso. Agora, criamos a conta para Angela e não criamos essa conta. Temos que voltar para a página de login com barra na página de login. Você pode ver que, ao voltar para a página de login, ela o redirecionará para a página da Netflix. Você sabe por quê? Deixe-me explicar rapidamente o que acontece sob o capô. Volte para o código VS. Então, quando entrar na página de login aqui , dirá: Ei, encontrei um usuário atualmente registrado. Então, rapidamente, redirecione o usuário registrado para a página da Netflix. Sim, então isso é exatamente o que esse cara aqui faz. E é por isso que você vê que ele abre a página de login e redireciona rapidamente. Faça a página da Netflix. Deixe-me mostrar rapidamente como obter os resultados que estamos esperando. Volte para o navegador e abra o console. Então, certo, quando o console clicar nesse ícone de pasta aqui, vá para o aplicativo, certo? Então, temos que ir para Armazenamento, clicar em armazenamento e, em seguida, abrir o banco de dados de índice. Ei, não é? Então, temos que clicar aqui, excluir, selecionar novamente e excluir. Então, agora, quando tentamos novamente acessar a página de login e o osso, você consegue ver agora? Agora vamos tentar ver se podemos usar essa conta para fazer login na página da Netflix. Lembre-se, temos Angela aqui. Você pode criar qualquer conta de sua escolha. Então, limpe e cole Angela. E aqui a senha é 123ab C. Clique em Login para ver o que acontece. Você pode ver agora que tudo está funcionando perfeitamente, conforme o esperado. Isso não é lindo? É extremamente bonito e eu gosto. Na próxima palestra, tentaremos, na medida do possível, implementar a funcionalidade de desconexão. Volte para o código, ID de inscrição dot js. , precisamos remover os comentários para que tudo comece a funcionar perfeitamente, conforme o esperado. Está tudo bem? Seguro? Página de login. Kay. Bom. Isso é tudo por enquanto. Nos vemos na próxima palestra. Vamos nos concentrar no cuidado holístico. 82. 80 OnScrollEvent: Bem-vindos de volta a todos. Tudo bem, então, na palestra anterior, implementamos a autenticação e acredito que ela esteja funcionando perfeitamente bem para você. Sim, então nesta palestra, vamos implementar a navegação superior. Então, quando um usuário clica no link, ele será redirecionado para o componente correspondente. Tudo bem, então não precisamos fazer manualmente algo como não gostar, inscrever-se. Você pode ver que não precisamos mais fazer algo assim. Sim, vamos implementar rapidamente o comando B superior do VS Code para abrir o Explorer e gravá-lo no Explorer Temos que abrir o próximo ponto de fluxo js fechar o Explorer novamente. E então eu vou apagar esse Netflix aqui e dar essa div um nome de classe daqui, certo? Quando for o herói, vamos exibir a imagem do herói, IMG SRC igual, copiar e colar o link do herói, que é porque os direitos de imagem estavam nos materiais. Não se preocupe, eu vou te mostrar em um GeV aqui, não é? Sim, está dentro dos materiais da Netflix. E então você pode abrir o auxiliar de código e copiá-lo daqui. Vamos fazer aqui, imagem está boa, não tem problema. Então, ter feito isso aqui está o resultado. Bom. Então, agora a próxima fila é implementar os eventos on scroll. Deixe-me mostrar, por exemplo vou destacar esta imagem, duplicá-la o máximo que puder e salvar o navegador. Então, você vê que agora eu posso rolar de cima para baixo. Mas o que realmente queremos fazer é colocar o resultado na rolagem, por exemplo, vamos supor que a aplicação no eixo y. Portanto, no eixo y, o evento de rolagem é igual a zero, mas quando você rola até o topo, os eventos de rolagem automática serão maiores que zero. Então, vamos condicioná-lo de forma que, se eles possuírem eventos de rolagem, o deslocamento da página seja zero. Queremos que o estado inicial seja falso. Caso contrário, queremos que o estado inicial seja verdadeiro. Então, quando o aplicativo estiver assim na página Y, o deslocamento relação ao tom, o deslocamento será igual a zero. E então, se for igual a zero, vamos defini-lo como falso. Mas quando você rola até a página superior, deslocamento Y será maior que zero. E se for maior que zero, vamos definir o estado inicial como verdadeiro. Vamos implementá-lo para que você possa entendê-lo bem o suficiente. Volte aqui. Vamos fazer isso certo? Estamos no componente. Então, agora temos que implementar o evento on scroll e eu vou fazer pontos de janela na rolagem. Feito isso, também precisamos declarar as variáveis de estado necessárias a serem usadas. Então, rapidamente, vamos gerar os trechos usados. Então eu vou fazer isso, está ferrado. Ele vai ser definido, está parafusado na letra maiúscula I. Então, o estado inicial será falso porque isso será igual a zero. Portanto, quando o usuário abre o aplicativo, o estado inicial da rolagem será falso porque não parafusamos na parte superior ou inferior. Mas quando começarmos a rolar , será maior que zero. E é isso que vamos definir como verdade. Então, o que vamos fazer agora, tudo bem. Aqui temos que atualizar o estado inicial definido como multidão. Vamos definir os deslocamentos parafusados para o ponto Y da janela. Portanto, se os deslocamentos do ponto p-y da janela forem iguais a zero, o estado inicial será falso. E setas, o estado inicial será verdadeiro. E o que é agora, vamos voltar quando os pontos rolarem. Agora, o que vou fazer agora é rolar o log do console para que eu possa mostrar o que é. O Console.log é rude. Salvo o dito usado, não está definido. Temos que importá-lo na parte superior. Use você salvou novamente, tudo funciona perfeitamente bem e no navegador, bem, estranho Comando I para abrir o console. Aqui no console. E certifique-se de que você pode. Agora você vê que a aplicação no deslocamento de inclinação é igual a zero. Então, no navegador, você verá falso. Então, quando eu rolar até o topo, a aplicação em compensações de tom será maior que zero. Portanto, o estado inicial compensações de tom será definido como verdadeiro. Vamos ver. Você pode ver que, ao rolar até o topo, ele retorna verdadeiro. Além disso, novamente, a aplicação é verdadeira, mas muitos marcam três pontos quando a aplicação no deslocamento de tom se torna zero, ela retornará falsa. Você pode ver agora que é falso? Role para baixo novamente, isso se torna verdade. No topo, chega a zero e se torna falso. Então, basicamente, o que estamos fazendo é verdadeiro, falso, verdadeiro, falso. Certo? Linda. Então, essa é exatamente a intenção desta palestra. Na próxima palestra, implementaremos a navegação superior. 83. 81 Componente de TopNav: Tudo bem, então, na palestra anterior, implementamos os eventos on scroll. Conseguimos atualizar o estado inicial de falso para verdadeiro, falso para verdadeiro. E eu sei que alguns de vocês estão curiosos. Você quer saber por que fizemos isso. Não se preocupe. No final desta palestra, você definitivamente a entenderá bem o suficiente. De frente para o VS Code e para implementar com menos rapidez os direitos do Top Nav estavam nos Componentes. Crie um novo arquivo chamado top mouth. Os pontos são um FCE para gerar o componente funcional. Então, vamos importar rapidamente o material necessário para ser usado. Primeiro, vamos usar o ícone do React. Então, eu vou fazer o npm install React dash icons. Enquanto a instalação estiver em andamento. Vamos importar daqui, importar o esboço, sair dos ícones do traço do React, barra. Nós temos a superfície com IA. E, a propósito, o ícone do React foi instalado com sucesso. Se você não o tiver instalado do seu lado, basta fazer isso agora. Em seguida, temos que importar a stout do componente stout. Como as entradas ligam, várias letras maiúsculas L da rota do traço do reator estão funcionando. Ok. Agora estamos prontos para ir até aqui. Vamos armazenar os direitos de navegação dentro de uma matriz. Então, eu vou fazer const, nav link, equal, configurá-lo como uma matriz vazia. E logo durante a matriz, vamos pegar um objeto. Tudo bem, estamos no objeto. Vamos dar um nome para que seja a página inicial mais calma. Vamos vinculá-lo a uma barra assim. Deixa eu te mostrar. Lembre-se de que implementamos as rotas na palestra anterior. Toda essa rota aqui. Então, vamos fazer isso para a página inicial, inscrever em um player de TV e muito mais, certo? Eu falei demais. Desculpe por isso. Os destaques o duplicam três vezes e , por favor, certifique-se de colocar uma vírgula aqui para separá-lo. Feito isso, vamos transformá-los TV e teremos que seguir a rota. TV Dash. Ele vai ser minha lista. Temos que seguir a rota, minha lista, criamos todas essas rotas. Por fim, vamos fazer filmes de corte. Tão simples quanto isso. Feito isso, vamos mapear essa matriz e todas essas guias exibir todas essas guias no canto superior direito da tela. Então, para fazer isso, vamos trabalhar na UE. Agora teremos navios porta-contêineres suficientes. Tudo bem. Aqui. Eu vou fazer const, love container, um stout dot div. Em seguida, eles digitalizam as barras traseiras para que possamos estilizá-las por dentro. Esse cara. Aqui. É isso. Ok, tudo bem. Agora vamos ter um div com o nome da classe do lado esquerdo. Porque teremos o lado esquerdo do Top Nav e o lado direito. Então, fora dessa div, teremos outra div. Dê a ele um nome de classe no lado direito. Ok, vamos trabalhar no lado esquerdo. Certo? No lado esquerdo, teremos o logotipo. Então, vamos ter um div com o nome da classe do logotipo. Em seguida, o logotipo, temos que exibi-lo com a tag IMG, SRC igual. Vou colar o link do logotipo aqui, além da etiqueta de fechamento automático. E neste link, você pode copiar e colar do diretório de materiais. Aqui está? Sim, as probabilidades são iguais ao logotipo mais o mais simples. O que faz de novo? Ok, agora temos que mapear esses itens, certo? Portanto, esse é o div com o nome da classe do logotipo, lado de fora do div com o nome da classe Logo. Teremos uma lista ordenada. Então, vamos ter o UL como o nome da classe dos links, logo dentro. Vamos mapear as coisas aqui. Eu vou fazer um link de navegação. Ok, acho que devemos fazer disso uma palavra plural porque é boa. Você nomeia sua matriz com uma estrada plural porque ela é uma coleção de detalhes com tipos de dados semelhantes. Portanto, temos dados e não apenas dados. Eu entendo que não estamos na aula de inglês aqui, mas é bom sair gramaticalmente quando você está fazendo coisas. Tudo bem, links de navegação , mapa de pontos, outros parênteses, e então vamos colocar os colchetes, bem dentro dos colchetes, vamos interromper seu nome. Vírgula n ln, ou mostrando um Jiffy. Vá até o topo, esse nome aqui. E link. Depois de fazer isso, defina-o para a função de erro, abra e feche os colchetes e, à direita, para colocar os colchetes, retornaremos a interface do usuário. Então, aqui vamos ter uma etiqueta LI. E eu coloquei uma chave. A chave será nomeada. Então, diretamente na tag LI, ou teremos os links, certo? Então, aqui temos que exibir o nome dos links. Ao salvar, deixe-me mostrar palestra sobre estatísticas do MPM no diretório do cliente. E antes de começarmos, acesse a Netflix. Estrague tudo aqui. Vamos ver se podemos renderizar o botão superior aqui. E, por favor, certifique-se de importá-lo na parte superior. Vamos salvar o projeto. Venha aqui, cetona, a tecla Enter para fazer com que ela acione demais nossa conversa, na verdade. Nada é exibido na tela. Por quê? Certo? Vamos ver o que acontece. Navegação superior. Isso é link. Então, desestruturamos o nome e o link. Então, por que não está funcionando? Ok, vamos fazer algo igual a um link. Portanto, temos que vinculá-lo para especificar o link como este, seguro no navegador. Vamos atualizar o que está acontecendo novamente, deixe-me ver o que acontece aqui. Tudo bem, então vamos verificar o problema aqui. Diz que erro de tipo, componentes de sublinhado de estilo, sublinhado e sublinhado estavam estacionando aquele módulo. Padrão. Div não é uma função. Rapazes. Dê uma olhada. Na verdade, é um erro tipográfico. Isso deve ser dots div, quando você salva e verifica no navegador, os IDs, tudo está funcionando perfeitamente bem. Agora, você pode ver que aqui estão os links. Quando você clica no programa de TV, você desce para a página do programa de TV. Volte. Minha lista. Filmes. Tudo está funcionando perfeitamente bem como aspartato. Então, agora temos que estilizar o componente tão rapidamente. Vamos trabalhar no lado direito, def. E, novamente, aqui está outro tipo de erro gráfico. Eu não sei. Então aqui está, tarde da noite. Então, por favor, só tenho que me perdoar, só por esta palestra. Eu vou fazer a bandeira D. Isso é bom. Todos nós cometemos erros. E talvez seja apenas um erro tipográfico e não algo do passado. Certo. Agora. Vamos votar , certo? Estamos nesta divisão com o nome da classe de embarque do lado direito. E então, certo, estamos neste barco em que vamos renderizar o logout offline. Feche-o com a etiqueta de fechamento automático. Salve no navegador. Aqui está, você pode ver que aqui está o logout. Então, na próxima palestra, vamos implementar essa proteína. Mas, por enquanto, temos que manter a interface de usuário reivindicada estilizando a empresa. Ok, vamos dialisar o componente na próxima aula. 84. 82 css globais: Ok, então, antes de prosseguirmos com a estilização desse componente, vamos fazer rapidamente algumas configurações necessárias, certo? Estamos no CSS do ponto índice. Portanto, você pode simplesmente fazer o Comando V ou o Controle P para abrir a caixa de pesquisa na parte superior e, em seguida, pesquisar CSS do ponto de índice, assim. E aqui vamos aplicar um pouco de CSS global. Primeiro, vamos mudar o plano de fundo. Eu vou fazer aqui a cor de fundo. Vamos torná-lo preto, assim. Feito isso aqui, vamos fazer margem zero, erro de preenchimento. O tamanho da caixa será na caixa de borda. Então, aqui vamos fazer o overflow. Estouro no eixo x. Vamos escondê-lo. E eu estou tendo feito isso, deixe-me ver. Bom. Agora o fundo está preto e você não pode rolar para a direita. Você pode não perceber, mas posso garantir que eles transbordam escondidos funcionam perfeitamente bem. Essas são as configurações necessárias que precisamos fazer globalmente. 85. 83 Componente de TopNav: Bem-vindos de volta a todos. Então, vamos estilizar rapidamente os componentes do canto superior esquerdo. Volte para o código VS. Agora, antes de prosseguirmos, precisamos voltar à página da Netflix. E aqui implementamos ponto da janela no escutador de rolagem. Sim, então o que vamos fazer agora é passá-lo como sondas até a navegação superior. Portanto, é muito fácil fazer isso. Então, o que eu vou fazer é crescer. Igual, está ferrado. Agora ele está sendo passado como adereços até o topo. Agora, o próximo na fila é recebê-lo, certo? Estamos no principal componente de navegação. E para fazer isso, nós só temos que desestruturá-lo aqui. Ele rolou. O mais simples que isso. Sim. Então, tendo feito isso agora, seria capaz de obter as informações daqui, certo? Estamos no topo agora. Vamos descobrir se o estado é verdadeiro, falso, verdadeiro ou falso. Ótimo, aninhe aqui. Vou fazer navegação, dar outro nome de classe, e isso não acontecerá dinamicamente. Então, vamos ter os dentes tortos. E você sabe que está vindo daqui, certo? Bom. Então, se eu errar essa citação, teremos dinamicamente uma classe chamada parafusada. Agora, não vamos ter que transar, desse jeito. Na verdade, a ideia é que possamos estilizar a parte superior. Agora, não se preocupe, você vai entender isso bem o suficiente quando eu terminar com isso. Sim. Então, a seguir, vou copiar tudo assim. Você consegue ver das linhas 20 a 43? Mova-o dentro da navegação. Esse cara aqui. Você pode ver? Ok, tudo bem, agora, sem mais delongas, vamos começar a estilizar o aplicativo. Agora. Vamos estilizar, não parafusos, pontos, não pergaminhos. Vamos fazer com que ele seja flexível. Pontos, role. Novamente. Vamos ter uma tela flexível e, em seguida, a cor de fundo será preta. É por isso que ouvimos o evento de rolagem. Quando você diz ventrículo no navegador e boom. Agora, você pode não ver isso claramente porque temos que estilizar a navegação, que é esse cara aqui. Só tenho que copiar o nav. Vamos colocá-la em posição. Vamos torná-lo pegajoso. Do topo, seremos zero. Então, isso vai empurrá-lo para o topo. E a altura dessa navegação superior será de seis RAM. A largura é de 100 por cento. Justifique o conteúdo. O espaço entre as posições será corrigido porque queríamos fixar o índice z superior. Vamos fazer dois, preenchendo 0,4. Vamos alinhar os itens ao centro. Então, ao salvar e conferir o navegador, agora, ao errar, você perceberá que a cor de fundo da navegação superior mudará para preto. Tenho certeza que você pode. Você vê que é simplesmente porque quando você rola o aplicativo no eixo y, ele define isso como verdadeiro. Então, quando a rolagem estiver definida como verdadeira, chamaremos essa classe, que é o parafuso, e então aplicaremos o plano de fundo como preto. Então, tão simples quanto isso, agora vamos fazer uma transação para que você tenha uma boa animação ao rolar o ponto zero. Ou seja, o de Satanás é em horas. Ok, vamos estilizar rapidamente o logotipo para que você tenha uma imagem clara do que fizemos até agora, eu acho. Sim. Pontos. Vamos fazer o lado esquerdo. Eu sempre aconselho copiar exatamente o que você tem aqui para não ter problemas desnecessários. Lado esquerdo. Vamos fazer com que ele exiba a flexibilidade e , em seguida, alinhe o centro dos itens. Vamos dar a ele um espaço intermediário. Eu vou fazer Gap to Ram. Feito isso, vamos estilizar rapidamente o logotipo. O logotipo, então vamos fazer com que ele seja exibido de forma flexível novamente. O fluxo dividido. Justifique o conteúdo no centro, alinhe os itens ao centro, salve a obrigação. Agora vamos lidar com a imagem com precisão. Img a largura. Vamos fazer dez RAM na altura dois, rem, salve o aplicativo. E isso é o que temos. Tudo está bem alinhado. Agora você tem o logotipo aqui, e agora você também tem o botão de sair aqui. Lado comum aqui. E vamos fazer os links de probabilidades. Queremos estilizar esses links aqui usados para aparecer agora. Então, vamos fazer com que eles exibam flex, salvem e verifiquem. Você pode ver agora que temos um programa de TV caseiro e o resto deles está embelezado. Tudo bem, quando eu vou fazer aqui, LI, LI, vamos definir um alvo para resolver, dar a ele uma cor branca. Salve no navegador. Agora, você entendeu. Ok, está tudo bem, tudo bem. Mas outra coisa que eu quero que você observe que você pode não ver claramente, mas ela está aparecendo na tela. Agora, o que eu quero fazer, porque quero que você entenda cada pedacinho desse código, destaque todas essas imagens. Você pode colocar um comentário sobre ele. Não faça isso no final. Apenas me observe porque é para ensinar trabalhos. Você também pode não ver isso. Vou até o css do ponto de índice e não faço nada, destaco e coloco um comentário sobre a cor de fundo. Volte aqui. Bom. Então, esses são os pontos que não queremos. Tudo parece, deixe-me, deixe-me, deixe-me fazer isso tão bem o suficiente. Então, aqui mais um comentário sobre isso novamente. Ok, tudo bem. Consegue ver esse ponto aqui? Ponto, ponto, pontos. Não queremos que ele remova esses pontos. O que eu vou fazer é voltar ao link e, em seguida, vou fazer o estilo de lista, digitar, seguro no navegador. Agora, o ponto sumiu. Você não vê mais esquivas seculares? Você não pode ver nenhum. Estamos aqui. Agora, vamos remover o sublinhado. Eu não gosto do subjacente. Ei, eu só vou fazer decoração. Nenhum, salve o projeto. E agora temos um link adequado aqui. É bom, eu adoro isso. Ao observar com atenção, você perceberá que todos esses links estão todos unidos. Vamos ter um espaço intermediário. Então, para fazer isso, certo, dentro do link novamente, vou fazer gap as Mickey three rem, salvo no navegador. Opa, tudo bem. Legal. Vamos desfazer algumas das coisas acabamos de fazer para ensinar pimentas. Salve aqui. E agora temos um aplicativo como esse. Volte para Top Glove, mude a cor para branco e bom. Você vê que tudo está funcionando perfeitamente bem. Ok, agora é hora de estilizar o lado direito, que é onde o botão de sair está localizado. Ok. Você pode ver que é hora de estilizar esse cara. Agora, o que eu vou fazer é fechar o lado esquerdo. Destaque esse cara aqui , certifique-se de que está fechando aqui assim. Com eles, fechamos o lado esquerdo e agora vamos começar pelo lado direito. Pontos. Role para cima. Lado direito. Vamos fazer com que ele seja flexível. Alinhe os itens ao centro. A lacuna deve ser de um quarto. Vamos direcionar o botão. Deixa eu te mostrar esse botão aqui. Ok? Porque dê a cor de fundo de vermelho, o vermelho ficará bem. Depois, a fronteira. Vamos divulgar isso. Ponteiro causal. Veja o que temos. Agora. Você vê? Bom. Acho que temos que aumentar o tamanho. Então, antes de prosseguirmos com o aumento do tamanho, vou fazer aqui e focar. O esboço não terá como alvo o SVG em si, que é esse cara. Deixe-me te mostrar. Esses caras. Tudo bem, pessoal, é tarde da noite por aqui, então tudo bem, vamos continuar. Eu vou fazer como VG. A cor do SVG é vermelha. O tamanho da fonte, que uma atriz acha que será o tamanho do SVG, vamos fazer chover. Talvez seja muito grande. Então, vamos retirá-lo, salvar o navegador e você verá que ele é extremamente grande. E vamos mudar isso para branco e ver o que acontece. Se o aplicativo. E aqui e você recarrega, você pode ver que está tudo bem. Mas uma coisa que não queremos é essas coisas aqui. Queremos que seja um pouco circular aqui. O que vou fazer, raio de fronteira, vamos fazer com que seja 50 por cento. Então, quando você faz esses aplicativos de segurança no navegador, agora temos a aparência desta. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado. Antes de encerrarmos esta palestra, quero explicar tudo bem o suficiente. Mais uma vez. Volte para a Netflix. Então, aqui ouvimos os próprios eventos de scroll. Não ouvi os eventos na tela. Criamos uma variável de estado. E dissemos que se o deslocamento do window.py for igual a zero, significa que se o usuário não errar, o aplicativo ficará assim. E o fundo da navegação superior não terá nenhuma cor. Então, se soubermos que os deslocamentos em termos de tom são iguais a zero, definiremos o estado inicial como falso, então vamos manter o estado e os L's. Estamos definindo o estado inicial como verdadeiro. Por exemplo, aqui no aplicativo, não parafusamos na parte superior. Agora, o deslocamento de Pedra é igual a zero. Portanto, ele retorna falso. Então, quando eu rolar até o topo, isso vai voltar verdadeiro. A ideia é atribuir um nome de classe ao Top Nav dinamicamente com base no estado. Não precisávamos aplicar uma cor de fundo ao nome da classe. Então aqui passamos os parafusos como adereços. Na navegação superior. Nós o recebemos aqui por essa estrutura. Deixe-me te mostrar aqui, depois de fazer isso. Então, aqui temos um nome de classe, aqui temos o nav. E aqui fizemos. Se um parafuso for igual a verdadeiro, teremos um className chamado parafusado. Sim, flechas. Se for falso, teremos um código className sem rolagem. Portanto, se a rolagem estiver definida como verdadeira, permitirá estilizar o nome do cluster e definir o plano de fundo como preto. Deixe-me te mostrar. Isso é exatamente o que acontece aqui. Agora, o fundo é preto. Com isso, quando os usuários aumentarem o aplicativo até o topo, aplicaremos o fundo preto na parte superior agora. Assim. Entendido, lindo. Então, isso é tudo por enquanto. E na próxima palestra, começaremos a implementar a seção de heróis. 86. 84 Logout: Tudo bem, então, nesta palestra, vamos continuar implementando a funcionalidade de desconexão. Então, ao observar o canto superior direito da tela, você verá o botão de sair. Então, quando o usuário clicar nesse botão aparecerá a possibilidade de sair do aplicativo. Vamos implementar isso rapidamente. Volte ao código VS. Vamos importar ou não alterar os estados, sair do firebase e desligar. Então, acho que o temos na página de login. Abra rapidamente a página de login e tudo bem, vamos importar esse cara. Destaque e copie. Vá para a navegação superior. Cole aqui. O que queremos é uma mudança automática e, também , a saída do Karma. Novamente para a página de login. Vamos copiar o Firebase que criamos. Vamos colá-lo aqui. E por último, vamos importar e usar o Navigate. É tão simples quanto isso. Então, na verdade, o que vamos fazer aqui é bem simples. Novamente, volte para a página de login e role para baixo. Agora, primeiro, vou copiar esse cara aqui. Em seguida, cole-o aqui novamente na página de login. Copie esse cara e cole aqui. Então, se não houver um usuário atual, assim, se não for um usuário atual, teremos que navegar até a página de login. Ao clicar no botão de sair, você será redirecionado para a página de login. Salvar. Role para baixo e vamos implementá-lo aqui. Então, OnClick, vamos encerrar a sessão aqui usando o Firebase. Assim como esses. Salve o projeto no navegador, certo? Consegue ver isso? Agora estamos bloqueados. Então, quando eu clico no login, vamos ver o que acontece. Tudo bem, agora, quando eu clicar no botão de sair, seremos desconectados e o aplicativo nos redirecionará para a página de login. Vamos tentar. Consegue ver isso? Agora estamos na página de login. Tudo também está funcionando perfeitamente, conforme o esperado , se eu quiser fazer login no aplicativo. Então, vou usar minhas contas. Angela gmail.com 123ab c, faça o login e pronto. Agora estamos aqui. Conseguimos criar asiáticos autênticos e tudo está funcionando perfeitamente, conforme o esperado. Então, na próxima palestra, continuaremos com a página do herói. Nos vemos na próxima palestra. 87. 85 Componente de herói: Bem-vindos de volta a todos. Nesta palestra, vamos criar o componente do herói aqui. Então, no final desta palestra, teremos um visual muito bonito em design. Prossegue para o código VS. E vamos continuar abrindo rapidamente o netflix dot js. Então, aqui, o que vou fazer é excluir algumas dessas imagens porque, na verdade, fizemos isso para permitir que o site deles rolasse. Consegue ver isso? Foi exatamente o motivo pelo qual publicamos essas imagens várias vezes. Agora, limpe-o no navegador. Ei, você pode ver que agora, talvez não consigamos rolar novamente. Não se preocupe, sem problemas. Então, a primeira coisa que vou fazer aqui é importar de componentes padrão. Logo abaixo. Vou fazer const hero container equa styled dot d e, em seguida, a interpolação de cordas, abrir a casca 80k. Ok, agora terminamos. O que vou fazer é destacar e copiar o contêiner do herói. Vá para o topo. Queremos agrupar todo o aplicativo no contêiner do herói. Destaque o Comando X para cortar, mova-o aqui, misture para formatar o código e ele ficará limpo. Vamos continuar. Agora temos um div com o nome de classe de herói. Dentro do div, renderizamos o Top Nav e depois passamos tão rudes quanto adereços para o Top Nav. E aqui temos a imagem do herói. Agora, o que vou fazer logo após a tag de fechamento do IMG, vamos ter outro div, dar a ele um nome de classe de contêiner. A div do contêiner. Vamos ter outro div, dê a ele um nome de classe de Dido e a palavra certa no título. Nós vamos ter uma etiqueta de Adriano, e eu vou fazer Superman. Então, eles servirão como título. Então, vamos ter uma tag p que servirá como descrição. O que vou fazer agora é copiar um teste fictício aleatório da Internet e colar entre eles. Agora. Eu só vou colar assim. Sim, então se você tem uma descrição adequada do Superman, você também pode escrevê-la aqui, mas para mim, eu não quero perder tempo, então sim. Então, logo após a div de encerramento do título do nome da classe, aqui está. Vamos ter outra div. E esse div nos salvará do contêiner de botões div, div, o nome da classe de boardings. Então, vamos ter dois botões diferentes, certo, na seção de heróis. Uma das partes inferiores será o botão Jogar e a outra será a informação, que é o botão Mais. Aqui eu vou fazer. Comprei em plea, dê um nome de classe de play between, só vou destacar essa mistura para duplicá-la assim. E o que acontece de novo aqui, eu vou fazer mais. O m deveria estar na Copa. E então aqui eu vou fazer mais. Então, se você acha que o nome da minha classe está aqui, a convenção não é descritiva o suficiente. Você pode fazer com que seja descritivo. Do seu lado. Você pode escrevê-lo na íntegra. Podemos fazer o botão play, o botão Mais. Podemos fazer isso no final. Mas para mim, vou manter as coisas simples assim. Outra coisa que vamos fazer rolar até o topo e depois importar alguns dos ícones que usaremos no quadro. Vou importar a linha AIR em um círculo completo. Você o sufixará com outro. Em parte. F, uma jogada do React dash, barra de ícones. simples quanto isso, quando você salva em uma chamada para o navegador. Esses. Então, vamos tê-lo aqui, o Superman, que serve como título do filme, a descrição aqui. E aqui temos o botão play na equipe móvel. Agora, quando eu aumentar um pouco o zoom da tela, você verá que essa imagem está quebrando. Tem essa aparência. Então, o que vou fazer agora é estilizar essa empresa. Certo? Estamos no banco de trás. Vamos fazer ponto aqui, linha. Você vai ter com a posição relativa. A ideia é realmente colocar todas as paradas bem no topo da imagem do herói aqui. Então, tudo é Superman, a descrição da jogada e a equipe móvel estarão bem na frente dela. Tudo bem, espero que tenhamos que estilizar as imagens de invasão porque a imagem do herói está quebrando e eu não gosto dela. Agora, o que vou fazer, IMG, vamos direcionar a imagem, dar uma altura para ela. Vamos fazer a cobertura de 70 V de altura e depois a largura. Vamos fazer com que seja 100%. Acho que vai ficar bem. Salve uma redução escalonada no navegador e eu amplio novamente, diminuo o zoom, amplio tudo está funcionando agora, tudo bem. Ok, então o melhor online é colocar esses caras no topo. Como fazemos isso? Você pode me dizer, não se preocupe, eu vou te ajudar. Recipiente Dot. Deixe-me mostrar tudo aqui. Como se isso estivesse dentro do D do nome da classe do contêiner. Então, quero dizer, todas essas coisas, o título, a descrição do barco. Vamos posicioná-la. Adivinha o que? Será absoluto para colocá-lo em cima da imagem do herói. Porque aqui nós o definimos como relativo. E aqui, quando você fizer o absoluto, esse cara virá direto para o topo. Não apenas na parte superior, bem na frente do corpo? Sim. Ok. Não se preocupe, vamos fazer isso para que você possa entendê-lo bem o suficiente. O que vou fazer agora é fazer com que o fundo seja um aro. Quando você economiza. Volte para o navegador. Ainda o temos aqui embaixo. Vamos dar uma olhada. Eu escrevi está bem. Quando você faz absolutos e embaixo um rem, esse contêiner deve estar em cima do herói, mas no momento parece que não está funcionando. Oh meu Deus, eu percebi que a mina estava errada. Me desculpe por isso. Essa é a grafia correta do contêiner. Eu sei que a maioria de vocês pode realmente ter visto isso na palestra. Certifique-se de corrigi-lo. É um erro tipográfico. Limpe esse cara e cole aqui. Agora temos a grafia correta do contêiner. Salve no navegador. Agora temos os fogões aqui. Ok, está tudo bem, mas vamos preparar mais sopa. Venha aqui. Tudo bem, dentro do contêiner, temos o título. E, claro, quero verificar o nome da turma novamente porque não quero que entremos em outro labirinto. O título está aqui para copiar. Gente, olha, nós temos que fazer assim que não fiquemos bem, está tudo bem, certo? Usando o título, temos a etiqueta H1. Aqui. Vou deixar a margem, transformada de cinco rem, maiúscula. Vamos salvar e ver. Ok, está bonito aqui, não é? Vamos dar a ele um tamanho de fonte de 73 pixels. Tudo bem, então, para o plano de fundo da fonte, vou copiar e colar do auxiliar de código. Você vai dar uma olhada. Você vai ver o plano de fundo do herói. Copie e cole esse bloco aqui. Salvar. E então vamos ver o resultado no navegador. Dê uma olhada. Você pode ver agora que temos esse Superman aqui com uma boa aparência. Eu adoro isso. Ok, vamos estilizar rapidamente a tag p. Margem, parte inferior de -50 pixels. A largura é de 40 pixels. Margem restante como manutenção. A margem restante é de cinco rem. A família da fonte não é problema. Dê a ele uma família de fontes de Lexend, Deca, coma, sans, serif. Em seguida, basta especificar a cor a ser branca. Tudo vai ficar bem. Parece bom, de fato. A margem inferior deve ter 50 pixels e não -50 pixels. Você pode ver agora que está no topo. Também temos os botões aqui, não se preocupe, vamos colocá-los no topo agora mesmo. Então, fora do título, temos outra div. Deixe-me mostrar a div aqui com o nome da classe dos boardings. Só vou copiar os botões de pontos do nome dessa classe. E então eu vou fazer com que ele seja flexível. Vamos dar uma margem de cinco rem. Lacuna desviada para rem. Ok. Está tudo bem. Ok. O que, novamente, temos que fazer? Temos que estilizar o botão e deixá-lo mais bonito. Também temos a classe btn. Temos pontos, mais classe BTN. E tudo isso, você já sabe que está no topo, aqui a mistura de grafias dos nomes das suas classes está correta. Vamos justificar o conteúdo. Para centralizar, as fontes dentro do botão ficarão vermelhas. Vamos dar a ele um raio de fronteira. Ok, vamos fazer disso um wireframe. Na verdade, isso o deixará um pouco curvas. Vamos salvar e ver. Ok, de fato está indo bem. Vamos seguir adiante. O tamanho da fonte. Um ponto para ele. A folga é de um estofamento de aro, 0,9 faixas de acolchoamento à esquerda para o padrão REM à direita. Ponto de sapato para AIM. Ups pessoal, dêem uma olhada. Não sei por que isso continua acontecendo. Ok. Corrigiu a borda. Não queremos a fronteira, então vou fazer com que ela não seja Vamos ver o que temos por enquanto. E parece bom. Diminua o zoom. Adoro os resultados. Vamos continuar com o caso. Vamos fazer disso um indicador. Então, será exatamente o mesmo que o número mais entre n. Então copie o estilo de a aqui e cole-o aqui ao salvar a, coloque-o de fora. Certo? Agora, temos que mudar a cor de fundo do mais btn. E a cor aqui, que é a cor da fonte em si, será branca, a cor de fundo. Vamos torná-lo preto e a borda. Cuidado. Então esse cara aqui, o corpo vai ter 0,1 RAM, branco sólido. Vamos dar uma olhada. Perfeito. Tudo está em boa forma. Mas uma coisa que eu quero fazer agora é o espaço vazio entre a descrição na parte inferior é bastante compatível. Então, acho que temos que diminuir um pouco. Deixe-me ver a descrição, que é o título. A descrição aqui, a margem inferior. Vamos fazer dez. Veja o que, quão polido não funcionou assim. Ok, vamos encontrar uma maneira de derrubá-lo. Então eu vou fazer com que olhem -50 caras, parece que o -50 funcionará desta vez e funcionará. Tudo legal. Mas uma coisa que eu quero que implementemos é deixar o plano de fundo um pouco escuro para que a imagem que é a imagem do herói, ok, pessoal, vamos implementá-la para que vocês entendam o que estou prestes a dizer. Venha aqui, vá até o topo. E aqui vamos fazer a cor de fundo. Vamos torná-lo preto. Feito isso, certo, não seria o herói, eu vou fazer ponto, plano de fundo, traço, imagem. Não se preocupe, vamos criar essa classe agora mesmo. Copie, dê ao IMG um nome de classe de imagem de fundo, o ponto mais simples e depois volte e menos Tailândia está aqui? Vamos ver o que acontece por aqui. Futa, eu vou fazer o brilho. Vamos fazer com que o brilho seja 40 por cento, pois espero que isso funcione. Funcionou perfeitamente bem. Exatamente o que eu quero dizer. Às vezes, o resultado do seu trabalho é a melhor explicação. Essa era a minha intenção. Venha aqui. Talvez você nem precise fazer isso. Ok? Agora conseguimos ter um fundo transparente. Isso é clássico. Isso é tudo por enquanto. E na próxima aula, implementaremos a votação por reprodução para que, quando o usuário clicar no botão Reproduzir, ele o redirecione para o componente de reprodução em que o filme começará a ser reproduzido . Vai ser interessante. Nos vemos na próxima palestra. 88. 86 Margem consistente: Tudo bem, então, se você observar com atenção, perceberá que não temos uma margem consistente. Deixe-me mostrar o conteúdo aqui, que é a descrição, o título e os botões. A margem esquerda é de cinco RAM. Mas ao observar a parte superior, você perceberá que o logotipo da Netflix aqui nem tem nenhuma margem aqui à esquerda. Então, o que vamos fazer é também especificar a margem restante para ser phi de RAM para que ela comece na mesma linha. Por assim dizer. Agora volte para o código VS e abra a parte superior. Agora, como esses, temos que rolar para baixo até onde temos o lado esquerdo. Lado esquerdo, estamos aqui. Tudo bem, é a lacuna a ser quebrada? Margem esquerda? Vamos fazer com que seja cinco rem. Você pode ver agora que tudo está alinhado? Se você observar o canto superior direito da tela, perceberá que o botão de desconexão está quase saindo da tela. Eu não gosto disso. Então, venha aqui, vamos procurar o lado certo. Do lado direito onde você está, aqui está a margem, certo? Vamos aumentar o alcance. Eu vejo Save. Linda. Agora temos um design muito bonito e maduro. É bom assim. Vamos prosseguir para a próxima palestra em que projetaríamos a empresa de reprodutores de filmes. 89. 87 Componente de VideoPlayer: Tudo bem, então nesta palestra, vamos criar o componente player de filmes. Mas antes de prosseguirmos, precisamos implementar o OnClick para essa parte inferior, que é o botão Play. Assim, quando o usuário clicar no botão Reproduzir, ele será redirecionado para o reprodutor de filmes. Volte para o código VS, Netflix. Temos que importar, usar a navegação. Onde fazemos isso agora? Ok, olha isso, o melhor NEF. Eu vou cortar, vir aqui e colar. Então, essa seria a contribuição que recebemos da biblioteca, e essas serão as entradas de nossas próprias empresas. Então, aqui eu vou fazer em potes, usar a navegação do React, a cúpula do roteador. Aqui temos que inicializá-lo. Eu vou fazer const, navigate. Um usuário navega. É claro que é uma função. Então, temos que fazer algo assim e voltar para a peça comprada aqui. Eu vou fazer onclick, onclick of the body. Vamos navegar até o jogador. Ok, deixe-me mostrar o componente do aplicativo novamente. Eu continuo te mostrando esses. Você pode ver que aqui está a rota e vamos navegar até esse componente chamado player Command B. E páginas, páginas, player, página do player, salvar, salvar no navegador. Vamos clicar nesse botão e pronto, estamos aqui na página play a. Você pode ver a peça no topo? Bom. Feche isso, feche isso e feche na parte superior. Agora ficaremos com o jogador dot g is. Então, o que vamos fazer aqui dentro do componente player, vamos ter um contêiner dividido. Novamente, certifique-se de que o baço do continente esteja correto desta vez. Ok, vamos importar o Stout dos componentes iniciais. E esse contêiner do jogador, const, contêiner do jogador é igual stout.df e depois ao banco traseiro. Tudo bem, ficaremos bem. Definitivamente. Tenha um DVI, dê o nome da classe clear, logo quando o player div, outro div com o nome da classe de seta para trás, à direita. Para trazer a seta para trás, vamos renderizar o BSR para a esquerda. E esse ícone BSR à esquerda vem do ícone do React em vasos, seja S, seta à esquerda dos ícones do traço do React. E, claro, vamos resolver isso com o BS. Os Bs estão corretos. Ok, está tudo bem. Agora vou fazer o VS seta esquerda renderizar o ícone aqui. E então vamos especificar o onclick. Quando o usuário clica nesse ícone, o que acontece? Queremos voltar para a página da Netflix. Então, com um clique, eu vou fazer. Agora temos menos um aqui e vamos fechar o que é a etiqueta de fechamento automático. Então, agora temos duas entradas usadas, navegue e inicialize. Vamos voltar à página da Netflix e copiá-la. Vou nos copiar e navegar a partir daqui. Venha aqui, cole novamente, aqui, copie a inicialização e cole aqui. Tudo legal. Então, logo após a div de encerramento da seta para trás do nome da classe, teremos aqui dentro desta div do nome da classe do jogador. Opa, isso deveria ser um jogador, por favor. Vamos ter a tag de vídeo, video SrC. Então, vamos copiar o trailer da barra de código do halo e colá-lo aqui. Este é o link para o vídeo mais próximo com uma tag de fechamento automático, a menos que atendam às configurações necessárias. Antes de prosseguirmos com as configurações, vamos salvar, ver o que temos. Vamos atualizar. Você pode ver que temos o vídeo aqui? Por enquanto. Você não pode reproduzir o vídeo. E sim, então vamos fazer as configurações necessárias. Vamos ativar a reprodução automática. Então vamos fazer um loop. E os controles. Vamos fazer com que seja mutado para que ele não faça barulho. Quando você atualiza. Você pode ver bem, vamos remover menos do que mover o mutante. Agora temos os controles de tudo que está funcionando. Ah, sim. Você vê isso? Está tudo bem. Então, o que vou fazer agora é estilizar os vídeos e tudo funcionará perfeitamente bem. Tudo bem, Brenda Starr, tocadora de componentes. A largura. Vamos fazer com que a largura seja 100, largura visualização, altura, 100 pontos. Seta para trás. Deixe-me te mostrar. Esse é o locatário. Garante que a grafia esteja correta. Tenha com posição absoluta. O preenchimento é dois ou M, Z, índice de traços. Vamos fazer disso um. Como V G, que serve para que o ícone seja preciso. O tamanho da fonte será, que é o tamanho do ícone. Vamos fazer com que seja três rem, um ponteiro causal. Eu vou fazer aqui a cor do SVG, cor, branco. Vamos ver o que acontece. Vamos lá. Agora é hora de estilizar o vídeo. O vídeo, o que vou fazer, vou atingir 100% de altura. Temos 100 por cento. Feito isso, salve o projeto e no navegador. Vamos clicar na tabela. Tudo está funcionando perfeitamente bem. Tudo bem, vamos nos divertir. Ok, está tudo bem. Muito obrigado. E isso é tudo por enquanto. Na próxima palestra, começaremos a desenhar os cartões para que você tenha a exibição do filme aqui que seja muito interessante. Nos vemos na próxima palestra. 90. 88 MovieCard: Bem-vindos de volta a todos. Nesta palestra, projetaremos os componentes do cartão de forma que, quando o usuário passar o mouse sobre o recorte, apareça o trailer do filme e o restante das informações, como os botes salva-vidas no botão de não gostar no botão Adicionar duas embarcações favoritas. Então, sem mais delongas, vamos começar. Volte ao código VS Command B para abrir o Explorer. Então, dentro do componente, vamos criar um novo arquivo chamado card dot js are EFC, que é agitado, para gerar o componente funcional de seta, fechar o Explorer. E, novamente, Comando P. Vamos pesquisar Netflix para renderizar esse componente, que é o componente da placa que os direitos estavam na página da Netflix. Estou aqui. Então, vamos renderizar os componentes da placa aqui. Quando eu fizer isso, o componente do cartão será importado na parte superior para mim, rolando automaticamente até o topo. Então você vê isso aqui. Ok. Portanto, certifique-se de importar a empresa do cartão para a banheira. Estou aqui, salve. Então, vamos fazer as entradas necessárias, como na parte superior, vamos importar o gancho de identificação dos EUA. E, claro, espero que você saiba que eles usam o TikTok como uma função. Então, definitivamente temos que invocá-lo quando quisermos fazer uso dele. Também precisamos importar e usar navegadores da cúpula do roteador React. Novamente, temos que importar Stout a partir de componentes robustos. Feito isso, vamos importar os ícones necessários para serem usados, como o ícone de luz, antipatia e muito mais. Não se preocupe, eu já preparei os ícones. Então, o que vamos fazer é copiar e colar, certo? Estamos no código **** power. E eles são esses. Portanto, destacar e copiar os ícones aqui não seria chamado de auxiliar. Venha até o topo e cole. É tão simples quanto isso. Então, o círculo nítido vem dos ícones de Riade e nós o cobrimos com eles. Portanto, todos os ícones vêm , na verdade, dos ícones de Riade. Não há nada com que se preocupar. Tendo feito isso. Vamos declarar as variáveis de estado necessárias a serem usadas. Primeiro, vamos fazer const On Whole Bad Karma, colocado em hovered. Então, vamos fazer estados iguais e usar. Obviamente, é uma função e isso será uma operação booleana, então o estado inicial será falso. Sim, depois de fazer isso, novamente, também precisamos inicializar a navegação nos EUA aqui. Venha aqui. Eu vou fazer const, navigates, aquatic, usar Navigate. É tão simples quanto isso. Feito isso, vamos prosseguir com o design. Venha aqui. Vamos ter um recipiente consistente e cortado. Inicie dot div, então, exatamente quando a bactéria, ou seja, é aí que o estilo aconteceria. Copie o recipiente do cartão. E então vamos encerrar todo o aplicativo com o contêiner do cartão. Abra a etiqueta e, em seguida, cole, feche a etiqueta. Esses destaques, esse cara, mude para cá. É tão simples quanto isso. O que temos que fazer agora é limpar isso por dentro, vamos exibir o pôster. Ok, então o que eu vou fazer é IMG, SRC, equa. Deixe-me mostrar o link para a imagem do pôster. Aqui está o destaque e o texto. Venha aqui, cole mais de perto com uma etiqueta de fechamento automático. E dentro da tag, vamos fazer as configurações necessárias, como probabilidades, estimativas e chances de ser um pôster de filme. Portanto, se a imagem não for exibida, essa será a alternativa. Então, aqui, vamos especificar o onclick. Clique no pôster. Queremos ser redirecionados para o componente play movie, onde começaremos a reproduzir o filme correspondente. Então, o que eu vou fazer agora é assim e depois vou fazer Navigate Slash Player. Vamos testá-lo. Salve no navegador. Clique em. Linda. Tudo está funcionando perfeitamente bem. Ok, ótimo. Então, antes de prosseguirmos, quero que façamos algo muito, muito rápido aqui. Porque você tem que entender essas coisas bem o suficiente. Venha aqui, vamos aplicar o estilo ao recipiente cortado, uma largura máxima de 30 pixels. Então eu quero te mostrar uma coisa. Vamos dar a ele uma cor de fundo. Vamos torná-lo vermelho. Se eu começar, então eu só quero ir embora. A largura máxima segura no navegador, você pode ver que o contêiner cortado está realmente cobrindo todos os lugares aqui? Você vê que isso é exatamente o que eu queria te mostrar. Agora, depois de fazer isso, vamos continuar. Vamos configurar o Hoover para esse contêiner de cartões. Então, quando o usuário passa o mouse sobre o recipiente do cartão ou o pôster do filme, para ser mais preciso, queremos que ele mostre o trailer e algumas das informações. Então, deixe-me te mostrar aqui. O que vamos fazer agora é assim. Vamos fazer nosso mouse enter. O que vamos fazer é atualizar o estado inicial. O estado inicial aqui é falso. Portanto, temos que chamar a função de configuração para atualizar o estado inicial. E, claro, é exatamente assim que se faz isso e, em seguida, defina-o como falso. Agora, o que vou fazer é implementá-lo logo após o fechamento da tag IMG. Vamos fazer se Hoover for um quadrúpede e queremos mostrar informações do IVA, caso contrário, não faremos nada. Então, aqui, se a ANOVA for verdadeira, basta copiar essa tag IMG novamente, destacá-la, copiá-la e colá-la aqui. Certifique-se de formatar o código para que pareça um pouco limpo. Então, por exemplo, eu só tenho que salvar, voltar ao navegador, necessidades. Nada acontece. É simplesmente porque ao inserir o mouse, precisamos atualizar os estados iniciais para serem verdadeiros e não falsos. Tão bom, assim. Ok, então quando o usuário coloca o mouse no pôster do filme, precisamos atualizar o estado inicial para verdadeiro. E então aqui estamos chamando a função de configuração, estamos prontos para atualizar o estado inicial, que é falso. Vamos atualizá-lo para verdadeiro. E então o efeito de passar o mouse, que é essa imagem, aparecerá. Novamente. Feito isso, vamos fazer o máximo possível para que, quando eles usarem, eu removi o mouse, as folhas do mouse adquiram. Também precisamos atualizar o estado inicial para forçar a quase saída. Então copie tudo aqui e cole como atualizado para falso. Então, tendo feito isso, vamos dar uma olhada. Quando você passa o mouse, você vê esse cara aqui, e quando você tira o mouse, ele desaparece, quase Enter, você vê o efeito de passar o mouse quase saindo, ele volta ao normal. Além disso, ao passar o mouse, queremos garantir o trailer do filme correspondente da massa. Então, aqui vamos fazer um vídeo e depois jogar um GS. Destaca a cópia do vídeo que vem aqui após a tag de encerramento do IMG. Colado aqui mostra um erro e não sei por quê. Ok, não se preocupe, isso é simplesmente porque temos que embrulhá-lo em um contêiner principal. Então, o que eu vou fazer agora, certo, não seria passar o mouse aqui. Vamos fazer div, dar a ele um nome de classe de Hoover, certo? Dentro desse div, teremos outro div com o nome da classe image, dash, video, dash, Wrapper. Copie tudo aqui das linhas 2092, linhas 36, cortes. É melhor que o div com o nome da classe de imagem, vídeo ou APA não formate o código, salve o aplicativo e volte para o navegador. Hoover novamente. Agora, tudo está funcionando conforme o esperado, mas não estilizamos esse componente, então não espere que ele pareça limpo e bonito. Por enquanto. Embora não esteja parecendo feio. As câmeras são desligadas e tudo funciona perfeitamente bem. Eu falei demais novamente. Então, logo após o fechamento da div do cluster name image video wrapper, teremos outro div com o nome da classe do contêiner de informações. Em um contêiner Dodge cheio, certo? Não seria o contêiner de informações, teremos vários ícones que serão exibidos quando o cartão for Harvard. Então, aqui vamos ter uma etiqueta de história e essa história logo em seguida, vou fazer um aviso vermelho porque também queremos exibir o título do filme, dar a ele um nome de classe. Também vamos chamá-lo de nome de filme. Ao clicar no nome do filme, queremos navegar até a reprodução do nosso componente, onde o filme correspondente será reproduzido. Aqui, especifique o OnClick. Então, logo após a tag de encerramento da história, teremos outra div. E essa div conterá todos os ícones que serão usados. Então, vou chamar isso de div icons rights dentro do div do cluster de ícones. Vamos ter outro div, dê a ele um nome de classe de controles. Porque teremos vários ícones de controles lá. Agora vamos renderizar o primeiro ícone. Vou colocar um kosher. Feche-o com a etiqueta de fechamento automático diretamente dentro. Dê também um título de jogo ao clicar neste ícone Queremos ser redirecionados para a empresa de reprodutores de filmes. Logo após o fechamento da loja de futebol Audio Play, teremos outra. Roi bate, dá vontade de fugir. E vou dar a ela um título de luz, destaques, duplicá-la. E então aqui estarão nossos itens no campo. E isso vai ser antipatia. O usuário pode editar, curtir ou não gostar do filme. Outro. Aqui, faremos com que o BS cheque para renomear e remover da lista. Descrevi os enredos, dê um título para adicionar à minha lista. Então, tendo feito isso logo após o fechamento da div dos controles de nome da classe, teremos outro div com o nome da classe close it down. Vamos dar a ele um nome de classe. Informações. Bh, eu tenho um resumo. Dê a ele um título com mais informações. Aproxime-se da tag de fechamento automático logo após a div de fechamento dos ícones do nome da classe como este, essa div aqui que termina nas linhas 54. Teremos outro div com o nome da classe de janeiro. Então, vamos fazer com que o filme seja generoso. Aqui. Queremos exibi-los com uma lista não ordenada. Dentro. Você vai ter uma etiqueta LI. Então, aqui eu vou agir. Então você pode, simplesmente, porque isso vai acontecer de forma dinâmica. Então, podemos simplesmente ter essas coisas aqui desse jeito. Quando você salva o aplicativo. Vamos conferir o que temos no navegador. Ok, vamos aspirar. Você pode ver todas as paradas aqui? Tequila, jogue, desgoste, acrescente e remova. Temos muitas paradas por aqui. Tudo bem, então isso é o que temos por enquanto. Eu entendo profundamente que não está bonito, mas posso garantir que também não está feio. Então não se preocupe. Na próxima palestra, começaremos a estilizar essa empresa. 91. 89 css de cartão: Tudo bem, pessoal, então vamos estilizar rapidamente o componente do cartão. Volte para o código VS, role para baixo. E aqui vamos remover esse comentário. Então, vamos dar a ele uma largura máxima de 230 pixels. Quando você salva e finaliza a compra no navegador e nos IDs. Agora você pode ver que a imagem está bem maior, mas não se preocupe, vamos corrigir isso. E depois a largura em si, que as imagens lhe dão uma altura de 100 por cento. O cursor será um ponteiro. Vamos fazer com que sua posição seja relativa. Agora, queremos atingir o IMG diretamente. Então eu vou fazer IMG. Vamos dar a ele um raio de borda, 0,2 ram. Meu Deus, esse cara continua, não sei por quê. A largura 100%, a altura, 100 por cento. Índice Z. Vamos fazer dez. Ao salvar, dê uma olhada no navegador verá que fica bem assim. Na verdade, o pôster é muito pequeno, mas está bem. Não há problema. Vamos continuar. Agora. Vamos começar a trabalhar com o mouse. Então, em Hoover, DOD, Hoover. E o usuário joga com o mouse no pôster do filme assim. Você pode ver que todas essas pombas não estão alinhadas, então temos que colocar tudo no lugar para que fique bem. Primeiro, teremos o índice z. Nove benignos. Vamos dar a ele uma altura máxima de conteúdo. A largura será de 20 jantes. A posição é absoluta. Mas agora não queremos colocá-lo diretamente em cima. Deixe-me mostrar, salve o aplicativo. Volte para o navegador. Quando você passa o mouse, você pode ver? Você vê? Portanto, não queremos colocá-lo diretamente em cima dele. Então, queríamos relaxar um pouco. Então, eu vou fazer do topo -18 V H da esquerda vai ser Zara. Forneça o raio da borda de 0,2. Rem. Novamente, olhem esses caras, me desculpe por isso. Dê a borda que vamos fazer Joe point 1RM, cinza sólido. E é claro que a RAM deve ser o valor, a cor de fundo, vou fazer 181818, Transition, 0.3 s. Então, quando você finaliza a compra, o navegador passa o mouse sobre ele. Deixe-me mostrar, você pode ver que está gradualmente tomando forma. Você pode não perceber por enquanto, porque tudo está escuro. Mas eu posso te garantir. Ok, vamos prosseguir. Para os pontos do invólucro de vídeo da imagem. Deixe-me te mostrar aqui. Imagens duram. Onde você está aqui? É destacar, copiar, dotar, emitir um invólucro de vídeo e, em seguida, deixar sua posição relativa. A altura é de 140 pixels. E para os direitos da tag IMG dentro do contêiner de imagem e vídeo, vamos dar a ele uma largura de 100 por cento. As alturas de 150 pixels. O objeto se encaixa na capa. Faixa de 0,3 do raio de borda. De cima para baixo, Zara. O índice z será quatro aqui. Então, vamos fazer com que ele posicione os absolutos. Ok, para o vídeo, certo, dentro do Hoover. Novamente, para o vídeo, ele terá exatamente as mesmas dimensões, então eu só preciso copiá-lo e colá-lo aqui. Salvar. Agora vamos tirar o navegador. Dê uma olhada. Você pode ver que está gradualmente tomando forma. De novo. Vamos finalizar isso. Para o contêiner de informações em um contêiner de quatro traços. Deixe-me ver daqui de cima, o que temos em estadias em recipientes de alimentos, precisa ser gramaticalmente exercido aqui. Porque se você digitar incorretamente os nomes das classes, você vai estragar as coisas sozinho. Então, vamos fazer com que ele exiba coluna de direção flexível e flexível. Tão bom quanto o acolchoamento de um rem. Vamos dar uma lacuna de 0,5 rem. Salve no navegador, Hoover nele. Agora você vê como tudo está surgindo gradualmente. Para os ícones, pontos, vamos ver qual é o agrupamento dos ícones. Também há ícones aqui. Não ria de mim. Só estou tentando ser exato aqui para não ter problemas. Agora vamos fazer com que ele exiba de forma flexível, justifique o espaço entre o conteúdo. Vamos estilizar o SVG para que a cor apareça bem. Svg. Primeiro, quero dar uma cor. Então, a cor do SVG será, vamos fazer com que seja assim. Sete. Confira. Ah, sim. Você pode ver agora? Vamos acabar com isso. Vamos dar a ele uma borda de 0,100 REM, raio de borda branca sólida. Queremos sua subclasse, então vou fazer 50 por cento do tamanho da fonte. Caso é uma transição de ponteiro. Terá 0,3 s de saída ou facilidade de entrada e saída. Então, para dizer, você entendeu, salve e veja o que temos. Kim, você pode ver? Ok, então podemos realmente mudar a cor do SVG para branco. Eu acho que vai ser mais melhor. Sim, ele está melhor assim. Então, vamos fazer a ANOVA. Quando você passa o mouse sobre o SVG, a cor será essa. Vamos experimentá-lo. Pegue isso. Você pode ver? Está bem, como se isso fosse bom. Portanto, se você observar com atenção, perceberá que não há espaço entre os ícones SVG. Então, o que eu vou fazer é escrever “traga os ícones aqui”. Temos outra estilização, o controle, o ponto, os controles. Vamos fazer com que ele exiba a flexibilidade. Então, vamos dar uma lacuna de um rem. Salve o aplicativo. Agora. Veja, eu acho que a diferença de um rem é na verdade demais para isso. Vamos fazer com que seja 0,5 rem. Legal. Isso é bom. Beta-zero. Ok, então antes de prosseguirmos, eu quero te mostrar uma coisa aqui. Você vê esse ícone. Deixe-me compartilhar aqui div com o nome da classe dos ícones. Esta é a div aqui. Isso termina aqui. Então, ele encerra os controles e todo o SVG. Então aqui o que eu vou fazer, esses são os ícones. Ele encerra todo o SVG. Então eu vou cortá-lo daqui, colar aqui para que ele feche e contabilize. Então, logo depois disso, vamos gerar pontos. Vamos fazer com que ele exiba flexionalmente a lista não ordenada. Também faça com que ele exiba flex. A lacuna. Vamos fazer disso um copo de vinho. O padrão aliado, certo, será 0,7 rem. Então eu vou fazer aqui no Fest of type. Vamos fazer pelo menos o tipo inicial igual a nulo. Então, queremos remover os pontos e todas as paradas. Portanto, o estilo e o tipo da lista serão conhecidos quando você salvar o navegador. Ok pessoal, parece que todas essas cidades não estão afetando os generosos. Então, vamos ver algo no topo. Isso é janeiro. Você vê? É exatamente por isso que eu continuo verificando , porque às vezes pode estar errado. Então, vamos tornar isso generoso assim. Sim, Save. Agora tudo vai funcionar bem. Vamos dar uma cor aqui. A cor vai ser ampla. Salvar. De novo. Agora você vê que ficamos com o título. Então, deixe-me mostrar onde temos esse título. O canto superior direito aqui é ele. Agora? O nome da turma está chegando. Então, vou copiar diretamente no contêiner de informações. Vamos ver o contêiner de informações, onde você, aqui, está o contêiner de informações. E então vamos fazer o nome do filme Dada. Vamos dar a ele uma cor branca para que você possa decidir estilizá-lo, se desejar, e como quiser ao passar o mouse. Você pode ver? Agora, tudo funciona perfeitamente, conforme o esperado. Dê uma olhada. Quando você clica no título, você é levado até aqui. Ok. Então pessoal, uma coisa que eu não gosto é que não há espaço entre a placa e esse outro componente. Então, o que vou fazer agora é especificar uma margem superior aqui. E vamos transformá-lo em um quarto. Você pode ver agora que temos um espaço entre os incautos. Quando começarmos a implementar os filmes, tudo ficará bem. Mas, por enquanto, vamos dar uma olhada no cartão novamente. Ok, outra coisa que notei aqui é que quando você passa o mouse sobre ela, você pode ver que ela desce. Esse não é o resultado esperado. Sim, deve ir até o topo. E eu acho que isso vai corrigir que o topo deveria ser -18 VH. Eu sei que a maioria de vocês pode não ter problemas aqui porque eu pronunciei que era 18 v aqui, mas tipograficamente, eu pulei a sebe. Então, salve no navegador. Tudo está funcionando bem conforme o esperado. É incrível, eu adoro isso. Então, isso é tudo por enquanto. Nos vemos na próxima palestra. 92. Chave de 90 api: Bem-vindos de volta a todos. Nesta palestra, vamos começar a trabalhar com a API. E a API que vamos usar neste curso é a API do banco de dados de filmes. Então, rapidamente, desenvolva como pontos, os filmes db.org. E então, aqui na introdução, aumente o zoom e deixe-me mostrar para você. Você precisa clicar no link da API. Clique. E então, quando você fizer isso, uma nova guia será aberta. No canto superior direito da tela, você verá o CMDB conjunto. Ok, então clique para entrar aqui. O que você vai fazer é digitar suas credenciais. Então, meu nome de usuário será uma barra de ferramentas. Minha senha, é claro, não vou te dizer qual é, então você pode fazer suas próprias coisas do seu jeito. Certifique-se de que sua senha esteja correta. Meu e-mail, eu vou fazer. Ok, vamos fazer ahaystack@gmail.com. Então eu vou me inscrever. Agora mesmo. Um e-mail de confirmação foi enviado para mim. Então, o que eu vou fazer é abrir minha conta do Gmail. E então aqui está. Preciso clicar neste botão aqui para ativar minha conta. E pronto, depois de fazer isso, você pode digitar seu nome de usuário e sua senha. Você pode voltar aqui, deixe-me mostrar e digitar sua senha. Eles são todos a mesma coisa. Vou salvar a conta e tudo mais. Feche isso, feche isso. E agora você será redirecionado para a página do seu perfil. O que você vai fazer a seguir é entrar aqui dentro deste ícone de desconexão no canto superior direito da tela. Clique para alternar a navegação e, em seguida, clique em configurações. Estamos nas configurações, você só precisa acessar a API. E aqui na parte superior, clique em Criar. E diz que tipo de API você deseja registrar , desenvolvedor ou profissional. Eu só tenho que me desenvolver aqui. E depois disso, você deve ler todos esses termos e condições. Faça isso se quiser. Independentemente do fato de eu não ter lido os termos e condições, ainda tenho que aceitar. Ok. Ótimo. O nome do aplicativo será projeto Netflix. O URL. O que vamos fazer agora é copiar e colar meu URL do YouTube aqui. Porque, por enquanto, suponha que você não tenha um site. Eu só tenho que ir ao YouTube. E então aqui está minha página do YouTube como esta. Copie o URL. Você pode copiar qualquer URL de sua escolha. Eu não acho que isso importe. Cole aqui mesmo. O resumo da inscrição que vou fazer. Este é um exemplo de sites de filmes que você pode decidir escrever. O teste acabou. I Primeiro nome e sobrenome. Seu X, k. Meu e-mail já está aqui. Meu número de telefone. Eu só tenho que fazer algo como esta cláusula, 23581400, ou 3755. E, a propósito, esse é meu número de telefone real. Que eu não vejo isso de jeito nenhum. Para o endereço, vamos apenas fazer um endereço temporário e temporário, destacar, copiar, vir aqui, colar, todas essas coisas. Isso realmente importa? Ok? A cidade, eu vou fazer Delta State, ok, Desculpe, a cidade vai ser, vamos fazer, vamos fazer isso aqui. Aqui eu vou fazer fitas deltas e o código postal. O que novamente é o código postal? Acho que são 32 zeros. Existem? Estou correto? Então você só precisa preencher seu endereço com seus dados aqui e clicar no botão Enviar. Maravilhoso. Então, aqui temos a chave da API. Deixe-me mostrar que essa é a chave da API e deixe-me mostrar outra coisa aqui que você deve observar. Eu quero ampliar um pouco. Como se esse fosse o URL base. Então, ao acessar esse URL base, você precisa segmentar o conteúdo real que deseja fagear, neste caso, o filme, a barra, o que quer que seja, o que for. E então eles colocam a chave da API e fazem isso. Portanto, é exatamente assim que você usará sua chave de API. Você especifica nosso URL base, destino, o que quiser, neste caso, filme, e faz algo assim. Então, aqui você escreve essa consulta para especificar a chave da API, e a chave da API é igual d. Então, neste caso, minha chave de API é essa. Sim, do seu lado, sua chave de API será diferente. Portanto, por favor, não copie minha chave de API porque ela não funcionará para você. Sim, então tudo o que você tem como chave de API é o que você deve usar do seu lado. Então, vamos adicionar rapidamente o código VS e configurá-lo corretamente. Código Vs. Então, aqui você tem que abrir os utilitários, clique com o botão direito do mouse em Novo arquivo. E vamos criar o arquivo chamado constantes, pontos, os Jays estavam na constante G é, vamos configurar a URL base e a chave da API. Então, o que eu vou fazer é um spot const. Minha API de sublinhado, a chave de sublinhado, será igual a, deixe-me mostrar, abrir as aspas duplas e os direitos dentro das aspas duplas. Volte. Certifique-se de destacar esse cara aqui, certo? Clique em Copiar. Então, essa é minha chave de API. Por favor, novamente, certifique-se de copiar e colar sua própria chave de API ou de vir aqui e colá-la entre aspas, assim. Ok, então sempre que quisermos usar minha chave de API, não precisamos chamá-la assim, ok? Então, só precisamos chamar minha chave de API e ela recuperará qualquer chave de API aqui. Vou fazer um spot const, sublinhado do CMDB, URL sublinhado. Então, esse será o URL base do T MDB. Além disso. Vamos copiá-lo e colá-lo diretamente entre aspas duplas. Volte aqui. Eu mostrei isso mais cedo a partir do HTTPS, seja o que for, seja o que for aqui. Dois cortam três. Por favor, dê uma olhada no que eu destaquei, por favor. Chris fez aqui assim. Novamente, terminamos de configurar a API. Na próxima palestra, instalaremos kits de ferramentas para escritores e também configuraremos. Há um kit de ferramentas de dose para poder buscar dados. Nos vemos na próxima palestra. 93. 91 Kit de ferramentas de Redux: Nesta palestra, continuaremos configurando o redox para abrir o VS Code, Control C para interromper o servidor atualmente em execução. Então, a primeira coisa que vamos fazer é instalar a chave redox de duas chaves. Aqui está o comando de instalação. Copie os destaques, venha aqui e cole. Este comando está dentro do código hidrelétrica. Pressione a tecla Enter para que ele seja acionado. Don instalado. Bem sucedido. Vamos dar uma olhada. Abra o arquivo package.json. E aqui está. Feche isso. Agora, estamos na loja. Clique com o botão direito em Novo arquivo. Vamos criar o ponto de índice g é. E aqui está que Lee está pronto para montar peças voltaicas. Então, primeiro temos que importar e configurar a vírgula estrela criar uma sincronização de fontes. vírgula cria mentiras em que todas elas serão importadas de leitores de at para digitá-las. Então, tendo feito isso, vamos declarar o estado inicial. O estado inicial é igual a, defina-o como um objeto vazio. Quando for o objeto, faremos com que a entrada dos filmes seja uma vírgula de matriz vazia, o estado inicial da carga mais próxima. Vai ser uma vírgula falsa. Depois, o generoso. Será uma matriz vazia. Então, nesse caso, o generoso são simplesmente as categorias do filme. E, claro, você sabe que um filme pode pertencer a três ou quatro categorias diferentes. Então, isso é pelo menos o que estamos tentando fazer. Queremos afetar os filmes por meio de categorias. Não se preocupe. Quando começarmos a afetar os filmes, você definitivamente entenderá tudo o que estamos fazendo aqui, mas saiba que o estado inicial dos filmes é uma matriz vazia, o estado inicial da carga generosa é falso e o estado inicial dos generais também é uma área vazia. Simplificando, se o gerador não estiver carregado, não queremos buscar um filme tão simples quanto isso. E é por isso que nós realmente levantamos essa bandeira aqui. Então, se o generoso for falso, nenhum filme será buscado. A única vez que vamos buscar um filme é quando buscamos os generosos. E ao buscar os jantares, poderemos localizar os filmes que pertencem a esses generais em particular. Acho que você definitivamente entenderá isso bem o suficiente à medida que seguirmos em frente. Aqui, eu vou fazer const, Netflix Slice. Então, estamos criando os slides aqui. Netflix divide o mesmo, cria slides, abre e fecha parênteses, abre e fecha colchetes. E entre colchetes, teremos o nome Netflix, karma, o estado inicial. E então temos que usar os redutores extras. E depois passar o Buda, o Buda para um objeto vazio. Voltaremos a isso em um G, se você ainda não fez isso. Por fim, temos que exportar, const, armazenar, o CWA, configurar a loja. Todos esses dados serão armazenados aqui. E aqui teremos um redutor, o redutor fatias da Netflix. Bom. Feito isso, o próximo passo é encerrar todo o aplicativo com o provedor. Então, o que estamos tentando fazer é fornecer a todo o aplicativo tudo o que temos na loja. Certo? Estamos no SRC. Deixe-me te mostrar como RC. Há um index.js aqui. Isso é conhecido como o index.js de nível superior. Então, aqui é onde todo o nosso aplicativo será visto. Sim, então o que vamos fazer é fornecer a loja ao nosso aplicativo que tudo o que fizermos aqui, possamos transmiti-lo a qualquer outro outono deste projeto , seja tão simples quanto isso. Ensino, bom, lindo. Feche isso. Volte para os direitos do index.js no SRC. Então, aqui vamos importar, vamos importar o provedor do React redox. E, novamente, vamos importar a estrela. É esportivo, então temos que embrulhá-lo em colchetes da loja Dot Slash. Feito isso, vamos encerrar toda a obrigação do provedor. Então aqui vamos ver a barraca, a barraca equa, a loja aqui. Em seguida, destaques recortados e colados na aula de aplicação para formatar o código. Salve o projeto. Venha aqui, salve. Certo, estamos no terminal. Temos que iniciar o aplicativo. Então, vamos ver se há algum problema aqui. Temos que esperar um pouco. Bom, com certeza, sem problemas. Odds Command I para abrir o console. E aqui você verá que não há problemas, certo? Dentro do console. Você pode ver que tudo está funcionando? Isso é bom. Ok , terminamos com a configuração e instalação do kit de ferramentas redox. E na próxima palestra, começaremos a buscar dados do endpoint da API CMDB. Isso é tudo por enquanto. Certifique-se de fazer perguntas se estiver confuso. Nos vemos na próxima palestra. 94. 92 gêneros de engate: Nesta palestra, vamos afetar os generais de filmes da API CMDB. Portanto, certifique-se de colocar o cinto de segurança, tomar seu café ao seu lado e vamos começar. Logo quando estiver no index.js, deixe-me garantir que é bom. Nós fechamos ou não. Esse cara, terminamos com isso diretamente no índice de parada dot js. Deixe-me diminuir um pouco o zoom. Então, a primeira coisa que vamos fazer aqui é instalar o ox, usar o Controle C para parar o servidor atualmente em execução. E eu vou fazer o node package manager install ox use. A instalação está em andamento. Chegue ao topo. Também precisamos importar minha chave de API de sublinhado das constantes de barra da UT. Precisamos usar o URL base. Esse URL, tudo isso que expliquei na palestra anterior quando criamos nossa conta para o sucesso da instalação axial TM dB para o próximo da fila, é para buscar os generosos. Então, logo abaixo dos estados iniciais, vou fazer aqui. Vou exportar, const, generalizar, ser generoso, igualar, criar um think tank. Abra e feche parênteses. Aqui mesmo. Vou usar a vírgula generosa para cortar a vírgula da Netflix. Então, temos que usar a função assíncrona um coletor. E, claro, isso retornará uma promessa. Então, aqui vamos esperar. Vamos fazer nosso ponto axial de peso. Então, o que vamos conseguir? Vamos fazer com que o filme seja generoso. E para fazer isso, primeiro, precisamos clicar no URL base e depois na barra, lista de barras do filme e, em seguida, especificar a chave da API. Deixe-me mostrar rapidamente o bug D, cifrão, abrindo e fechando colchetes. E eu vou fazer CMDB BaseUrl fora da barra de colchetes, barra geral e lista de barras do filme. E então teremos uma consulta aqui que será usada para atribuir a API. Então, eu vou fazer a chave de sublinhado da API , ou seja, qualquer que seja a chave da API. E vou fazer com que minha chave de API seja tão simples quanto isso. E tudo isso, vamos atribuí-lo a uma variável. Vou fazer const, const data, defini-lo como muito generoso e depois atribuí-lo assim. É tão simples quanto isso. Você pode ver? Bom. Ok, então agora vamos voltar generosos. É tão simples quanto isso. Vamos adicioná-lo aos redutores extras. Então, depois de fazer isso, vá para o reduziu-nos extra para adicionar as chaves. Role para baixo. Aqui, está certo? Estamos no Builder. Vamos fazer pontos de Buda, adicionar chaves. Vamos adicionar jantares. Ponto preenchido, mais calmo, o estado e a ação. Abra e feche colchetes, certo, para colocar, vamos fazer generais de pontos estaduais, que é igual à carga útil de pontos do leilão. A carga útil serão os dados reais. E aqui vou fazer o estado de degeneração. Temos que tornar isso realidade porque agora estamos preparando o jantar. Então, eu estou tendo feito isso, vamos tentar o log do console. O generoso registro de pontos do console. Generoso, assim. Com isso, abra a página da Netflix. E no topo, temos que importar insumos. Você usa o despacho para que algo aconteça. Temos que enviar uma ação. Não se preocupe, vamos fazer isso para que eu possa te mostrar o que quero dizer com isso. As importações usam essa passagem do React redox. Então, aqui eu vou fazer const, dispatch equa, usar esse patch, certo? Não usaria efeitos. Temos que despachar a ação, rolar até o topo e menos entradas. Eles usam efeitos em uma banheira. Efeito do gancho React. E temos que invocá-lo. E, claro, você sabe que eles usam o efeito como parâmetro. Uma é a função e a outra é a dependência r0 vírgula, a dependência aqui, por dentro, que vamos despachar. Que ação temos que enviar aqui? Queremos enviar esse cara para cá, que é o que é gerado. Então é isso que ele seria capaz de buscar os dados. Então vá para Netflix dot js e nós vamos despachar. Seja generoso. É claro que jantar é um evento. E, por favor, certifique-se de importá-lo na parte superior, assim. Então, depois de fazer isso, volte para o terminal. Vamos iniciar o aplicativo mais uma vez. Veja o que temos no console. Esperemos que tudo fique bem. Diz que os axiomas não estão definidos. Nossos caras certos retornam ao index.js. No topo, temos duas entradas. Atos usados a partir do eixo, assim, salvam o aplicativo novamente e, desta vez, vamos fazê-lo funcionar. Mas Comando I para abrir o console. E logo dentro do console, você já vê uma área ali. Abra a área. E temos o filme generoso. Aqui você tem ação, aventura, animação, comédia, drama documental, família, fantasia e muito mais. Então pessoal, isso é extremamente fantástico e eu adoro isso. Agora, conseguimos fazer com que o filme fosse generoso. Isso não é lindo? Oi. Portanto, na próxima palestra, procederemos à adaptação dos filmes em si com base nos generais do cinema. Então, temos que ajustar filmes com base em cada categoria, é tão simples quanto isso. Nos vemos na próxima palestra. 95. 93 Filmes,: Bem-vindos de volta a todos. Na palestra anterior, pudemos buscar os jantares de cinema no endpoint da API TM DB. E eles são esses aqui. Então, nesta palestra, vamos buscar os filmes do endpoint da API. Vá rapidamente para o VS Code e prossiga menos. Antes de irmos buscar os filmes. Há algumas condições de configuração que devemos ter em mente. E, de fato, temos que declarar essas condições. Portanto, não queremos apenas encaixar todos os tipos de filmes. O único tipo de filme que queremos que seja o filme com o caminho de fundo, que envolve os filmes com a imagem do pôster. Portanto, se o filme não tiver uma imagem de pôster, não queremos encaixar esse filme também. Antes de podermos encaixar qualquer filme, precisamos garantir que os gêneros de filmes estejam disponíveis. Portanto, se os gêneros do filme não estiverem carregados, não queremos encaixar esse filme. Sim, então vamos implementá-lo rapidamente com código. Antes de prosseguirmos, acho que precisamos colocar um comentário nesse log do console para que ele não perturbe. Oh, lindo. Agora o console está vazio. Venha aqui. Portanto, teremos uma matriz constante de dados do filme igual. Agora, aqui vamos pegar alguns parâmetros: matriz vírgula, vírgula. Generoso. Defina-o para uma função de seta. Ok, tudo bem. Então, vamos, para cada um, o filme aqui, ponto RA para cada um. Agora vamos ter uma área de cinema aqui. Consiste em uma matriz de filmes. Defina-o como uma matriz vazia como esta. Agora, ponto de filme, IDs gerais de sublinhado, pontos para cada um. Então, aqui vamos considerar, em geral, novamente, configurá-lo para uma função de seta. Abra, feche, colchete, constante, nome é igual a pontos generosos. Então, o que estamos fazendo aqui é procurar os generosos com sua identidade. Então, se o generoso existe, temos que extrair o nome do general e, em seguida , colocá-lo em nossa matriz é tão simples quanto isso. Abra e feche parênteses e, dentro dos parênteses, abra e feche colchetes, pegando o ID e depois fora do id dos parênteses, faremos id igual. E então aqui temos que escrever a condição. Se. Então, quando encontramos o generoso por ID, tudo o que precisamos fazer é extrair o nome e inserir o nome na matriz desses filmes. Então, eu quero mudar o nome dessa matriz de filmes para algo mais legível. E eu vou fazer filmes em geral. Acho que isso será mais legível. Filmes de janeiro, algo assim. Então, se acharmos o jantar também, temos que mover seus generais, empurrar pontos. Temos que colocá-los na matriz. E eu vou fazer nome, pontos, nome. É tão simples quanto isso. Feito isso, o próximo passo é verificar se o filme tem um caminho de fundo, ou seja , se o filme tem um pôster ou imagem de filme. Então, vamos ter a condição aqui. Se houver caminhos de fundo de pontos de filme, sublinhe o caminho. Se o filme com caminho de fundo existe, então temos que colocá-lo na matriz de filmes que passamos aqui. Todos esses fogões são autoexplicativos. Minha explicação é bem simples, então você definitivamente obterá os Gs. Então eu vou fazer o filme Array Dot Bush. Então, o que estamos pressionando exatamente? Precisamos do documento de identidade. Vou fazer identificação de pontos de filme separada por uma vírgula. Meu Deus, essa inteligência aqui está realmente bloqueando essas coisas. Agora se foi. Nós temos o nome, então temos que extrair o nome do filme. E vamos fazer o filme. Onde o nome original, o nome do sublinhado original do ponto do filme. E então eu vou fazer isso. Se o nome do filme existir , teremos que obter o nome do filme e os L, obteremos o título original do filme dot. Portanto, temos que obter o título do filme se o nome do filme não existir, porque o título do filme é a mesma coisa que o nome do filme. Então, às vezes, talvez o administrador possa usar o título para salvar o filme ou usar o nome, algo parecido. E é por isso que estamos tendo essa condição aqui. Portanto, a próxima linha do termo é obter a imagem. A imagem que vou fazer, pontos do filme, caminho de fundo. E por último, para os generais, vamos fazer filmes, general. Slides de pontos. Então, o que queremos fazer agora é realmente cortar os generais. Deixe-me explicar o que quero dizer com isso. Por exemplo, todos vocês sabem que um filme pode ter vários generosos, sim. Então, em um filme pode pertencer, digamos, a ação de aventura, você sabe, coisas assim. Então, se o filme tiver menos, suponha que dez jantares, queremos buscar apenas três jantares. Então, se um filme pertence a cinco a seis generosos, só precisamos de três dos generosos. Então, eu vou fazer zero slash three. Isso é simples como a, B, C. Então aqui temos que verificar se eu fiz algo bom, ok, tudo bem. Quando executamos o aplicativo, queremos perceber se há algum erro de valor. Agora terminamos de configurar a primeira condição. A segunda condição é simples no banco de dados da equipe, posso garantir que temos milhares de filmes por lá. Mas agora queremos buscar apenas os filmes. Sim, então não queremos que 90 filmes sejam 100 ou mais, precisamos de apenas 80 filmes. Portanto, também temos que definir as condições para isso. Aqui eu vou fazer const, obter dados do filme e configurá-los para uma função sinc. E então, dentro da função, vamos usar uma vírgula de API, coma geral, paginação. E então vamos definir a paginação como falsa. Não se preocupe, você obterá o G com clareza suficiente. Da última vez que o código estiver aqui, vou fazer const movie array, equa, configurá-lo para uma matriz vazia como esta. Então, essa área do filme aqui que passamos como direitos de parâmetro dentro da matriz de dados do filme. Agora você está entendendo. Então, vamos percorrer os filmes para buscar apenas 80 filmes que eu vou fazer. Pois seja igual a um. O ponto e vírgula termina. Em seguida, tamanho dos pontos da matriz do filme. Então, se o comprimento dos pontos da matriz do filme for menor que 80, e se I for menor que dez ponto e vírgula incrementaremos i, i mais, mais. A função sinc retornará uma promessa, então teremos que aguardar. Então eu vou fazer um show de pesos usando Odd Gate. Então, o que vamos colocar no verso, API e no cifrão, aqui vamos fazer a página e, por favor , tenha cuidado aqui para não ter problemas. E então, se eles existirem, mostraremos os pagos e não mostraremos nada. Então, o que eu vou fazer para que, se a página igual sair, horas não mostrem nada de preocupação. Vou explicar cada linha de código. Vamos apenas digitar o código e o ROE do filme. Então, teremos seus resultados. Karma, área de cinema. Mais calmo, generoso. Então, tendo feito isso, vamos retornar a matriz de filmes. Então, por último, temos que ajustar o filme. Agora, a condição foi configurada. Vamos assistir ao filme rapidamente. Vamos exportar essa função porque precisamos enviá-la como um direito de ação na página da Netflix. Então eu vou fazer filmes consistentes, gordos, iguais, criar um funk sincronizado. Certo? Dentro dessa função, vamos usar o Netflix. E aqui vamos atingir a tendência de redução da Netflix , porque também queremos pegar o filme de trem. Então, novamente, vamos usar a função async, async e await. Você já sabe. Aqui vamos abordar esse tipo. Também queremos buscar os filmes por seu tipo. Pode ser uma série, um filme sazonal. Você assiste a um filme ou termina. Então, você sabe, tipos de filmes que auxiliam no coma. E aqui vamos usar a API de tronco como o segundo parâmetro dentro dessa função. Então, isso nos dará acesso aos estados. Então, devido à nossa função, vou fazer aqui uma fatia de Netflix. Então, vamos ter acesso à fatia da Netflix. E a partir daí, obteremos os generais, definiremos como myfunc, api dot gets, getState. Eu lhe disse que isso nos dará acesso ao estado. Dos estados. Poderemos pegar os filmes. É tão simples quanto isso. Não se preocupe, ainda preciso examinar a explicação para que você obtenha dados essenciais suficientes. O Ecua obtém dados do filme, certo? Estamos nesta função dividindo o dinheiro, abrindo e fechando uma chave ondulada. Agora temos que seguir a tendência de barra do URL base do TempDB porque queremos encaixar o filme em trens. Eu te disse mais cedo. Reduza também as tendências. Se estiver na moda e tivermos que entender o cachimbo do filme. Se for uma série, se for um filme sazonal. E também queremos obtê-lo até a semana de corte. Ok, aqui temos que atribuir nossa API, API na chave Bosco, equa, minha chave de API mais uma vírgula aqui. Generoso. E então defina isso como verdadeiro. Então, se o general é baixo, isso é verdade. Só então queremos buscar o filme. Eu não sei o que está errado aqui mais. Ok, vamos ver uma coisa. Aqui temos que fechá-lo com os parênteses. Acho que é só o ar. Ok, então, depois de fazer isso, dê uma olhada. Isso é uma largura. Portanto, temos que atribuí-lo a uma variável. E eu vou fazer dados constantes. E então vamos obter nosso resultado dos dados é o que S novamente, atribuí-lo assim. Salve o aplicativo. E vamos ver. Diz que generoso não é definido por, ok, pessoal, dêem uma olhada. Esse cara deveria ser generoso e você economiza novamente, vamos ver o que diz. Está funcionando perfeitamente bem, mas ainda não temos nada no console. Volte e vamos para a página Within da Netflix. Ok, vamos formatar o código. Vamos obter a indentação adequada. Certo? Depois disso, teremos const, generous loaded equa, use o Selector. Certifique-se de importar o uso select all do React, redox no nebuloso. Eles usam o seletor é uma função e escrevem para executar essa função. Vamos visitar os Estados Unidos. E eu vou fazer state dot, netflix, dot, generous loaded. Então, vamos ter isso nos efeitos dos EUA. Temos que enviar a ação diretamente dentro dos efeitos dos EUA. Acabei de duplicar esse cara aqui. Não tenha medo, certo? Dentro. O que eu vou fazer são realces verdadeiros e parar com isso. Agora. Então, eles simplesmente não gostam de filmes atraentes quando a degeneração está carregada. Então, vamos condicioná-lo aqui. Se os jantares estiverem cheios, queremos enviar o método de busca de filmes como esse e importá-lo na parte superior. Aqui está para buscar filmes na loja, certo? Não seria o método de busca de filmes Vamos interromper todo o tipo de filme que queremos buscar em todos os tipos de filme. Uh-huh. Tudo bem, então, depois de fazer isso, queremos que eles sejam acionados quando o componente for renderizado. Então, o que eu vou fazer é pegar a matriz de dependências porque ela não depende de nada por enquanto para iniciar e salvar o aplicativo. E então temos que voltar ao índice de zombarias. Role para baixo até onde temos o método de busca de filmes. E aqui temos que colocar uma barra assim. Feito isso, também temos que terminá-lo com um ponto e vírgula aqui. E então aqui eu vou fazer console.log. O que queremos ver? Queremos registrar os dados aqui. Então, vou fazer dados, salvar a revogação. Vamos ver se há algo errado novamente, está tudo bem. Volte ao navegador e aqui temos a promessa de gastar. Agora abra essa promessa e veja o resultado aqui. Você pode ver agora que temos 80 filmes, certo? Usar esse IRI está nessa linda. Eu gosto disso. Então, fizemos algo ótimo aqui. Agora, deixe-me expor os detalhes. Ok, aqui temos os geradores de filmes, que são Drama, sim, o ID do filme. É isso aqui com a largura da imagem, neste caso, o caminho do pano de fundo. Aqui está o caminho de fundo. E esse é o nome do filme, The Last of Us. Então é isso que é. Vamos falar da generosidade que você perceberá que o jantar aqui é um só. Sim. Então você terá alguns filmes com mais de um generoso, vamos ver, esse cara aqui. Ele tem três generosos. Pertence à ficção científica, aventura e ação. Então foi isso que fizemos quando condicionamos o número de jantares a serem buscados. Esse cara se tornou muito generoso e assim por diante. Novamente, vamos examinar o código para que você o entenda bem o suficiente. Então, aqui estamos para comer os generais. E nesta linha, estamos tentando definir para cada generoso sua identidade. Sempre que recebermos um jantar com um documento de identidade, teremos que extrair o nome e inseri-lo na variedade generosa do filme. Isso é que Lee foi o que fizemos aqui. E aqui, com a segunda condição, o que fizemos foi verificar se o filme tem um plano de fundo. Nesse caso, deixe-me te mostrar. Esse é o caminho de fundo. Se o filme tem um plano de fundo e então estamos interessados nesse filme. Só esse é o tipo de filme que uma mulher faga. Então, vamos pegar a identificação do filme, que está aqui. O nome ou título do filme, que é esse cara aqui. E também a imagem que é o caminho de fundo aqui. É isso. Feito tudo isso, temos que cortar os generosos porque não queremos colocar mais de três generais em um filme. Então, quando eu economizar, ok, deixe-me mostrar, vamos supor que não queremos acomodar mais do que dois. Quando eu salvo o aplicativo, volto para o navegador diretamente no console. Vamos abrir o generoso para que você possa ver o que quero dizer com isso. Agora, esse filme tem apenas um gênero. E aqui temos dois generais. Você pode ver que agora limitamos, o número de gêneros tem que ser dois. Assim, você pode decidir buscar mais de dois generosos em um filme. Então foi isso que fizemos aqui. E, claro, iniciamos três variáveis. Temos a variável ID, nome, imagem e geral. Então, a ideia armazenará o ID, o nome do filme será armazenado no nome. O caminho do plano de fundo do filme será armazenado na imagem, e assim por diante. Então, aqui, o que estamos fazendo é simples. Dissemos, olha, não queremos buscar um filme acima de 80. E como você pode ver nesta matriz, deixe-me mostrar. Na parte inferior, você verá que o comprimento dessa matriz é 80. Vamos ver se podemos ampliar um pouco. Ok, você pode ver, então não queremos buscar filmes acima de 80. Sim, então foi isso que fizemos aqui. E por último, aqui, o que fizemos foi buscar o filme de acordo com a tendência, a semana da tendência e o tipo do filme. Então, é tão simples quanto isso. Então, tendo feito isso na próxima palestra, continuaremos exibindo os filmes, certo? Estamos na interface do usuário e, claro, será extremamente incrível. Espero que tenha gostado desta palestra e, por favor , faça bem em fazer perguntas se estiver confuso. Eu entendo que essa palestra em particular é bastante complicada, mas se você prestar atenção suficiente, você definitivamente receberá os G's. Nos vemos na próxima palestra. 96. 94 Estado global: Tudo bem, então, na palestra anterior, conseguimos obter os dados do filme. E agora o que vamos fazer é colocá-lo em nosso cenário global para que os componentes do império possam se comunicar com esses dados. Volte para o código VS. E a primeira coisa que vamos fazer, certo, estamos na função de busca de filmes. Primeiro, precisamos remover o log do console. E aqui eu vou voltar, obter dados do filme, simples assim. Então, tendo feito isso, temos que adicioná-lo a essa mancha. Venha aqui, destaque do comprimento 66 ao 69 duplicado. Portanto, temos que nos livrar da carga generosa. Então, aqui vamos chamar a função fetch movies. Se a função de filmes do Fed for cumprida, podemos então retirá-la do estado desta forma. Então, vamos fazer pontos estaduais a partir do estado. Vamos pegar os filmes, depois a ação principal, essa carga útil. Feito isso, poderemos nos comunicar com os dados do filme em qualquer lugar do aplicativo porque eles foram adicionados ao estado. Volte para Netflix dot js. E então aqui eu vou fazer filmes iguais ao seu seletor. Então, eles usam selecioná-los, nos dão acesso aos estados. E, claro, é uma função, certo? Estamos na função. Vamos tomar os estados. Então, aqui vamos fazer filmes State Dot, Netflix Dot, tão simples quanto isso. E agora podemos comunicar quais são os dados. Deixa eu te mostrar. Venha aqui. Vamos apagar todos esses registros do console. Aqui. Eu vou fazer console.log. Vamos gravar filmes para que você possa vê-los. Salve o aplicativo no navegador. Do papai. Você pode ver agora que temos um loop infinito de dados. Você pode ver, vamos tentar abri-lo. Você vê que isso é exatamente o que são portas redox. Portanto, se alguma coisa fosse adicionada a essa data aqui, não conseguiríamos obtê-la em qualquer lugar dentro do aplicativo. Assim como você pode ver aqui. Agora disponibilizamos os dados do filme para consumo. Na próxima palestra, começaremos a consumir os dados. Nos vemos na próxima palestra. 97. 95 Pare o laço infinito: Tudo bem, então antes de prosseguirmos para a próxima aula, temos que fazer algumas configurações aqui. Então, ao observar o console, você perceberá que temos um loop infinito aqui. Ok? Então é nisso que temos que acabar. Você pode ver os dados , ou seja, os filmes estão sendo registrados no console infinitamente. Sim. Então, o que vamos fazer agora, voltar para a página da Netflix aqui, diretamente nas linhas 36. Vou apenas fazer um comentário sobre isso. Seguro, no navegador, do papai, e depois atualize. Portanto, o loop infinito diminuirá a velocidade do seu laptop. Ou seja, essa é a razão pela qual coloquei os comentários no log do console aqui. Agora, sua máquina pode ser um pouco mais rápida do que antes, porque o loop infinito estava, na verdade, diminuindo a velocidade de tudo. Ok, vamos passar para a próxima aula, onde começaremos a exibir os dados diretamente na tela. Até lá. 98. 96 filme de renderização na tela: Bem-vindos de volta a todos. Na palestra anterior, conseguimos obter os filmes da API do CMDB e, em seguida, bloqueamos os filmes no console. Então, nesta palestra, vamos exibir os filmes na tela para que os usuários finais possam interagir com os filmes, seja clicando nos filmes para assistir ou adicionando os filmes que eles gostam de pagar. Então, sem mais delongas, vamos começar. Crie rapidamente um novo componente chamado contêiner deslizante, certo? Quais são os componentes? Clique com o botão direito Novo arquivo. O contêiner mais plano dot g é outro. Além disso, certo, para trazer os componentes que vamos criar. O controle deslizante do filme dot g é o Comando B. Para fechar o explorador. Então eu tenho que excluir o índice de constantes, fechá-lo, fechá-lo. Desculpe, não exclua. Temos que fechar algumas páginas. Agora pronto para trazer o contêiner deslizante, cada FCE para gerar nosso componente funcional e , também, a mesma coisa aqui. Certo? Ok, então abra o Netflix Cheers. Aqui mesmo. Vamos renderizar o contêiner deslizante. Role para baixo exatamente no mesmo local em que colocamos a carta, vamos limpá-la. Então, eu vou fazer um contêiner deslizante aqui para garantir que ele seja importado na parte superior aqui. Depois de fazer isso, outra coisa que precisamos fazer novamente é passar as sondas de filme para o contêiner deslizante. Então eu vou fazer aqui filmes, filmes. Então, vamos voltar ao contêiner deslizante e receber essas sondas. Recipiente Slater. Então, aqui está a desestruturação dos filmes. Feito isso aqui, precisamos importar componentes estilizados, começando dos componentes iniciais abaixo. Também precisamos importar o controle deslizante de filme do controle deslizante de filme. Então, basicamente, o que vamos fazer é selecionar os filmes que queremos exibir em uma fileira. Ok, então, em uma fileira, queremos exibir dez filmes. Então, lembre-se de que buscamos mais de 80 filmes. Sim, então, em cada linha, queremos exibir dez filmes. A maneira de fazer isso é usando o método de slides. Sim, então seria possível selecionar do início ao fim, por exemplo, vamos vendê-lo de 0 a 10, 10 a 20, 20 a 30 e assim por diante. Vamos ter um método chamado get movies between. Então, vamos colocar os filmes entre uma faixa específica. Deixe-me te mostrar. Portanto, esse método tomará início e fim como parâmetro e, em seguida, o definirá como função de erro. Por fim, vamos devolver filmes, que é esse cara aqui que passamos como adereços, filmes, pontos, slides. Ok? Então, o que acontece agora é que vamos entrar nesses filmes em que temos todos os filmes, mais de 80 filmes. Sim. Então, vamos entrar nesses filmes e depois cortá-los do jeito que quisermos. Deixe-me te mostrar. Então, queremos selecioná-lo a partir de estatísticas, vírgulas e, aqui, você também pode fazer e rebocar barcos. Quero deixar assim ou começar e terminar. Então, depois de fazer isso, vamos implementá-lo na interface do usuário para que você entenda isso muito bem. Não precisamos desse DV por aqui. Tudo o que precisamos aqui é de uma barra deslizante. Temos que criar uma classe dela convertendo-a em componentes iniciais. Consiste em uma embalagem deslizante, igual a stout, dots, div e depois no banco de trás. Não seria no banco de trás que começaremos a aplicar essas toalhas. Ok. Então, certo, não seria o invólucro deslizante, nós vamos renderizar o controle deslizante do filme. Mova o controle deslizante assim e feche-o com a etiqueta de fechamento automático. Então, aqui, vamos passar os dados como sondas para o controle deslizante do filme. Então, vou igualar dados, abrir e fechar colchetes. Vamos chamar o método get movies between. Então, queremos obter filmes. 0-10. Sim. E aqui fora eu vou fazer apenas títulos, só na Netflix. Então, o que eu vou fazer é destacar esse cara e depois duplicá-lo seis vezes. Então, agora já estamos cortando os filmes. Agora, aqui nós dividimos o filme e, de 80 filmes, estamos obtendo de 0 a 10, certo para imprimir a primeira linha e a segunda linha, estamos obtendo 10-2020 para 30, 30-4040 para 50 aqui. 50 a 60. 60 a 70. Coisa principal. Isso é tudo. Ok. Sim, buscamos até 80 filmes. Então aqui eu vou fazer 70 a 80, tudo legal. Em seguida, temos que mudar o título. Então, eles aparecerão no topo de cada linha para dar a esse papel um nome descritivo, por exemplo, aqui eu vou fazer tendências em filmes de ação , filmes românticos e assim por diante. Então você entende todos esses tops muito bem. Você tem que fazer isso do seu lado. Aqui eu vou fazer novos lançamentos. Novos lançamentos populares na Netflix. Acho que temos que organizar as coisas de forma ordenada. Vou ligar para esse cara logo na ação, vou colar os destaques da ação, cortá-la e depois colá-la aqui para os novos lançamentos. Ok, vamos deixar como se estivesse tudo bem. Feito isso, vamos prosseguir com os controles deslizantes do filme, onde mapearemos os filmes e os exibiremos no controle deslizante do filme na tela. Então, o que vamos fazer agora, primeiro, vamos desestruturar os dados e o título. Deixe-me mostrar esse título aqui e esses dados. Então, nós apenas os desestruturamos. Nós os passamos para o controle deslizante do filme como sondas. Agora temos que voltar aos controles deslizantes do filme e receber esses adereços no controle deslizante do filme. E depois com os dados estruturados e o título, certo? Não seria esse div, vamos dar a esse div um nome de classe de slider, certo? Dentro da div, vamos mapear os filmes. Agora eu vou fazer dados, que é esse cara aqui que está vindo do contêiner deslizante. E você sabe que esse cara aqui recebeu o método filmes entre e o método get movies between está retornando os filmes. Sim. Ok. Eu sei que você entende todas essas abas. Controle deslizante de filme e, em seguida, vou fazer um mapa de pontos de dados. Vamos analisar o índice de vírgulas do filme. Aqui mesmo. Eu vou voltar, vamos devolver a interface do usuário. Mas, nesse caso, temos que renderizar a empresa do cartão porque queremos mapear os cartões. Então, o que eu vou fazer é cortar assim. E, por favor, certifique-se de importá-lo em uma banheira. Os dados do filme são iguais, vamos atribuir a ele um filme. O índice é igual ao índice. É claro que temos que especificar que a chave será a identificação de pontos do filme, mais próxima da tag de fechamento automático. Quando você salva e finaliza a compra no navegador, a ideia é você pode ver agora Talvez você não a exiba dinamicamente simplesmente porque ainda não fizemos isso. Mas agora, você pode ver que conseguimos mapear as cartas. Ok, vamos exibir os detalhes correspondentes. Volte para o código VS e abra o cartão. G é que estamos no carro, j, temos que desestruturar os dados do filme. Deixe-me te mostrar o filme. O tau aqui está vindo do controle deslizante do filme. E então atribuímos o filme, os dados do filme. Eu sei que você entende todas essas coisas. Então, volte para o cartão. Os Gs não desestruturaram os dados do filme. Temos que exibi-los dinamicamente. Então, aqui temos que deletar tudo assim. Portanto, a fonte dessa imagem virá do CMDB. Especifique o Ártico. Vou fazer HTTPS com dois pontos de barra image.cmdb.org slash d slash p slash w 500. Então, aqui teremos o sinal de $1 e depois abriremos e fecharemos o colchete. E aqui vamos fazer a imagem de pontos do Movie Data. Quando você tiver sete anos, confira o navegador, os IDEs. Você pode ver agora que conseguimos exibir os filmes de forma dinâmica. Eu adoro isso. Isso é interessante. Você vê nosso direito. Mas, se você passar o mouse sobre os filmes, verá os dados estáticos . Você pode ver, como o vermelho, perceber a ação e todas essas coisas. Então, vamos chamá-los dinamicamente. Volte para os componentes da placa e, aqui, passe o mouse, destaque e copie. Venha aqui. Também queremos mostrar a imagem do pôster correspondente, apagá-la e colá-la aqui. Para o vídeo, vamos viver o vídeo porque não temos acesso ao vídeo do CMDB, então só precisamos sair do vídeo agora. O que mais uma vez temos que fazer. Temos que mostrar o título. Então, para exibir o título, temos que limpar isso e, em seguida, pegar os colchetes para nos permitir escrever JavaScript entre os GSAs. Então, o que vou fazer agora é o nome do ponto de dados do filme. Vamos voltar para onde temos o filme generoso. Por aqui. Vamos mapear essa dificuldade agora. Então, o que eu vou fazer é limpar a etiqueta LI por enquanto e depois abrir e fechar colchetes, ponto de dados do filme, ponto, ponto mob. Então, estamos mapeando o que é generoso agora. Então, eu vou pegar em geral, configurá-lo para nossa função, certo? Estamos na função, vamos ter a tag LI novamente, certo? Estamos na etiqueta LI. Temos que exibir o filme de forma generosa, e eu vou fazer um geral, tão simples quanto isso. Vamos salvar e ver no navegador. Em qualquer filme. Você pode ver que esse filme é Babylon. Quando você passa o mouse sobre isso, este é Avatar, o caminho da água. Tudo bem. Você pode ver a última semana? Alguns dos filmes têm apenas um título e alguns também. Tem mais de um título. Então, sim. Então, quando você passa o mouse sobre este filme, Pantera Negra, Wakanda para sempre. Então, as coisas estão começando a tomar forma. Over Andy tem uma roda de remo cheia de água. O último desejo. E tudo isso, tudo está funcionando perfeitamente bem, conforme o esperado. E com certeza estou adorando o resort deles. Então, na próxima aula, vamos estilizar o componente deslizante e alinhar tudo corretamente. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 99. 97 Componente de filme de estilo: Bem-vindos de volta a todos. Na palestra anterior, exibimos os filmes na tela. Você pode ver? Então eu entendo que esse componente não é bonito, mas também não parece feio. Então, nesta palestra, vamos estilizar esse componente e fazer com que ele pareça extremamente bonito. Prossiga para o código VS. E vamos começar. Logo quando o controle deslizante do filme. Primeiro, vamos começar com empresas iniciais. Então, abaixo, vamos fazer const container equa, start dot d. Então, vamos criar rapidamente esse cara na linha superior para destacar das faixas 122, linhas 18, capturadas. Dentro do formato de contêiner, o código é mais bonito. Feito isso, teremos outro div, certo? Para trazer o contêiner div com um nome de classe de wrapper. E novamente destaques das linhas 112, linhas 15, cortes, colados aqui. Formate o código com pretty também. Logo após o contêiner, teremos uma etiqueta principal. E aqui vamos pegar o título, que é esse cara aqui que se desestruturaria e vem do contêiner deslizante. Aqui está. Agora, quando fizermos isso, teremos a única tendência da Netflix no momento, popular na Netflix e nos demais. Então, vamos exibi-los no topo de cada função para dar a essa função um nome descritivo, para descrever veteranos, por assim dizer. Então, tendo feito isso aqui, vamos dar ao recipiente uma lacuna de 0,7 rem. Ok, está tudo bem assim. Vamos colocá-la em posição. Realmente Tea Party. Feito isso, vamos estilizar rapidamente a tag oculta. Ele havia vencido. Vamos dar uma margem restante. A margem esquerda é de 50 pixels. O tamanho da fonte é de 25 pixels. A família da fonte, eu vou escolher isso aqui. Pode decidir dar a ele qualquer família de fontes de sua escolha. E essa é sua própria especificação ou receita, por assim dizer, vamos continuar. Logo após a etiqueta principal. Vamos atacar o invólucro. Deixe-me ver. Aqui está o invólucro. O invólucro, vamos direcionar o controle deslizante e depois estilizá-lo. Slider escuro. Então, vamos fazer com que ele seja flexível. E isso alinhará todos os itens em cada linha do navegador. Você pode ver? Tudo bem, então eu acho que o acolchoamento é demais. Então, temos que rolar até aqui. Vamos fazer disso uma parte de um salvamento remoto. Tudo bem, é bom. Pense também, é demais, mas tudo bem, vamos continuar. Definitivamente vamos consertar as coisas. Então, aqui vamos dar isso. Deixa eu te mostrar uma coisa. Ao observar a tela, você perceberá que as cartas não estão mais ocupando a largura apropriada que atribuímos a elas. Sim. Então, o que vamos fazer agora é com o máximo de conteúdo. Quando você salva no navegador, vê que agora está tudo bem. Tudo bem, então se você também observar a tela, verá o fundo vermelho no cartão. Isso é o que não queremos de jeito nenhum. Eu o usei na palestra anterior para fins de ensino. É apenas, por exemplo, saquê. Volte, abra o cartão. Jazz. Certo, dentro do cartão, só precisamos destacar a cor de fundo. Ok, limpe isso. Seguro no navegador. Do papai. Bom. Oi, certo. Está gradualmente tomando forma. Volte. Agora, vamos abrir o controle deslizante do filme. Vamos dar um espaço para que haja espaço entre cada cartão. A diferença será de 0,6 RAM. Transforme, traduza X zero pixels. Então, quando você faz isso, aqui está o resultado. Você pode ver? Então, vamos fazer a transição de 1 s. Fácil entrada e saída, margem esquerda. Vamos fazer com que seja de 50 pixels. Feito isso, com segurança, veja o que temos agora. Bom. Vocês podem ver, pessoal , está realmente bonito. Agora, a margem no eixo esquerdo, não acho que será necessário que a margem esquerda seja de 50 pixels. Então, podemos realmente fazer com que seja de cinco pixels. Vamos ver. Tudo bem, ótimo. Feito isso, deixe-me mostrar logo na parte superior, temos no cabeçalho uma tag que é usada para exibir o título. Mas na tela, você não a verá simplesmente porque a fonte é preta. Você pode ver? Agora, quando eu destaco tudo, isso se torna viável. Então, o que vou fazer agora é especificar a cor da fonte. Cor. Vamos torná-lo branco. Isso vai ficar bem. E eles são esses. Você pode ver? Ok, vamos também especificar a margem esquerda da fonte. Então, vamos fazer com que seja de cinco pixels. Qual é a margem esquerda da tag Hadrian usada para exibir o título. Estão certos, pessoal. Tudo parece extremamente limpo. Isso é tão limpo e eu adoro isso. Você pode ver? Tudo bem, então o próximo na fila é implementar o controle deslizante. Certo? Acho que devemos fazer isso na próxima palestra. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o foco. Os analistas tomam cuidado. 100. 98 Otimização de desempenho: Nos bastidores, percebi que o desempenho do aplicativo é um pouco afetado. Deixe-me avisá-lo. Ao rolar o aplicativo, você perceberá que a navegação superior está demorando para mudar sua cor de fundo para preto quando o aplicativo excede zero nos eixos y. Agora dê uma olhada. Também leva tempo. Você também perceberá que o aplicativo está ficando lento. Você verá, eu não sei se você pode anotar isso do seu lado. Você pode ver que o aplicativo está bem lento. Portanto, antes de prosseguirmos com a implementação desse controle deslizante, precisamos otimizar o desempenho. E isso será feito com o React dot mammal. Portanto, temos que encontrar uma maneira de memorizar o aplicativo. Portanto, um memorando de pontos do React é um alto número de outros componentes que aceitam outro componente e funcionam como um argumento que segue para código VS, a menos que seja implementado rapidamente no VS Code. Agora vamos voltar ao controle deslizante do filme. Primeiro. O que vou fazer aqui é agrupar o código no memorando de pontos do React. Agora vou excluir a função de erro, excluir o operador de atribuição e, em seguida, rolar para baixo. Também precisamos excluir essa exportação. Ainda não excluí todas as paradas, então temos que deletar esse cara. E eu vou exportar padrões, React dot, mammal, abrir e fechar parênteses. E vamos assumir uma função. E, internamente, também temos que considerar o segundo argumento, que é o componente. Destaque tudo aqui, corte, venha aqui e cole. Ok, temos que trazê-lo um pouco mais e mais perto. Feito isso, destaque os parênteses finais do mamífero React dot. Pare com isso. Então temos que fechá-lo aqui, bem na linha 18. Você pode ver que o erro desapareceu? Agora, esse componente específico está otimizado. Vamos também otimizar os componentes da placa. Claro que você sabe o que fazer. Limpe a função de seta, o operador de atribuição. Aqui eu vou exportar o memorando padrão de pontos do React, pegando os parênteses e, em seguida, vamos pegar o destaque da função assim, cortá-lo e vir com ele. E colar também destacou os parênteses finais do livro de memórias React dot. Pare com isso. Temos que fechá-lo aqui. Deixa eu te mostrar aqui embaixo assim. Então, depois de fazer isso, o aplicativo ainda está reclamando. Role para baixo. Temos que excluir essas exportações. Você pode ver o aplicativo? De novo? Vamos dar uma olhada no navegador. Então, vamos rolar para baixo. Você pode ver agora que tudo está funcionando perfeitamente bem? Dê uma olhada. Oi, certo pessoal. Então, tudo isso é para a otimização. Na próxima palestra, continuaremos com o controle deslizante do cartão. Nos vemos na próxima palestra. 101. Controle de controle de controle: Bem-vindos de volta a todos. Nesta palestra, implementaremos os ícones de controle do controle deslizante para que os usuários finais possam deslizar os filmes para a esquerda ou para a direita. Então, sem mais delongas, vamos começar o código VS. A primeira coisa que faremos aqui é importar os ícones da rolagem de ícones do React para o topo. E aqui eu vou fazer as importações. Temos que importar a extremidade esquerda do contorno, a UTLA anda em vasos. Eu delineei o contorno da vírgula esquerda, certo? Agora, tudo isso vem dos ícones do React. E então temos que resolver, fixar com um corante, assim como esses. Linda. Feito isso, a próxima linha é renderizar os ícones, certo, não seria você. Então, logo após o div com o nome da classe wrapper, teremos outro div. Vamos dar a ele um nome de classe. Então, aqui também vamos abrir, abrir e fechar os colchetes. Vamos tomar o chá da casca. Portanto, o nome do cluster será Slider dash. E vou chamá-los à esquerda para que indique para a esquerda. Sim. É isso. Ok. Então, tendo feito isso, temos que fechar o D. Ok, certo, não seria a div com o nome da classe da ação deslizante à esquerda. Vamos aproximar a camada de contorno com a tag de fechamento automático. Portanto, a próxima linha é destacar essa definição, a div do nome da classe de destaque da ação deslizante das linhas 152, linhas 17. cópia vem logo após o div com o nome da classe de slider. Aqui está a div de encerramento do controle deslizante ClassName e cole-a aqui. Então, aqui vamos alterá-lo para um valor atípico aqui. Vou mudar para a direita. Bom. Então, depois de fazer isso, vamos estilizá-lo rapidamente dentro do componente de estilo. Ok, vamos tirá-lo. Por enquanto. O controle deslizante está diretamente dentro do invólucro. Então, o que vou fazer agora, role para baixo. Este é o invólucro. Há um controle deslizante, certo? Estamos na borracha. Deixe-me mostrar esse slide aqui. Então, queremos estilizar a ação do controle deslizante. Então, depois de fechar os colchetes do controle deslizante ClassName, vamos estilizar o leilão deslizante holandês. Vamos ter uma tela flexível. Justifique o conteúdo no centro, alinhe os itens à posição central. Vamos posicioná-lo de forma absoluta porque queremos que os ícones estejam na parte superior do controle deslizante. Então, vamos ter isso absoluto. E lembre-se de que aqui, a posição foi definida como relativa ou está definida como relativa, por assim dizer, oi, certo? E, a propósito, não estamos na aula de inglês por aqui. Me desculpe por isso. Então, o índice Z, o índice de traços z, vamos fazer com que seja 99. A altura, 100%. O topo. A parte superior vai ficar na parte inferior. Vai ser zero. A largura. Vamos fazer com que seja de 50 pixels. A transação, vamos realizá-la em um segundo, acabou. Ou você pode entrar e sair com facilidade o que quiser. Então, temos que estilizar o SVG. Svg, vamos fazer como VG, o tamanho da fonte. Vamos fazer com que sejam dois aleatórios. Causal. Vamos fazer com que seja um indicador. Vamos dar uma cor. Vamos torná-lo branco. Está bem. Salve e vamos ver o que temos no navegador. Então pessoal, esses são os ícones aqui. Tudo bem pessoal, então os ícones aparecem aqui. Deixe-me mostrar, você pode ver que temos dois à esquerda e à direita, alinhe-os corretamente. Então, agora o que vou fazer, vá até o topo. Deixe-me mostrar esse cara que também indica o certo. Esse cara que indica a esquerda. Temos que estilizá-lo com cuidado. Então venha aqui. Eu vou para a esquerda. Da esquerda, queríamos zero, à direita. Da direita, queremos que seja zero. Vamos ver o resultado dessa implementação agora mesmo. Ótimo. Tudo parece bem. E agora você pode ver a seta ou a esquerda. E você pode ver a seta à direita. Esse é o fim esperado. Tudo bem, então, depois de fazer tudo isso, quero explicar uma coisa para você. Portanto, a ideia é a seguinte não queremos que as setas apareçam em cima das cartas como padrão, como essas. Sim, então queremos que as setas apareçam somente quando passamos o mouse no controle deslizante. Portanto, se o mouse não estiver no controle deslizante, você não verá as setas. Vamos implementar rapidamente. Venha aqui, vá até o topo. Vamos declarar as variáveis de estado necessárias a serem usadas. E antes de fazermos isso, temos que importar o gancho e um termo dos EUA. E aqui vou gerar os trechos de uso. Então eu vou fazer seus estados. E aqui estão os trechos. Então, primeiro vamos ter visibilidade de controle. Em seguida, vamos definir a visibilidade do controle como falsa. Então, o estado inicial será falso aqui você tem que fazer com que o C esteja em carboidratos, definir o controle da visibilidade e o estado inicial será falso. Agora, quando o usuário passa o mouse sobre o cartão, queremos que as setas apareçam. A maneira como fazemos isso é: vamos direto. Estamos no contêiner. Vamos ter uma constante aqui. Vou fazer Control Visibility, aquático. Controle a visibilidade. E fazendo isso logo abaixo, temos que implementar o enter n. Nosso mouse sai. Então, entre n, vamos chamar a função de configuração para atualizar o estado inicial. Defina a visibilidade do controle. E vamos definir isso como verdadeiro. A maioria das folhas. Vamos definir a visibilidade do controle como falsa, de forma autoexplicativa. Agora, tendo feito isso, vamos implementar a condição agora, certo? O div com o nome da classe da ação do controle deslizante não sobraria . Temos que colocar uma condição aqui. Agora vou fazer, se não controlar, a visibilidade. Vamos fazer assim. E L's, vamos mostrar uma corda vazia também. A mesma coisa aplicável aqui. Se não controlar a visibilidade, o que significa que se a visibilidade do controle não existir, faremos Nenhuma. E agora não vamos fazer nada. Então, a ideia por trás de tudo isso é estilizar esse neurônio aqui. Ok? Então, quando vamos até aqui, não há pontos. Então, não teremos nenhum display. Então, isso ocultará os ícones de controle. E quando usar, coloque o mouse no cartão. Vai ficar visível. Quando você salva e verifica o navegador. Você pode ver? Deixe-me te mostrar. Eu tiro o mouse do cartão. Agora, quando eu passar o mouse sobre o cartão, você verá os ícones. Você pode ver? Passe o mouse sobre a boca? E tudo está funcionando perfeitamente, conforme o esperado. No momento, quando você clica no ícone, nada acontece. Você pode ver, deixe-me te mostrar. Quando você clica no ícone, nada acontece. Por que é simplesmente porque não implementamos esse controle deslizante. Então, vamos para a próxima aula onde implementaremos o controle deslizante. Nos vemos na próxima palestra. Mantenha o foco no cuidado holístico. 102. 100 Implementando o controle deslizante: Nesta palestra, vamos implementar o controle deslizante. Portanto, no final desta palestra, não poderemos mover as cartas para a borda esquerda ou direita da tela. E definitivamente você vai adorar os resorts Angel. Vamos começar rapidamente. A primeira coisa que faremos aqui é declarar uma variável de estado desnecessária. Role até o topo. Nós importamos o gancho feito nos EUA da palestra anterior. E aqui vamos importar o usuário if hook. E vamos inicializá-lo rapidamente aqui. Lista Ref, igual. Use costela. Feito isso, vamos rapidamente a variável de estado de nebulosidade S3. E aqui vamos gerar os trechos do estágio de uso. Vou chamá-la de posição deslizante. Vamos definir a posição do controle deslizante. Sim, vai estar na CUP. E então o estado inicial do controle deslizante será zero. Aqui vamos ter uma constante. Como a igualdade de direção começou com nossa função. E então aqui vamos tomar a direção como parâmetro. Então, vamos fazer dessa vez. Vamos distanciar um quádruplo lista o ponto de referência, o ponto atual. Então, o que vamos fazer agora é obter a posição real do carrinho no eixo x em relação à janela de visualização. E a maneira como podemos fazer isso é usando o método de vinculação de clientes do gueto. Get recebe pedidos de fiança por ovos. É claro que é um método. Estamos obtendo a posição no eixo x e eu vou fazer -17. Então, se agora vamos ter uma condição. Se a direção for igual à esquerda, se a direção for um núcleo à esquerda, posição do controle deslizante será maior que zero. Essa é a única vez em que poderemos mover a carta. Significa simplesmente que quando você clica no ícone esquerdo, deixe-me mostrar aqui. Então, esse ícone esquerdo aqui, quando você clica nele, também, se a direção no eixo x for maior que zero. Então, o que vou fazer agora é listar o ponto de referência. Temos que obter a posição atual, essa corrente, e depois estilizá-la como transformação de pontos. Então, queremos animá-lo para a esquerda. E aqui vamos aplicar estilo a ele. Vamos traduzir o cifrão X. Então, vamos mover esse controle deslizante de 230 pixels para a esquerda, a memória. Quando terminarmos de digitar o código, eu o explicarei de forma simples para que todos o entendam bem o suficiente. Vou fazer mais distância e depois aplicar os pixels aqui. Feito isso, temos que definir a posição para deslizar para cima mais um. Isso é mais simples: os pais estão certos. Então isso é para o lado esquerdo. Também temos que implementá-lo para o lado direito. Eu só tenho que copiar a declaração if. Destaque das linhas cisteína até 19. Copiar. Venha aqui, cole. Mude-os para a direita. O que faz de novo? Agora vamos fazer se a posição do controle deslizante for menor que quatro, só podemos mover as cartas menos 210 pixels para a direita? É tão simples quanto isso. E isso, isso deve ser menos um, e isso deve ser mais um. Vamos salvar o aplicativo. Agora vamos ver como podemos implementar isso nos dois lados. Tudo bem, quais são os div do nome da classe do slider? Eu vou fazer. E isso vai ser uma referência de listas. Então, vamos implementá-lo no ícone. Aqui, vamos especificar o ícone onclick, onclick do ícone esquerdo. Temos que mover esse controle deslizante para a esquerda. Então, o que vou fazer agora é chamar a função de direção do manípulo. Bem dentro, vamos passar pela esquerda. Vou copiar o onclick. Vou copiar o onclick. Vamos colá-lo aqui. Não seria um passeio pelo Atlântico. Temos que mudá-lo para andar com eles. Eu acredito que tudo vai funcionar bem. Vá até o navegador. Certifique-se de atualizar. Vamos movê-lo para a direita, bumbum, bumbum , movê-lo para a esquerda. Boom, bum, bum. Você pode ver? Tudo está indo perfeitamente bem, conforme o esperado. Eu adoro isso, mas o controle deslizante é bem lento. Volte. Deixe-me mostrar qual é a ação do controle deslizante. Vamos fazer com que esse 0,1 segundo acabe. Agora vamos tentar novamente. Você pode ver que eu amo esses? Tudo bem, tudo está funcionando perfeitamente bem. É hora de explicar isso de forma simples para que todos o entendam bem o suficiente. Agora, vou recarregar a página. 103. Projeto de painel de 101 (criar aplicativo de React: Nesta palestra, vamos começar do zero para criar um novo aplicativo React. Então, na minha área de trabalho, vou criar um novo diretório chamado dashboard. Clique com o botão direito em nova pasta. Este painel será capturado. O próximo passo é arrastar e soltar esse diretório no VS Code. Vou apenas abrir meu código VS. Então, agora, vou arrastá-lo e soltá-lo aqui. Feche a página de amostra e, em seguida, maximize o código VS. Abra rapidamente o terminal integrado VSCode. Certo? Não determinaria que não. Temos que gerar um novo aplicativo React. E para fazer isso, temos que usar o comando MPS. Np x. Create dash react, dash r. React é usado para criar um aplicativo de front-end. Portanto, temos que instalá-lo em planos de registro direto. A placa de caldeira necessária para desenvolver nosso aplicativo de front-end será instalada, certo? Estamos no diretório de clientes. Pressione a tecla Enter para ativá-lo. A instalação do React está em andamento. O React é instalado com sucesso em seguida. Temos que entrar no diretório do cliente onde instalamos o CD React years, o que significa simplesmente alterar o cliente do diretório. Aqui mesmo, vamos fazer npm. Comece, pressione a tecla Enter para ativá-lo. Linda. Aqui está a página de Londres de um aplicativo React. Isso é tudo por enquanto. Na próxima palestra, limparemos as placas da caldeira excluindo arquivos desnecessários que não são necessários para este projeto. Nos vemos na próxima palestra. 104. 102 limpando a placa de caldeira: Bem-vindo de volta aos recalls. Nesta palestra, vamos excluir flores desnecessárias que não são necessárias neste projeto. E essas flores incluem o teste AP, o logotipo, o ponto SVG, o relatório, os sinais vitais da web e os dados do teste de configuração. Então, logo quando o cliente abriu o SRC. E aqui vamos selecionar o logotipo dot SVG. Pressione e segure a tecla de comando no teclado e clique para selecionar relatório, sinais vitais da web, testes de configuração, ponto de logotipo SVG e aumentar esse teste. Clique com o botão direito Excluir. Linda. E agora o aplicativo está reclamando. Vamos ver qual é o problema. Teorias não resolvem esse cara, certo? Portanto, temos que acessar o comando P do index.js para abrir a caixa de pesquisa na parte superior. E então vamos pesquisar o ponto de índice g para reduzir um pouco isso. Comando B para fechar o Explorer. Então não precisamos mais desse cara. Eles denunciam, vetam na web, destacam e excluem, salvam e, novamente, do que se trata o problema , estão aqui. É excluído? Quando você economiza? Também precisamos excluir o comando logótipo dot SVG p, configurar quatro no topo. Vamos destacar e depois excluir o ponto SVG do logotipo. Tudo bem, então também temos que deletar tudo. A partir da linha C há duas linhas. 19. A tag de cabeçalho de abertura para a tag de cabeçalho de fechamento. Limpe-o. Salve-a bem, parece que tudo está funcionando perfeitamente bem. Agora. Vamos tirá-lo no navegador. Agora, vamos usar um pacote de Adriano para fazer algo assim. Painel de controle. Salve e confira o navegador. Agora, ao observar a tela, você perceberá que a cabeça de uma etiqueta está alinhada ao centro. Volte para o Comando P e, em seguida, configure os CSAs. Aqui está. Você pode ver o Align Center. Então, tudo aqui está alinhado ao centro. Destaques, limpe-os, com segurança no navegador. E agora a cabeça de um perú foi alinhada à esquerda. Muitas vezes, esse é o nosso objetivo. Nesta palestra, vamos detalhar o aplicativo para entender a estrutura e como ela foi visualizada. E depois disso, vamos configurar as estruturas de pastas. Nos vemos na próxima palestra. 105. 103 Compreendendo o fluxo: Entendendo o projeto e configurando a estrutura de pastas seguindo as melhores práticas. Nesta palestra, vamos entender o padrão da estrutura de pastas do nosso projeto. Vamos desvendar o projeto e entender a gripe. Então, na tela está o aplicativo de painel React que vamos criar neste curso. Vamos prosseguir rapidamente com este projeto. Aqui, temos o topo agora. Então, no canto superior esquerdo da tela, temos o logotipo do painel de administração. E no canto superior direito, temos as notificações. Na borda esquerda da tela. Nós temos o lado. Agora. Aqui, temos os componentes de informações futuras, o componente gráfico exibe os componentes do hotel. E logo abaixo temos a tabela de transações n, a tabela de membros recém-ingressados. Dito isso, vamos entender rapidamente o fluxo do aplicativo usando a navegação lateral para navegar pelos projetos. Então, aqui temos os usuários. Quando eu clico no usuário, isso me leva para reutilizar como página de lista. Você vê que quando eu clico no botão Editar, ele vai me levar ao perfil do usuário. Veja aqui, poderemos editar um usuário e depois atualizar os dados. E no canto superior direito da tela temos o botão Criar. Então, isso nos levará ao componente de criação de usuários. E aqui está sua linda. Vamos continuar com os produtos. Agora, eu clico nos produtos. Isso me leva até as folhas do produto. Então, aqui podemos selecionar produtos individuais. Podemos classificar o produto, filtrar, ocultar ou mostrar qualquer coluna que quisermos mostrar. E a partir de agora isso não é necessário. Quando você clica no botão Editar, você será direcionado para a página de produtos individuais. Portanto, todo esse componente nas páginas será criado nesta palestra. Então, rapidamente, use heroína para o código VS e vamos criá-los. Comando B para abrir o Explorer, diretamente no SRC. Clique com o botão direito em nova pasta. Esses serão componentes capturados, certo? Estamos no diretório competente. Vamos criar as pastas competentes. Clique com o botão direito em nova pasta. Com certeza, teremos os componentes do bate-papo. Então, isso será chamado de gráficos. Então, agora estamos no diretório de bate-papo. Vamos criar os componentes do gráfico. Agora. Clique em Componentes, Nova pasta. E vamos criar o total de exibição. Novamente, clique com o botão direito nos componentes. Vamos criar os widgets de pedido de aprovação do Top Nav , que serão usados para criar o componente de tabelas de transações. E, por fim, diretamente dentro da empresa. E, novamente, vamos criar o widget de membros. Linda. Portanto, as páginas incluem, deixe-me mostrar aqui que também teremos a página da lista de produtos em torno página da lista de produtos em torno da página única da lista de produtos. Teremos a página do produto cred. Quando chega aqui. Usuários, teremos a página de lista do usuário, a página de perfil do usuário, a página do usuário. Ok, então, quando você volta para casa, criamos agora o lado superior dos produtos futuros. Mas os bate-papos que exibem o total. Essa é a tabela de transações e o componente de membros recém-unidos. Então também temos que criar esse cara no topo aqui. Para isso. Volte ao código VS, clique com o botão direito do mouse nos componentes, na nova pasta e, em seguida, criaremos a comida do futuro. Então, vamos criar o componente filtrado, certo? Dentro do campo, aquela comida. Na verdade, estou ensinando você a escrever código como uma pérola. Essa é pelo menos a razão pela qual eu quero manter tudo simples. Então agora terminamos com isso, certo? Estamos no SRC. Vamos criar um novo diretório chamado pages. Certo? Quando a página é clicada com o botão direito do mouse em nova pasta. Faremos com que a casa reformule a página novamente. Teremos a página do produto criativo. Teremos a própria página do produto, que são os produtos individuais. Teremos a lista de produtos. Teremos os usuários. Ok, vamos fazer a lista de usuários, o perfil do usuário. Por fim, teremos o usuário de criação. Perfeito. E agora estruturamos nossa pasta com sucesso. Na próxima palestra, começaremos com o componente Top Nav. Para recapitular, certo? Não seria o SRC, criamos um diretório chamado direitos de componentes. Dentro do diretório desse componente, temos os bate-papos que exibem futuros membros do conselho do hotel. Fizemos pedidos, fizemos o suficiente e fizemos o Top Nav. E nos direitos das páginas, temos a página de criação do produto, o usuário de criação, a página inicial, os produtos, que são os produtos únicos, a lista de produtos, use pelo menos. O perfil do usuário é bem simples. Então, aqui está o componente Top Nav, os componentes secundários suficientes, o componente de informações futuras, os bate-papos que dividiram o hotel. Portanto, esse é o widget mais antigo e esse é o widget de membros. Quando você fala sobre as páginas, temos a página de lista do usuário, a página de perfil do usuário e também a página de criação de usuários. Temos a mesma coisa com os produtos. Isso é tudo por enquanto. Nos vemos na próxima palestra. 106. Componente de 104 TopNav: Nesta palestra, vamos construir a empresa Top Nav. Mas antes de prosseguirmos, precisamos instalar a interface de usuário do material, o que obviamente nos permitirá usar os ícones SVG. Tabelas. Basta imputar qualquer coisa escondida muito mais rapidamente ao material ui.com. E clique em Começar. Na borda esquerda da tela, você verá a banheira. Logo na banheira. Você precisa clicar na instalação. Aqui temos conselhos sobre como instalar o material. Você. Nesse caso, basta copiar o comando npm. Copie, volte para o VS Code, abra o terminal integrado VSCode, terminal e o novo terminal. Mas olha, eu já o abri. Então, o que vou fazer é gravar as declarações em CD e , em seguida, o Comando V para colar o comando npm para instalar o material, você clica na tecla Enter do teclado para ativá-lo. A instalação está em andamento. Instalado, bem-sucedido. O próximo passo é instalar o Material Icon especificamente. Então, aqui eu vou fazer o gerenciador de pacotes node. A instalação adiciona uma barra de interface de usuário, ícones, materiais do painel, pressiona a tecla enter para acioná-la, tudo pronto, instalado, subtrai a queda. A próxima linha é criar o componente Top Nav. E esse componente será criado, certo? Estamos no diretório de navegação superior. Então, clique com o botão direito do mouse no topo da navegação, novo arquivo, e eu vou chamá-lo de top Nav dot j é, quero que você observe o uso convencional para nomear esse componente. É chamada de convenção de nomenclatura Pascal, o que implica que você coloca em maiúscula a primeira letra de cada palavra. Ensinar bem, é lindo. Pressiona a tecla enter, RFC, gera os componentes funcionais. E se esse atalho não funcionar para você, tudo o que você precisa fazer é acessar as extensões e pesquisar por React. nativo reage prontamente aos trechos. Aqui está. Ele precisa clicar e instalá-lo do seu lado. Volte para o Explorer. O próximo passo é criar o arquivo CSS. Top Nav dot CSS. Feche o Explorer. Então, vamos continuar com o componente Top Nav. O que vou fazer agora é destacá-los e depois apagá-los. Agora vamos dar a esse div um nome de classe do contêiner Top Nav, certo? Estamos no contêiner de navegação superior. Vamos ter outro div com o nome da classe top nav wrapper. Portanto, a navegação superior será dividida em duas partes diferentes, a da borda esquerda e a porção da borda direita. Portanto, a borda esquerda da navegação superior será usada para exibir o logotipo. A borda direita será usada para exibir a notificação e o perfil do administrador. Então, aqui vamos ter um div. Dê a ela um nome de classe no canto superior esquerdo, logo dentro desta div, faremos com que um espaço exiba o logotipo. E eu vou fazer admin dash. Então, queremos usar o teste como logotipo. Aqui. Vou dar a ele um nome de classe. Logotipos. Bom. Ok, vamos renderizar rapidamente os componentes no conjunto P comum do aplicativo Js para ArcGIS. E aqui, só precisamos executar o componente Top Nav perto com uma tag de fechamento automático e importá-la na parte superior. Aqui no terminal, vou fazer npm starts. Então, elementos para obter uma imagem real das coisas que estamos fazendo. Aqui está o painel do administrador no canto superior esquerdo da tela. Certo. Estamos na casa de cima. Ok, bom. Aqui fora desta div com o nome da classe no canto superior esquerdo, teremos outra div com o nome da classe no canto superior direito. Aqui é onde vamos organizar a notificação e o perfil Logo quando tivermos um div, atribua a ele um nome de classe de top nav, container de ícones. Certo, dentro desta div, teremos primeiro o ícone de notificação. E para obter o ícone SVG, precisamos importá-lo dos MEUS ícones. Notificação de importação materiais do traço dos ícones de barra do MUS. Então, vamos usar essa oportunidade para importar todos os ícones necessários. Mais calmo. Aqui precisamos do idioma, precisamos do ícone de configurações. E por último, precisamos do chat Babu, seguro ou correto. Então, aqui vamos aproximar a notificação. Que etiqueta de fechamento automático. Além disso, temos que dar a ela um nome de classe simplesmente porque vamos estilizá-la. Ícone de navegação superior. E aqui vamos ter um intervalo. Se o nome da classe do emblema do ícone superior, certo, estamos no HTML interno que queremos exibir à medida a contagem de notificações é maior, certo? Então veja o que eu vou fazer agora. Vou destacar as linhas 11 a 14. Mantenha pressionada a tecla Shift e toque na tecla de seta para baixo para duplicá-la três vezes. Você só precisa continuar pressionando a tecla de seta para baixo três vezes. Então, aqui temos que renderizar a linguagem. Digamos, para o meu cabelo ou três configurações. Temos que renderizar o gráfico Babu. É mais simples que isso seja uma notificação. Salve e vamos ver o que temos. Diz que a notificação não está definida. Sim, claro, temos que efetuar a mudança aqui e economizar novamente. Perfeito. Então, aqui está o logotipo do painel de administração. Aqui está a notificação e Laurie, as coisas não estão dispostas da maneira que você espera. É simplesmente porque não temos como estilizá-lo. Então, vamos mostrar a foto do perfil do exército. Logo após a div de fechamento do nome da classe, o contêiner do ícone de navegação superior, teremos uma tag IMG, SRC equa. Vou copiar uma foto aleatória de um cara na Internet e depois colá-la aqui. Questão igual. Então, vamos nos aproximar rapidamente com uma etiqueta de fechamento automático. Salve no navegador. Aqui está. Você pode ver, aqui está a foto do cara, porém, não está linda como esperado. E eu te disse o motivo. Na próxima palestra, quando começarmos a estilizar essa empresa, você definitivamente adoraria. Tudo bem, então vamos passar para a próxima palestra, onde estilizaremos essa empresa. Nos vemos na próxima palestra. 107. 105 Css de TopNav: Nesta palestra, vamos estilizar a parte superior dos componentes agora. E no final, teremos um Top Nav muito bonito. Prossiga rapidamente para o VS Code. Abra a navegação superior, CSS. Aqui está. Vamos dividir a tela. Agora. Vamos ter o CSS ou a borda direita da tela. E então teremos o componente superior esquerdo na borda esquerda da tela. Vamos continuar com a imagem. Deixe-me mostrar, você pode ver que a imagem está ocupando toda a tela. E eu não gosto disso. Vamos estilizá-lo rapidamente. Agora temos que definir o nome do cluster da imagem. O nome da classe é admin, IMD. Copiar. Venha aqui, pontos, cole o nome do cluster da imagem, abra e feche os colchetes. Certo? Dentro dos colchetes, vamos aplicar os estilos. A largura da imagem será de 40 pixels. A altura será de 40 pixels. E, claro, queremos que a imagem seja circular. Para fazer isso, precisamos especificar o raio da borda em 50 por cento, que ocuparia a metade da altura da imagem e a metade da largura da imagem, 50 por cento. Portanto, antes de prosseguirmos para o navegador, precisamos vincular os componentes ao arquivo CSS. Estou aqui logo no topo. Eu vou fazer input dot slash, Top Nav dot CSS. É tão simples quanto isso. Quando você serve e finaliza a compra no navegador. Ei, não é? Consegue ver isso? Agora temos a imagem linda, conforme o esperado. O próximo na fila é estilizar o contêiner Top Nav. Então, amigos, vamos classificar nosso arquivo CSS de acordo com os nomes das classes para que nosso código se torne tão fácil de ler e entender. Então, aqui, bem no topo da imagem, vamos fazer pontos, destaques, copiar. Venha aqui, cole, assim. Portanto, o contêiner Top Nav ficará na parte superior, seguido pelo invólucro de navegação superior e assim por diante. Então, aqui teremos a largura, 100 por cento, a altura, 50 pixels. A cor de fundo. Eu vou escolher Alice blue. A posição em que vai ficar pegajosa. O topo será zero. O índice z. Vamos fazer o triplo nove. Incrível. Agora vamos dialisar o invólucro de navegação superior, que é a div do gráfico para o contêiner Top Nav. Eu destaco e copio. Vamos dar a ele uma altura de 100 por cento. Estofamento. Vamos fazer com que seja zero pixels, 20 pixels. Vamos ter um display, flex. Alinhe os itens ao centro. Quando você serve e finaliza a compra no navegador. Linda. Então, o que vamos fazer agora é criar espaço entre o logotipo e as notificações. Então, temos que dividi-lo em dois. Esse cara aqui se moverá para a direita e , em seguida, o logotipo será alinhado à esquerda. Eu quero alcançar. Tudo o que vou fazer é criar espaço intermediário. Então, vou justificar o espaço de conteúdo entre salvar no navegador. Aqui está. Você pode ver agora que temos a amina aqui e as notificações no canto superior direito da tela. Vamos continuar. A próxima linha é estilizar o logotipo. Eu destaco e depois Copio, venha aqui, colo. Simples assim. O peso da fonte será em negrito. O tamanho da fonte será. 30 pixels, a cor. Vamos fazer isso, Alice, azul, mais grossa. Vamos fazer dele um ponteiro para que, quando acabarem, passe o mouse sobre ele. Isso mostra o suficiente. Ok, deixe-me te mostrar rapidamente. Acho que mostrar a você é a melhor maneira de explicar isso. Estão certos. Você pode vê-la por mais tempo simplesmente porque é azul Alice. Então, vamos dar uma cor de fundo. A cor de fundo, vamos torná-la vermelha. Portanto, a cor de fundo fará com que o teste tenha uma boa aparência, porque agora a cor do teste está na forma de branco, porque agora a cor do teste está na forma de branco, mas na verdade não. Dê uma olhada. Você pode ver? Então, quando eu coloco meu mouse ou minhas necessidades, você pode ver que ele aparece assim. É simplesmente porque definimos o cursor um ponteiro, o raio da borda. Então, queremos que as bordas do fundo sejam um pouco curvas. Vamos fazer com que seja de cinco pixels. Fonte, família, monoespaço, margem, topo. Vamos fazer com que seja 30 pixels. Salve no navegador. Esses são mais altos, certo? Bom. Vamos especificar o perdão. Serão cinco pixels. Salvar. Linda. Agora vamos empurrá-lo para o topo. Está aqui simplesmente porque esse cara está na verdade, meio que se sobrepondo. Então, vamos fazer com que tudo fique bem organizado agora. Temos que estilizar o canto superior direito. Esse cara está aqui, pontos no canto superior direito. Em seguida, temos que exibir o flex. Alinhe os itens ao centro. Salvar. Dê uma olhada. Você pode ver que tudo está bem alinhado conforme o esperado? O próximo na fila é o contêiner de ícones no canto superior esquerdo. Portanto, esse é o contêiner que abriga os ícones. Ao copiar, venha aqui, pontilhe o contêiner do ícone no canto superior esquerdo. Então, por dentro, teremos a posição relativa. Obviamente, o Corso será configurado como ponteiro e depois com a margem direita? Dez pixels. Seguro. Ainda temos os mesmos resultados, mas desta vez, um resultado melhor. Estamos nos concentrando no canto superior direito da tela agora. K. Então, a próxima na fila é a barcaça melhor do que o suficiente. Deixe-me destacar a cópia aqui. Não ceda. Vamos dar uma largura a ele. 15 pixels. A altura é de 50 pixels. Posição. Lembre-se de que a posição anterior era relativa. E agora vamos torná-los absolutos, por favor. Esse cara aqui vai estar aqui. Precisamos classificar o CSS de acordo com a classe para que você não se confunda no futuro. Quando você faz algo assim, seu código se torna muito fácil de ler e entender. A parte superior menos 55 pixels. A cor de fundo será vermelha. A cor, que é a cor da fonte, será branca. Então, quando você conferir o navegador por enquanto, vamos ver o que temos. Você pode ver? Você verá esse fundo vermelho com o número de notificações escritas nele. Portanto, o próximo passo é torná-lo secular. Você pode ver? Então, vamos especificar o raio da borda. Vamos fazer com que seja 50 por cento. Claro que você deve entender o que é agora. Tenha uma tela flexível. Vamos alinhar os itens ao centro. Justifique o conteúdo para centralizar. O tamanho da fonte. Vamos fazer com que seja dez pixels. Ao salvar o navegador, dê uma olhada. Tudo está bem alinhado conforme o esperado. Eu adoro isso. Você pode ver, deixe-me ampliar um pouco. Dê uma olhada. Você vê isso? Agora, o que vou fazer seguir é mudar a cor dos ícones. Eu não gosto desse jeito. Ok, vamos fazer isso rapidamente. Eu vou vir aqui. Esse é o nome da classe dos ícones. Então, vou destacar a cor da ervilha. Venha aqui, ponto, ícone dot nef. Então vamos dar a cor da imagem W. Salvar no navegador. Dá para ver que tudo está muito bonito. Eu adoro isso. Então, amigos. Isso é tudo por enquanto. Na próxima palestra, começaremos a trabalhar na navegação lateral. Nos vemos na próxima palestra. Mantenha o foco e sempre tome cuidado. 108. Componente de 106 sideNav: Nesta palestra, vamos construir a navegação lateral. O fim. Teremos um sistema de navegação lateral muito bonito como esse carro, certo? Então, vamos prosseguir com o VS Code. Abra o Explorer e o B e, em seguida, escreva no diretório de navegação lateral. Temos que criar os componentes de navegação lateral. Novamente, precisamos criar o arquivo CSS correspondente. Aqui mesmo nos componentes de navegação lateral. Vamos gerar os componentes funcionais. E então temos que renderizar esses direitos de navegação lateral dentro do componente do aplicativo. Para isso, vou ter um div aqui. Dê a esse div um nome de classe de contêiner. Opa, certo. Ok. Então aqui estamos na div. Vamos controlar os nervos laterais. E, por favor, faça bem em importá-lo na parte superior. Tudo bem. Então, a ideia aqui é dividir a tela em cinco unidades diferentes. Então teremos a unidade 1.234,5. Portanto, a navegação lateral ocupará uma unidade da tela. Portanto, a parte restante da tela será quatro vezes maior na lateral, agora é bem simples. Então, a maneira de conseguir isso, de implementá-lo, foi o flexbox. Então, diretamente no aplicativo CSAs, vamos criar o contêiner para exibir flocos. Ok, vamos voltar a recitar componentes suficientes. E então temos que especificar o nome da classe dessa div. Dê a ele um nome de classe de Sidon of container. Vou destacar e depois copiar. Venha aqui, do lado suficiente do DOD, abra e feche os colchetes ondulados. Então vamos fazer com que ele flexione um. Então isso fará com que ele ocupe apenas uma unidade da tela, é tão simples quanto isso. Então, vamos voltar para a navegação lateral e começar a criar a navegação lateral da interface do usuário. Vou limpar isso. Vamos ter um div com o nome da classe de slide agora para nosso invólucro par direito , vamos ter outro div, dê a ele um nome de classe do menu de navegação lateral. Então, dentro do menu, teremos uma hash tag com três. Dê à história um nome de classe, suficientemente apertado, Hall. Eu só vou fazer o painel, certo? Ainda assim. Tudo bem, no menu de navegação lateral, teremos a tag UL, pelo menos o nome da classe de navegação do site, certo, estamos na UL, teremos uma tag LI. O LI é um nome de classe de Sidon do item da lista. Certo? Dentro. Nós vamos ter um ícone. E, claro, você sabe que vamos importar nossos ícones da Materia para você. Portanto, não há mais necessidade de voltar ao site porque já o temos instalado aqui. Então, o que vou fazer agora é importar colchetes abertos e fechados. Linhas tau da barra MEI, material de barra de ícones. Então temos que renderizá-lo aqui. Feche também o que é a etiqueta de fechamento automático. Temos que dar a ele um nome de classe. Então, se um motivo para um className é poder estilizá-lo. E ei, eu vou fazer em casa é bem simples. Tudo bem, vamos tirar o navegador. Você pode ver? Dê uma olhada. Agora, temos a aparência assim. Não se preocupe. Quando começarmos a estilizá-lo, novamente, você o verá extremamente bonito. Vamos continuar com a interface do usuário. Então, quando a tag de fechamento da tag LI, teremos outra tag LI. Dê a ele um nome de classe. Desta vez. Será um item da lista de navegação lateral, assim como este. Ok, Kirby. Então, desta vez, temos que importar o ícone da linha do tempo. Vamos fazer chover aqui embaixo. Feche com a etiqueta de fechamento automático. E então também temos que dar o nome da turma. E nesse caso, os nomes dos clusters serão os mesmos. Então, eu só tenho que copiar esse cara daqui. E depois cole simples. Aqui. Vou escrever análises. Novamente. Eu só tenho que destacar isso e duplicá-lo. Então, não precisamos digitar tudo de novo , porque quem já fez isso antes? Dedo para copiar e colar. Ok pessoal, eu falo demais. Aqui. Vamos ter uma tendência ascendente. Então, temos que mudar o ícone. Agora, vamos importar a tendência em. Tudo bem, aqui temos dois. A tendência no braço direito serão as vendas. Alt, Shift F para formatar o código com mais bonito. E, claro, se você não instalou seu código VS, tudo o que você precisa fazer é acessar as extensões e procurar por mais bonitas. Definitivamente, você o terá lá. Clique no botão Instalar para instalá-lo. Quando você salva e finaliza a compra no navegador. Você terá algo assim. Então, o que vou fazer agora, deixe-me mostrar a div com o nome da classe do menu de navegação lateral. Você vê nas linhas 92, linhas 25 destaques. Ok, só temos que abrir espaço aqui porque eu não quero que ninguém se confunda. Destaques. Vamos ver. Então, temos que duplicá-lo três vezes. 123, simples e curto. Quando você salva e marca no navegador. Certo? Portanto, temos que alterar os ícones e a tarefa certa para corresponder à especificação. Vamos começar com esse cara aqui. Vou dar um espaço para que você não se confunda. Gosto de ensinar em uma oficina de barro, Marla. Certo? Você pode ver aqui que vamos importar o ícone da pessoa do material. Você altera também altera esses usuários da ferramenta. Aqui temos que importar inventário. Olha pessoal, vocês podem realmente fazer isso do seu lado sem assistir mais às palestras. Uh-huh. Sim, você pode fazer isso. Vou importar um ícone chamado P. Novamente, vamos importar todos os ícones para esta seção a cavalo, vou importar outro ícone chamado avaliação. Então, logo abaixo, também teremos um poço. Temos que mudar a redação para , vamos supor, produtos. Então, aqui vamos fazer uma avaliação. Ok. Podemos deixar isso como venda? Sim, podemos, mas vou fazer uma transação. E por último, vou duplicar essa tag LI aqui. E então temos que importar outra árvore de eventos de ícones. Então, parece que fiz algo que não é nove, está aqui para a avaliação. Isso deveria ser um relatório. E aqui vamos fazer aqui o inventário. E estes terão uma transação. Então, vamos passar para a próxima linha. Esse cara aqui, deixe-me te mostrar. Então, terminamos com isso. Ok? Agora vamos passar para a próxima seção da navegação lateral. E você pode fazer isso no final, como eu disse anteriormente. Para esta seção, vamos importar. Então, vamos importar o ícone email karma. Vamos importar a classificação de ícones. E por último, nesta seção, temos que importar o ícone da bolha de bate-papo. Esta é a primeira, a segunda e a terceira seção. Aqui. Costumo enviar e-mails. A redação será por e-mail. Aqui. Vamos transformá-lo em um quadro de chatbot. Aqui, seria mensagem ou mensagens? Então, por assim dizer? Obviamente, o último aqui desta seção será a classificação. A esperança certa será administrada. Então esse é o último de tudo. Vamos ver o que fizemos até agora. Você pode ver que está muito bonito, mesmo sem estabilizá-lo. Então, na próxima palestra, nós definitivamente a tornaríamos perfeita ou correta. Então, vá para o código VS e vamos continuar. Vamos importar os ícones necessários para a última seção. Coloque uma vírgula aqui. Precisamos de contas gerenciais, mais calmas, precisamos de análises, mais calmas. E, por fim, precisamos de relatórios. Aqui. Temos que mudar esse cara para gerenciar contas. E aqui, a parte superior direita será a análise de gerenciamento. Serão análises por aqui. E, por fim, teremos relatórios. E aqui estarão os relatórios. Salvar. Você pode ver? Portanto, tudo está funcionando perfeitamente , conforme o esperado nesta palestra. Antes de prosseguirmos para a próxima palestra, precisamos fazer alguma coisa. Aqui você verá um painel. Painéis e painéis estão na seção. Essa seção deveria ser uma seção diferente e não a seção do painel. Então, temos que voltar ao código, especificar as seções. Digamos que esse seja o menu de administração. Você pode alterá-lo para o que quiser do seu lado. Mas o nome deve ser relevante. Aqui. Vamos ver as notificações. Por fim, podemos ver aqui nossas equipes simplesmente escrevem algo que seja relevante para o aplicativo que estamos criando de forma segura. No navegador. Eles são esses. Você pode ver? Tudo está funcionando perfeitamente, conforme o esperado nesta palestra. Então, na próxima palestra, começaremos a estilizar essa empresa. E no final, você fará com que fique extremamente bonito. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o cuidado focado e holístico. 109. 107 Css de lado: Nesta palestra, começaremos a estilizar o componente de navegação lateral. No final. Você terá uma aparência extremamente bonita. Prossiga com o código VS e vamos continuar. Abra o CSS de navegação lateral. E aqui, temos que dividir a tela em duas partes. A borda esquerda da tela será a quantidade suficiente de empresas alimentadas, e a borda direita da tela será a navegação lateral, CSS. Ok, então vamos começar com o contêiner de navegação lateral. Na palestra anterior, temos a flexibilidade de ser uma, que por acaso ocupará unidades de toda a tela. Ok? Agora, vamos dar uma altura. Um V vermelho, cuja posição de 50 pixels ficará pegajosa. A cor de fundo será azul Alice. Os 50 pixels principais. Feito isso, vamos vincular o componente ao arquivo CSS. Importações. Seguro no navegador. Isso você pode ver? Perfeito. A próxima linha é o invólucro de navegação lateral. Claro que aqui cometemos um pequeno erro aqui. Tem que estar pronto, por favor. Você tem que ter paciência comigo porque estou gravando áudio negado. Claro, eu não sou os robôs. Somos humanos e às vezes podemos cometer alguns erros de ortografia. Ok? Acolchoamento, 20 pixels. A cor, vamos fazer com que seja cinza. Então, eu vou fazer cinco por cinco desse jeito. O ninho é o menu de navegação lateral. Esse cara aqui, copie, venha aqui, pontos, menu de navegação lateral. A margem inferior será de dez pixels. A lista agora é o lado do título. Entendido, venha aqui. Dod, título suficiente. Teremos que o tamanho da fonte seja igual ao das imagens. A cor, que é a cor da fonte, RGB. Quando é sete, vírgula um, vírgula um é seis, salve e veja o que temos no navegador. Legal. Você pode ver, agora isso está ficando bom. Vamos torná-lo mais bonito. A próxima na fila é, no mínimo, a navegação lateral. Observe a forma como estou configurando o CSS de acordo com os nomes das classes. Essa é uma das maneiras de escrever código como um profissional. Espero que você esteja aprendendo algo lindo. Para a lista de navegação lateral, o que vamos fazer é remover esse ponto aqui. Você pode ver? Então, vamos retirá-lo. Vamos fazer em estilo de lista. Não vamos ter nenhum. Salve e finalize a compra no navegador. Está desaparecido. Consegue ver isso? Vamos continuar. Volte aqui. Então. Vamos especificar que o preenchimento seja de cinco fotos. Para o item de navegação lateral, que é o item da lista de navegação lateral, item lista de inscrição por pontos, preenchimento, cinco pixels. Vamos fazer com que os custos sejam indicativos. Então, vamos fazer com que ele exiba o flex. Alinhe os itens ao centro, ao raio da borda. Vamos fazer com que seja de cinco pixels. Quando você salva e volta para o navegador. Isso é o que você entende, certo. Agora fizemos o item da lista de navegação lateral. A próxima linha é destacar os itens quando você coloca o mouse sobre eles. Então, vou copiá-los daqui. Cole os colchetes. E aqui eu vou fazer vírgula ativa por pontos. Copie esse cara novamente. Quando você passa o mouse sobre o item da lista, especificaremos que a cor de fundo seja RGB. Na verdade, pode torná-la azul Alice. Mas vamos continuar com isso aqui. Então. Vamos mudar a cor dos telefones para preto. Quando você economiza na finalização da compra no navegador. Agora, quando você passar o mouse sobre ele, você obterá esse belo loop aqui. Tudo bem. Finalmente, precisamos adicionar cores para decidir ícones suficientes. Então, esse ângulo aqui, temos que dar a mesma cor com o ícone de navegação superior. Então, o que vou fazer agora é destacar o ícone lateral suficiente. Venha aqui. Dod, ícone com o lado suficiente, abra os colchetes. E certo, para colocar os colchetes, temos que aplicar os estilos. Meu direito geral. Vamos fazer com que seja de cinco pixels. Tamanho da fonte, 20 pixels. E a cor, que é a cor do ícone, será Dodger blues, safe and checkout. O navegador. Você pode ver que tudo está funcionando perfeitamente como espectador. E isso é extremamente bonito. Então, vamos dar uma olhada. Você pode ver? Parece bom. Eu adoro isso. Isso é tudo por enquanto. Nos vemos na próxima palestra. 110. Componente de item em destaque: Nesta palestra, vamos nos concentrar nos itens futuros, nos componentes, onde teremos a receita, os retornos de vendas n, os profetas. Acesse rapidamente o código VS e vamos prosseguir. Então, a primeira coisa que vamos fazer é dividir as telas também em unidades. Do jeito que fizemos na palestra anterior. Abra o Explorer. E então, no diretório inicial, criaremos um novo componente chamado também criaremos um novo componente chamado Whom dot gears. Temos que criar o arquivo CSS correspondente. Certo? Estamos na casa J é, temos que gerar o componente funcional. Em seguida, daremos a esse div um nome de classe de qual contêiner eu vou destacar e depois copiar. Vamos importar rapidamente o arquivo CSS. Quem pontilha CSS. Então, certo, estamos no CSS inicial. Temos que estilizar o contínuo. Então, a ideia é simples. Deixe-me te mostrar. Queremos que esse espaço aqui seja seis vezes maior na lateral agora. Tudo bem, então fazer isso é extremamente simples. Tudo o que precisamos fazer é flexionar seis. Então, quando você fizer isso, esse cara aqui será seis vezes maior que os nervos laterais, o que simplesmente implica que a navegação lateral vai entrar nesse espaço aqui seis vezes. Também é tão simples quanto isso. Se você quiser entrar quatro vezes, tudo o que você precisa fazer é alterá-lo para flex for. Então, quando você fizer isso, esse espaço aqui será quatro vezes maior no lado agora de Spades. Deixe-me te mostrar em Protocolo. Volte ao nosso componente de aplicativo e , em seguida, executaremos os componentes domésticos. Aqui temos que importar quem a partir de dot slash pages slash, home slash home. Salve e volte para o navegador. Talvez você não consiga observá-lo, certo? Então, agora eu vou ajudá-lo a vir aqui, voltar para o CSS inicial e vamos especificar a cor de fundo. Vamos torná-lo vermelho. Bom. Tudo bem, então eu quero que você observe o espaço aqui. Sob o espaço que temos aqui. Então, quando eu fizer isso aqui, flexione seis e economize. Relógio. Consegue ver isso? Então, esse espaço se torna seis vezes maior do que o espaço da navegação lateral, o que simplesmente implica que o lado agora de vai entrar nessa parte aqui seis vezes. Então, vou deixar você fazer seu próprio julgamento no final e escolher o espaço apropriado que será bom para o seu projeto. Mas para mim, vou deixar assim. Vamos limpar o fundo vermelho. Agora, aqui é Lee que a diversão começa. Quando o componente abre os componentes, certo? Estamos no diretório futuro. Vamos criar um novo componente chamado ponto em destaque. Crie o arquivo CSS correspondente. Estamos no futuro gs. Vamos gerar também o componente funcional. Temos que importar o arquivo CSS para não esquecermos de fazer isso. Em destaque, mas CSAs. Perfeito. Ok, vamos começar. Vamos dar a esse div um nome de classe de destaque. Ok, vamos acabar com esse cara e descarregá-lo. Diretamente dentro desta div. Vamos ter outro div com o nome da classe do item futuro, certo? Estamos no item futuro, teremos um intervalo com o nome da classe, o título. E o título será receita. É claro que pode ser o que você quiser, mas que seja relevante para o aplicativo que estamos criando. Vamos ter outra div aqui, dê a ela um nome de classe contêiner de dinheiro em destaque e em destaque. E adaptando a div. Vamos ter uma etiqueta de extensão. O nome do cluster incluirá dinheiro em destaque. Então eu vou fazer aqui, vamos ter outro período. Dê a ele um nome de classe. Leituras de dinheiro em destaque. Então, também queremos exibir um ícone aqui. Então, o que faremos a seguir é importar o ícone do ícone de materiais. Aqui no topo. Eu vou fazer importações. Seta para baixo a partir do ícone de materiais. Ok, precisamos da seta do teclado. Seta do teclado para cima , bem entre o vão. Vamos correr mortos. teclado está mais próximo da tag de fechamento automático e também vamos especificar o nome da classe. Em destaque. Ícone aberto. Ok, a razão para isso é que vou estilizá-los de forma diferente. Sim, então é exatamente por isso que ele terá nomes de classes diferentes. Então, aqui teremos outro intervalo logo após a div de encerramento com o nome da classe do futuro contêiner demoníaco. Esse cara aqui, aqui está a divisão final. Vamos ter outro período. Dê a ele um nome de classe do futuro sérvio. Vou fazer em comparação com as últimas vendas. Então, tendo feito isso, temos que renderizar esse componente, certo? Estamos no componente doméstico. Aqui. Você só precisa deletar esse cara. Nós vamos renderizar. Componentes futuros. Estão certos. Feche-o com a tag de fechamento automático e certifique-se de importá-lo. Quando você salva e verifica o navegador. Aqui está. Você pode ver? Agora temos um tempo assim. Portanto, temos 1234. Então, o que vou fazer agora é duplicá-lo três vezes. Volte para Vue.js. Selecione a div com o nome da classe do item em destaque, abrindo e fechando a div. Então, o que eu vou fazer é duplicá-lo três vezes, assim. E então você só precisa alterar as informações e deixe-me fazer isso por você. Essa é a receita. Então, isso vai ser uma venda. Podemos dizer que as vendas são de 9.000, seja o que for. E então podemos fazer com que isso pareça assim. Temos que mudar o ícone ou você pode decidir usar qualquer ícone de sua escolha. É só uma escolha. Então, para mim, vou usar um ícone chamado Trending Up Friends. Na verdade, você pode conferir todos esses ícones no site deles, ok, material ui.com, você pode conferir todos esses ícones lá. Então, eu não quero perder seu tempo levando você até lá , porque isso realmente não importa pois podemos importá-lo diretamente daqui. Ei, eu vou fazer tendências em tudo. O Cs é bem alto. Podemos fazer a flecha para subir com a área europeia. Então aqui vai estar para devoluções. Eu vou fazer assim. Eu vou fazer assim. E então temos que mudar o ícone. Estão para cima. Agora você pode usar qualquer um dos ícones. A seta para baixo é legal. Não há problema nisso. Porque nosso retorno não é tão alto. Então, para o último , serão os feeds profissionais. Então, o que vou fazer agora são lucros. Olha, todo mundo adora lucrar com alguma coisa. Estou te dizendo honestamente. E os lucros, vamos torná-los extremamente altos. Todo mundo adora prosperar. Portanto, temos que mudar o ícone para cima. Ok, tudo bem. Feito isso, também precisamos especificar o nome da classe, respectivamente. Então, aqui vou fazer alguns pontos, com o ícone para cima. Vamos tornar isso negativo porque queremos estilizá-los individualmente. Podemos fazer com que isso seja positivo. Assim como você quiser. Deixe-me tornar isso positivo também. Assim como você quiser. Podemos dizer que o retorno deve ser negativo. Tudo bem, estamos prontos para ir. Confira no navegador. Temos 1234. Perfeito. No entanto, não está bonito como esperado. Não se preocupe. Novamente, na próxima palestra, quando terminarmos de estilizar esse componente, você definitivamente vai adorar. Isso é tudo por enquanto. Nos vemos na próxima palestra. 111. 109 Css de item em destaque: Bem-vindo de volta aos recalls. Nesta palestra, continuaremos estilizando o componente de poucos pontos. Mantenha-se fiel ao código VS e vamos continuar. Portanto, você precisa abrir o CSS futuro e , em seguida, o G em destaque é dividir a tela como de costume. Mas antes de prosseguirmos até aqui, eu quero fazer alguma coisa. Deixa eu te mostrar essa div aqui. Vamos dar a ele um nome de classe diferente. Então, aqui vai ser o item futuro B. Então, em qualquer lugar que você chegar ao item futuro novamente, aqui vamos fazer C. E, por fim, vamos fazer d. Então, estamos procurando uma maneira de poder estilizá-los de forma diferente. Em outras palavras, vamos aplicar cores diferentes em cada um desses tufos. Então, outra coisa que precisamos fazer aqui antes de prosseguirmos com a estilização da obrigação é mostrar os ícones. Damos a eles className e filtramos o ícone. Eu não acho que isso seja bom. Portanto, você deve selecionar o item futuro op, comando D para desmarcar todas as ocorrências. Acho que isso é tudo por enquanto. Agora, use a tecla de seta para a direita para movê-la para a frente, limpar o salvamento e, em seguida, vamos prosseguir com os CSAs. Primeiro, temos que estilizar o futuro. Então, basicamente, queremos que esse cara apareça em uma empresa horizontal. Então, para fazer isso, venha aqui, pontilhe no futuro, então a largura será de 100 por cento. Vamos ter uma tela flexível. Então salve e confira o efeito dessa flexão que usamos aqui. Você pode ver agora que tudo parece assim. Então, vamos criar espaço entre cada item. Ok? Para fazer isso, é extremamente simples. Justifique o conteúdo, o espaço entre o momento em que você salva e a finalização da compra no navegador. Agora você vê que temos espaço entre cada item. Tudo bem, já está aparecendo conforme o esperado. Olha, nós só temos que torná-lo mais bonito. O próximo item da fila é o item futuro. Destaque e copie, venha aqui, item filtrado por pontos. Então vamos fazer com que ele flexione um. A margem zero pixels, dois pixels e, em seguida, a margem dos dez pixels superiores. Estofamento. Para usos épicos. O raio da borda é de dez pixels. O causal. Então, um dia, o usuário passa o mouse e precisa, ele mostrará o ponteiro de um antes esplêndido, certo? Sim. E a cor de fundo. Vou usar o anticline Hide. Tudo bem, ao salvar e conferir o navegador, você verá que, opa, isso deve ter 30 pixels. Novamente, salve e volte. Então, o que vamos ter mais espaço aqui, como Lee, uma bela linha fina é especificar a sombra da caixa. E, claro, você pode divulgá-lo na Internet visitando o site box-shadow e, em seguida, poderá fazer seus próprios julgamentos e usar a sombra de caixa apropriada que será boa para sua aplicação. Para mim. Mais uma vez. Vou apenas copiar e colar porque já tenho isso em mente. Então é isso caso você queira usar minha própria sombra de caixa. Assim, apenas os valores desse tipo. K. Então, o que eu vou fazer agora é destacar e depois duplicar isso. Aqui eu vou chamá-lo de item filtrado B. Mais uma vez, destaque esse cara duplicado. Este será o item em destaque C. Por fim, este será o item filtrado D. Quando você salva e verifica o navegador, tudo deve aparecer bem agora, perfeito. Esse é o resultado esperado, mas agora só precisamos mudar as cores. Para o feto. Item B, a cor de fundo será filtrada com água. Item C. A cor de fundo será violeta. Então, a rixa no item D será o lugar do hijab. Claro, você sabia o quanto eu amo esses Da Jia Bu. E espero que você possa ver tudo com clareza. Me disse se você vê claramente ou não. Ok, você pode ver claramente. Está bem. Vamos dar uma olhada no navegador. Linda. Eu adoro isso. Tudo bem, então vamos nos concentrar nas fontes. Agora mesmo. Vamos estilizar o futuro em forma de título. O tamanho da fonte é de apenas 20 pixels. Não é demais. Depois, o recipiente de dinheiro filtrado, esse cara aqui. Imagine dez pixels, zero pixels. Vamos ter uma tela flexível. E então vamos alinhar os itens ao centro. O ninho é o futuro do dinheiro. E, por favor, do jeito que estou organizando esse arquivo CSS, você deve seguir meu exemplo assim. Isso definitivamente o ajudará no futuro. O tamanho da fonte, 30 pixels. As ervas daninhas da fonte estão em negrito. A futura Margaret, opa, veja o que eu fiz aqui. Gente, olha, eu estou gravando às nove, então, por favor, vocês precisam me colocar. Então, o que vou fazer agora é destacar todas as ocorrências da futura taxa de pneumonia. Comando D para fazer seu multicore. Então, a edição, que normalmente é selecionar todas as ocorrências. Eu só tenho que mudar meu mouse aqui e depois fazer assim. Copiar. Vamos fazer com que ele exiba a flexibilidade. Vamos alinhar os itens ao centro. A cor, que é a cor da fonte. Vamos torná-lo verde. Então, queremos fazer com que o futuro ícone negativo tenha a cor vermelha. E então o tamanho da fonte Futura tamanho da fonte é de 15 pixels. A cor. Concordo. Salve e vamos ver o que temos agora. Perfeito, tão simples e agradável. Eu adoro esses. Portanto, você pode mudar algumas das cores, se desejar. Mas, para mim, sou Qu e estou satisfeito com eles. Tudo bem? Isso é tudo por enquanto. Nos vemos na próxima palestra. 112. Componente de gráfico 110: Bem-vindo de volta aos recalls. Nesta palestra, vamos implementar o chat Analytics. E, claro, vai ser muito interessante. Não se preocupe. É muito simples fazer isso. Portanto, não entre em pânico. Acesse rapidamente o VS Code e menos prossiga do Heron para o código VS. Primeiro, temos que configurar a estrutura da floresta e tudo o que está envolvido. Então, abra os componentes e escreva no diretório de bate-papos. Vamos criar um novo arquivo chamado charts dot js. Crie rapidamente o arquivo CSS correspondente. Certo? Dentro dos componentes domésticos. Vamos renderizar o gráfico G é. Mas, por enquanto, temos que gerar o componente funcional e ir para a casa, G está aqui. Vamos ter um div, dê a ele um nome de classe do widget analítico de bate-papos. Certo? Estamos na div, vamos aproximar o componente do gráfico com a tag de fechamento automático e importá-lo na parte superior. Vamos aplicar estilos rapidamente à classe de widget analítico de bate-papo. Helen to home sss dot chat analytic rejeita. O que vamos fazer é exibir o flex. É tão simples quanto isso. Certo? Agora terminamos a configuração. É hora de prosseguir com o chat Analytics. Para uma análise de bate-papo, usaremos uma biblioteca externa chamada recarga. E aqui está. Então, heroína, para entrar em contato com out.org, podemos abrir o guia e, em seguida, é exatamente como instalar retardados. Então, o que vou fazer agora no terminal é o npm install retardar o VS Code e depois o Control C para interromper o servidor atualmente em execução. Npm install, alcance anúncios como esses. Mas embora eu já o tenha instalado, estou fazendo isso apenas para mostrar exatamente como instalá-lo. Então, durante a instalação, vamos entrar em contato novamente e clicar nos exemplos. Então, primeiro, vamos copiar esses dados aqui de linhas para duas linhas, 47, cópia. Venha aqui, vá para o chat GS Command B para fechar o Explorer. E então temos que colar os dados aqui. Então, esses são os dados que vamos usar. Volte aqui também, temos que copiar essas importações. Mas faça isso, vamos excluir algumas entradas desnecessárias. Venha aqui no topo. Assim. Richard instalou com sucesso. É hora de tirar o microfone das paradas. Volte para as leituras novamente, para a API. E queremos usar os gráficos de área. Você pode usar qualquer um dos bate-papos que quiser. Mas neste curso e para o propósito de nossa obrigação, esse é o gráfico que vamos usar. Então, basta copiar da tag de bate-papo da área de abertura, a tag de fechamento, destacar e copiar. Volte ao código VS, selecione a definição, limpe-a e cole. Então, quando você salva e executa o aplicativo, ele definitivamente reclamará por que é simplesmente porque precisamos importar os bate-papos da área na parte superior. Então, vamos eliminar essas entradas desnecessárias. Importa os gráficos de área e também temos que importar a área assim. E a lenda aqui são entradas desnecessárias. Portanto, o contêiner responsivo será usado no futuro. Portanto, não vamos excluí-lo. O K. Nice. Nosso direito. Vamos formatar o código, shift f, formatar o código. E agora temos a indentação adequada. Ok, vamos executar rapidamente o aplicativo novamente. Estatísticas da mãe. Aqui está a análise do gráfico. Não se preocupe. Vamos mapeá-lo com nossos próprios dados. Então agora temos o Y e o X. São esses. Volte ao código VS e vamos fazer as coisas da maneira correta. A primeira coisa que vamos fazer é mudar os dados aqui, o nome, queremos que comece em janeiro. Aqui vão estar as despesas. Serão devoluções. E aqui vamos ser muito mais difíceis, certo? Então você pode realmente indicar onde quer fazer aqui, mas é assim que deveria ser. Para o nome novamente, chegará fevereiro. Isso vai ser caro. Rapazes. Acho que você pode continuar com o final sutil. Serão devoluções. Isso vai ser total. E você tem que colocar a coluna aqui. Então, você só precisa alterar todos os dados. Mas, para mim, tenho todos esses dados prontos. Então, eu vou apenas copiar e colar. Portanto, se você quiser copiar esses dados, basta acessar os materiais holandeses. E então você encontrará todas essas guias aqui. Organizei os dados adequadamente para que você possa absorver, pausar o vídeo e digitar o meu, se desejar. Então, deixe-me jogar devagar. Você pode ver que você pode pausar o vídeo. Então você pode simplesmente digitar todas essas coisas aqui é bem simples. Agora temos que voltar aqui. A largura dos nossos gráficos será 30, a altura será 350. E boom, borla entre os dez primeiros, direita é 30, a esquerda é zero e a parte inferior é zero. Estamos bem com isso. Não há nenhum problema. Mas mais uma coisa que vamos fazer é adicionar o gradiente de linha, que é esse cara aqui. Ok? Novamente, aqui mesmo, vou colá-los, tudo isso nos materiais do painel. Então, aqui está exatamente o que exibirá algumas das coisas. Copie isso e duplique-o apenas uma vez. A chave de dados aqui serão as despesas. E aqui a chave de dados será retornada. Então, na verdade, estamos traçando o gráfico com nossos próprios dados agora. Aqui, a chave de dados será total. Exatamente o que você tem aqui. Despesas, devoluções para tau. Ok? Tudo está correto. Devoluções. Perfeito. Vamos tirá-lo no navegador. Percebem, pessoal? Quero que os retornos apareçam na cor vermelha. Temos que voltar e fazer algo a respeito. Então, você vê que os retornos aqui estão usando PV colorido, que é esse gradiente linear. E esse é o gradiente linear que criamos sozinhos. Portanto, isso será aplicado às devoluções. E o ID é chamado de cópia RV. Então, até os retornos aqui, vamos fazer um trailer colorido. Quando você salva e verifica o navegador. Você pode ver que tudo apareceu bem conforme o esperado? Mas, embora não esteja bem alinhado, então se preocupe. Na próxima palestra, usaremos CSS para finalizar o trabalho. Mas, por enquanto, vamos recapitular rapidamente o VS Code logo na parte superior. Então, para usar o gráfico, primeiro, precisamos instalar uma biblioteca externa chamada retards. E então tudo isso é importado do módulo de varejo. A área, o gráfico de área, eixo x, o eixo y e muito mais. Então, esses são os dados que usaremos para traçar o gráfico. Então, aqui temos o nome e o nome estará no eixo x. Deixe-me te mostrar rapidamente. Você pode ver que aqui está o eixo x. Então, aqui você tem janeiro, fevereiro, março, abril, maio, junho a julho. Portanto, o restante desses dados será plotado nos eixos x e y. E é por isso que você pode vê-los aqui. Então, isso é tudo para os dados. E aqui nós renderizamos os retardados. E então damos a ele uma largura de sua altura gorda de 350. E então os dados aqui são os dados que queremos usar, que é esse cara. Deixe-me mostrar esses dados aqui. Então, se eu o nomear como data, eu também tenho que vir aqui e chamá-lo de TBI. Quando você diz ventrículo no navegador, vai ser o mesmo. Correto? Portanto, você pode deixar assim ou simplesmente observar a entidade até os dados padrão. Agora, aqui nas cores do gradiente. Então, isso realmente depende de você. Eu mesmo criei esse gradiente porque queria que os retornos aparecessem na cor vermelha. Então, eu mesmo tenho que criar essas colunas de gradiente vermelho. Mas esse, o verde e esse outro cara aparece aqui, é uma espécie de cor padrão da Rachel. Assim, você pode criar mais cores e adicionar mais detalhes. Então esse é o eixo x. O eixo x está usando a chave de dados do nome, que é janeiro, fevereiro, março, abril e maio a julho. Então, traçamos o nome no eixo x. Então aqui está o eixo y. E então temos os dois dentes, na verdade a ponta da ferramenta. Deixe-me te mostrar rapidamente. Quando coloco o mouse sobre ele, os dois dentes ajudam a exibir as informações. Então, quando você o retira, por exemplo e salva, vamos ver o que acontece. Agora. Você pode ver que, ao colocar o mouse sobre ele, não obterá mais os detalhes. Certo. Então, é meio que isso para a TBS. Ele fornece dicas sobre o que é o gráfico em um ponto. Você pode ver neste momento as despesas são 1.200, então o retorno é 23.300, ponto mais simples. E aqui você tem o tipo de ser monótono. Despesas principais de dados. Ei, faça com que o traço seja dessa cor. E então a opacidade de preenchimento é uma. Portanto, o URL do combustível, que neste caso, é a cor que você deseja usar é o ID de cor do gradiente que criamos. Então, é tão simples quanto a, B, C. E, por enquanto, vou dizer, cuide-se e nos vemos na próxima palestra. 113. 111 Css de gráfico: O chat Analytics já parece muito bom. Mas vamos ver se há algo que possamos fazer para alinhá-lo de uma forma mais perfeita. Porque, como você pode ver, não há espaço entre a análise de dados e as informações do recurso. Então, vamos adicionar rapidamente o VS Code. E, por favor, certifique-se de importar o arquivo CSS, certo, para colocar no componente gráfico. Portanto, essa é a maneira de vincular seu arquivo CSS ao componente. Diretamente na interface do usuário. Vamos ter uma div aqui. Dê a esse div um nome de classe do contêiner do gráfico. Portanto, o aplicativo está reclamando simplesmente porque você não pode ter o elemento GSS fora do nó principal. Então, vamos destacar um reator para marcar a tag de fechamento, o precedente, a tecla Alt em seu teclado e, em seguida, tocar na tecla de seta para cima para movê-lo esta div com o nome da classe do contêiner Chad. E rapidamente temos que estilizar essa div, abrir o CSS do chat. Então aqui vamos fazer com que seja flexível. Vamos dar a ele um preenchimento de dez pixels. E agora você verá o espaço entre a margem superior. A margem superior é de 30 pixels. Salve e vamos dar uma olhada. Certo. Agora, está bem alinhado. Temos um espaço entre o gráfico n, as informações futuras. A linha ocidental é para especificar a sombra da caixa. Então esta é minha própria sombra de caixa. Você pode decidir, deixe-me mostrar uma coisa rapidamente. Ligue a Internet. Então, aqui, você só precisa configurar o gerador de sombras de caixa. Aqui está? Você pode ver aqui que você pode fazer sua própria sombra de caixa. Tudo bem, então, sim, muitos salvam o código. Você pode ver que tudo está funcionando perfeitamente bem. Então, quando começarmos a trabalhar no lado direito da tela, você a verá em um estado muito bom. Nos vemos na próxima palestra. 114. Configuração de estilo 112: Tudo bem, então, antes de prosseguirmos com a seção total da tela, com a seção total da tela, precisamos fazer algumas configurações. E é extremamente simples. Então, vá rapidamente para os materiais do painel que estão dentro. Você só precisa abrir a porta para ajudar. Em seguida, vamos copiar esse destaque em tau. Copiar. Volte para recodificar, abra o HTML do ponto de índice. Depois, basta encontrar um local para colar as configurações. Tudo bem, vamos fazer isso aqui. Cole e salve. Agora, vamos esperar para ver melhor o resultado. Eu adoro isso assim. Portanto, nesta palestra, prosseguiremos com o componente display to tau. Até lá. 115. Componente total de exibição de 113: Vamos prosseguir com o componente display to tau. Então, rapidamente, vá para a barra de progresso circular de reação. E aqui está o endereço. Você também pode pesquisar a barra de progresso circular do React. Aqui, não é? Por aqui? Você verá uma barra de progresso diferente diretamente nesta página. Portanto, o primeiro passo que vamos dar é instalar a barra de progresso circular do React. Então, vamos seguir o conselho. Então, se você estiver usando o yum, este é o conselho para você. E se você estiver usando o MPM, aqui estão os conselhos para você. Então, o que vou fazer é copiar esse conselho ou esse comando e depois voltar para o VS Code. Vamos encerrar isso. Controle C para parar o neurônio atual no servidor. Então eu só tenho que colar esse conselho aqui ou esse comando. Aqueça a tecla Enter para ativá-la. Instalado. Bem sucedido. Linda. Então abra o explorador, feche o bate-papo Jess no Comando B para abrir o Explorer. E, em seguida, abra o componente em que está a exibição em nosso diretório, criaremos um novo componente chamado dossiês de hotel dividido. Crie o arquivo CSS correspondente. Vamos passar para o RFC do hotel dividido para gerar o componente funcional. Bom. Vamos renderizá-lo rapidamente, certo, estamos em casa. Então, vamos entrar nessa div com o nome da classe do widget analítico Charles. Ele vai ficar logo abaixo do gráfico. Então eu vou fazer o hotel dividido. E, por favor, certifique-se de importá-lo na parte superior. Salvar. Agora, vamos prosseguir. Vamos começar dando a esse div um nome de classe de contêiner de exibição. Certo? Estamos na divisão. Vamos ter outro div com o nome da classe top. E então, logo dentro, teremos uma etiqueta H1. E essas, eu vou fazer a receita total. Especifique também o nome da classe. Vamos criar um título logo fora desta div com o nome da classe top. Vamos ter outra div. Dê a ele um nome de classe de Butão, certo? Para trazer o div com o nome da classe de bottom, teremos outro div com o nome da classe do gráfico em destaque. Logo dentro, temos que mostrar a barra de progresso do React. E para fazer isso, primeiro, temos que importá-lo com um dedo do pé. Também vou importar o progresso circular por meio do qual as crianças da barra de progresso circular do React. Temos que importar outro chamado Estilos de construção. Feito isso, vamos importar os estilos também. Então, o que eu vou fazer é voltar para a página da web. Aqui estão, na verdade, as entradas, mas estou usando a barra de progresso circular. Estou usando a barra de progresso circular com crianças. Então, eu só tenho que copiar essa entrada para os estilos. Venha aqui, cole, certo? Assim. Perfeito. Agora vamos começar a usar a barra de progresso secular. Então, neste div com o nome da classe do futuro, vamos renderizar o progresso circular com crianças. Feche isso. O que é a etiqueta de fechamento automático? Certo? Dentro do valor será 80. Todas essas coisas. Portanto, você também pode copiar diretamente da página, mas eu só quero especificar minhas próprias informações para que possamos seguir em frente e fazer o que você quiser. Mas é bom. Você segue minha liderança. O adquirente do teste. Ok. Vamos usar os dentes tortos diretamente dentro dos colchetes encaracolados. Então. Vamos ter AT e, fora da faixa curvilínea, vou especificar por cento. Então isso vai mostrar os 80 por cento, certo? Estamos na barra do progresso secular. Preocupe-se, eu vou te mostrar em um GeV, a largura do traço. Vamos fazer dez estilos. Agora temos que fazer uso dos estilos de construção. Acoplamento, feche parênteses, abra e feche o suporte ondulado. Eu vou fazer traçado, curva de linha. Isso vai ser MAS t, assim, você pode chamá-lo de mas, mas eu não sei como pronunciar isso de qualquer maneira. Então, quando você salva e vamos ver se temos algo exibido no navegador. E no navegador. Ok, então essa é a porcentagem que eu estava tentando explicar. Então aqui está a barra de progresso, aqui está o título da receita da cidade. Então, vamos adicionar os detalhes necessários e fazer com que pareça extremamente bonito. Código Vs. Então, logo após esse div com o nome da classe de bate-papos futuros, teremos uma tag P. Vamos dar a ele um nome ou título de classe. Então, todas essas coisas, eu acredito que você deveria entender. Não preciso explicar nada aqui. Você já sabe o que é a tag p. Processamento de transações anteriores. Coma, o último pagamento pode não ter sido contabilizado. Então você tem que fechar a tag p. O mais simples que, certo, vamos ver como ele aparece no navegador. Ok, aqui está a preocupação. Começaremos a estilizar essa capa e você definitivamente vai adorar. Vamos formatar o código para que agora tenhamos a indentação adequada. Aqui. Vamos ter um div com o nome da classe sumário, certo? Estamos nesta div, vamos ter outra div. Dê a ele um nome de classe. Off Item, certo? Estamos no item. Também temos um div. Dê a ele um nome de classe ou título do item de exibição. Aqui teremos outro div, o nome da classe do item resolvido. Então, dentro dessa div, vamos exibir alguns ícones para realmente indicar negativo. Então vá para o topo. Claro, você sabe, estamos buscando nossos ícones, vamos importar a seta do teclado para baixo da interface do material. Aqui. Aqui mesmo. Vamos alugar é bom. Você o fecha com a etiqueta de fechamento automático. Agora, vamos especificar o tamanho da empresa. Vamos ter outro div, dê a ele um nome de classe com o valor do resultado 15, 73. Ok, ótimo. Então, agora vamos copiar o div para o nome da classe do item e depois duplicá-lo duas vezes. O que vamos fazer agora é mudar os detalhes. Aqui vai ser na semana passada. Vamos fazer com que elas também sejam positivas. Como é positivo, a flecha vai subir. Então, temos que voltar aos ícones e depois importar o teclado. Ok, então aqui também vamos torná-lo positivo, assim como ser positivo. Tudo bem, vou fazer o alvo aqui assim. Vamos fazer disso o que você quiser, então, você sabe que isso é apenas um detalhe temporário. Então aqui eu vou fazer teclado. Ok, acho que estamos prontos para ir. Certifique-se de formatar o código com. Você pode ver agora que temos as indentações adequadas. Quando você salva e volta para o navegador. Aqui, você pode ver que temos a tela totalmente pronta? Mas agora não está tão bonito quanto o esperado. E, claro, você sabe que, na próxima palestra, certeza faremos com que seja agradável. Nos vemos na próxima palestra. 116. 114 Display de estilo total: Vamos estilizar os componentes totais da tela. Vá para o código VS. Abra rapidamente este split hotel dot css. E, por favor, antes de prosseguirmos, basta vinculá-lo para que não esqueçamos de fazer isso no futuro. Importe CSS com ponto e barra. Tão simples assim. Como sempre, vamos demarcar a tela assim. Certo? Vamos começar com o contêiner total de exibição. Copiar. Venha aqui. Vamos flexioná-lo para a margem, certo? 15 pixels. Vamos especificar a sombra da caixa. Então, vou copiar o que vou usar aqui. E eu disse que você pode realmente navegar na Internet para pesquisar por box-shadow e, em seguida, ela o levará a um site onde você pode, você sabe, fazer paradas sozinho. Portanto, você não precisa memorizar essas margens, os 20 pixels principais e o raio da borda. Queremos que seja um pouco exagerado. Então, pixels de deriva fariam isso. Quando você salva e finaliza a compra no navegador. Linda. Agora ele assumiu a forma esperada. Você pode ver como está certo? Então, vamos estilizar o resto dos itens. A próxima linha do termo é a parte superior. Vamos ter um display, flex. Alinhe os itens, centralize. Justifique o conteúdo e o espaço de maneira uniforme. Então, queremos que toda a espécie seja igual. E é aí que você usa o espaço uniformemente. Acho que você já sabe que a cor, é claro, você sabe o que é um número par, certo? Faça-o cinza. Sete ingressos para o navegador. Dê uma olhada. Você consegue ver a perfeição. Western Line é o título, que é esse cara, afinal. Então, vamos dar a ele um tamanho de fonte de 15 pixels. A fonte wheat. Vamos torná-lo ousado. Ok, vamos tirar isso para ver se estamos obtendo os resultados esperados. São. Isso é muito pequeno. Vamos fazer com que seja de 18 pixels. Ok, está bom agora. Tudo bem. O próximo da fila é o fundo. Deixa eu te mostrar esse cara aqui. O estofamento. Tela de 20 pixels : flexão, direção flexível. Então, queremos isso de cima para baixo. E eu vou fazer uma coluna. Tudo bem, espero que você entenda seu Flexbox. Alinhe os itens ao centro e justifique o conteúdo. Centro. Depois, a lacuna. Vamos fazer 14 fotos. K. Este componente está gradualmente tomando forma. A seguir está o gráfico futuro. Esse cara aqui. Quando terminarmos com isso, tudo deve estar bem. Vamos especificar a largura. 100 pixels, a altura, 100 pixels. Bom. Você pode ver? Tudo bem, vamos continuar. O próximo na fila é o título. Vamos fazer uma quantia. Deixa eu te mostrar esse cara aqui. Então. Dê a ele um tamanho de fonte de 30 pixels. Agora temos que estilizar a descrição. As ervas daninhas da fonte são 300. O tamanho da fonte. Para tirar fotos, a cor é verde. Alinhe o texto, centralize, salve e vamos ver a aparência da descrição agora. Parece bom. O ninho é o resumo. A largura. Vamos fazer com que seja 100%. Vamos ter uma tela flexível. Em seguida, alinhe os itens ao centro. Justifique o conteúdo. Espaço entre o consumidor e o espaço entre as paradas. Então, quando você dá uma olhada no osso do navegador, você pode ver que tudo está gradualmente tomando forma. Então, vamos começar rapidamente com a tela total. O próximo é o item. E, por favor, siga minha dica sobre como estou salgando o CSS. Definitivamente, isso o ajudará no futuro, para que você não precise espalhar a classe CSS que existe. Ao fazer isso, você levará algum tempo para procurar uma classe específica, talvez quando quiser estilizar o projeto novamente no futuro. Mas quando você faz isso assim, você pode obtê-lo facilmente quando estiver procurando por ele. Vamos testar uma linha até o centro. Acho que deveríamos continuar com isso. Ok. A seguir estão os resultados do item. Vamos fazer com que ele seja flexível. Alinhe itens. centro, a margem superior, ok, de cima, vamos fazer com que dez pixels sejam suficientes para isso. Em seguida, o tamanho da fonte. Vamos fazer com que seja de 1 pixel. Temos que estilizar o negativo e o positivo copiará isso. Agora, quando é positivo, queremos mostrar a cor verde. E, claro, quando é negativo, certo? Queremos mostrar a cor vermelha. Quando é negativo. É tão simples quanto isso. Multidão. Dê uma olhada. Tudo está bem alinhado e parece extremamente bonito. Você não gosta disso? Eu adoro isso. Tudo bem, agora temos nosso total de tela em bom estado. Isso está desligado agora. E na próxima palestra, continuaremos criando os widgets. Nos vemos na próxima palestra. 117. Componente de widget de ordem 115: Nesta palestra, começaremos a criar o componente do pedido que fizemos, que é a tabela de transações mais recente, que rapidamente acessou o VS Code e menos prosseguirá. Certo? Estamos na ordem em que fizemos o diretório. Vamos criar o pedido Widget Company. Ei, clique com o botão direito do mouse em Novo arquivo. widget de pedido dot g é RFC para gerar o componente funcional, vamos criar rapidamente o arquivo CSS correspondente. O que eu faço a seguir é vincular meu componente ao arquivo CSS para que não esqueçamos que, no futuro, insira dot slash dot css. E, por favor, leve roupas. Isso está em letras minúsculas. Linda. Abra rapidamente o GAS inicial e vamos renderizá-lo sobre a. Então, logo após a div de encerramento do className, widget analítico de bate-papo, teremos outro div, atribuiremos a ele um nome de classe de ordem, um widget de membro. Certo? Dentro desta div, vamos renderizar o OBJ mais perto da tag de fechamento automático e, por favor, faremos bem em importá-la na parte superior. Não sei se o código está limpo, então só preciso ampliar. Eu acho que é muito grande. Tudo bem, vamos continuar assim. Salve o quanto antes formate o código com prettier. Bom. Portanto, antes de prosseguir com a verificação no navegador, precisamos estilizar essa div com o nome da classe do pedido e widget do membro, home sss dot. E aqui vamos exibir o flex. Dê uma margem de 30 pixels e osso. Ao salvar, confira o navegador. Agora, na ordem em que fizemos o componente, vamos começar a trabalhar nele. Terminamos com a casa, então feche-a e prossiga com o pedido do widget dot js. Vamos dar rapidamente a esse div um nome de classe desse contêiner, certo? Onde está o contêiner do pedido, teremos uma etiqueta de hash para exibir o título. Então, primeiro, vamos dar a ela um nome de classe ou outro título. Então vou fazer a última transação. Quando você salva e verifica o navegador. Aqui, não é? Certo? Estamos nesta divisão. Também teremos uma mesa. Dê à tabela um nome de classe da tabela de pedidos. Então, certo, estamos na mesa. Vamos ter o papel da mesa, que é o TR. Dê a ele um nome de classe da ordem t ter o cérebro direito. Tr. Vamos ter o cabeçalho da tabela. fornece o nome da classe da ordem t para esse outro cabeçalho da tabela. Então, estamos no HTML interno. Vamos fazer o cliente, bem, destacá-lo e duplicá-lo cinco vezes. Aqui vamos mudar isso para isso. Então, basicamente, estamos apenas trabalhando no cabeçalho da tabela. Curso de amor. Quando terminarmos, vou te mostrar no navegador. Quando você salva no navegador. Neles, você pode ver os dados, o produto, a quantidade, a localização ou o status do cliente ? Opa. Gente, precisam ser cavaleiros do status de saída gramatical. Portanto, o próximo passo é criar os dados da tabela. Tudo bem, para que possamos sentir a mesa com alguns detalhes. Exatamente como parecia assim. Aqui está o cabeçalho da tabela e esses são os dados da tabela. Certo, estamos na etiqueta TR de encerramento. Vamos ter outro T, R. E isso será para os detalhes da tabela. Dê a ele um nome de classe da ordem t, r. E então, logo dentro, teremos um Td, que são os dados da tabela. Forneça o nome da classe Ou o IMD do usuário como RC porque queremos exibir a imagem do produto. Portanto, antes de prosseguirmos com o código, precisamos importar as imagens do Comando B para abrir o Explorer e depois abrir o público. Agora temos que minimizar o código VS. Execute dois materiais do painel. Temos as imagens que vamos usar neste curso. Arraste e solte onde eles provavelmente quiserem maximizar. Abra as imagens. Aqui temos a imagem dos membros, que é a imagem que vamos usar para exibir na tabela de membros. E aqui temos o produto IMG, que são as imagens do produto, por exemplo, temos o fone de ouvido. Eu sei que você entende essa cama. Feche isso. E então SRC é igual a quatro. Temos que referenciar as imagens. Produtos Slash, fone de ouvido IMG Slash. fone de ouvido é uma das imagens do produto que temos no armário com uma etiqueta de fechamento automático e, em seguida, a saída é a alternativa. Então, se essa imagem não carregar, vamos resolver problemas com a internet. Então, se essa imagem não aparecer no navegador, a alternativa, que é esse cara aqui, será exibida. E vamos dar a ele um nome de classe de IMG, simples assim, salve e vamos dar uma olhada. Aqui está o pessoal perfeito. Tudo limpo, mas não tão limpo quanto o esperado. Não trabalhei na imagem. Agora, vamos trabalhar nos demais detalhes. Aqui vamos ter outro td. Dê a ele um nome de classe de O'Donnell. Logo após a etiqueta de fechamento do T D, teremos outro td. Dê a ele um nome de classe de ordem d. Então, aqui teremos 4 de janeiro de 2023. Essa é apenas uma data imaginária, então você pode decidir mudar o título e duplicá-lo quatro vezes. Nome antigo, valor ou esse local ou status. Então, vamos supor que esse cara esteja fazendo um pedido da USC e, em seguida, o status como, como você está gastando. Então, agora teremos pedidos com status diferente. Portanto, teremos a permanência única de gastos recusada e aprovada. Então, para implementar essa funcionalidade, deixe-me mostrar. Ok, deixe-me fazer isso aqui. Eu vou acabar com os gastos por enquanto. Em seguida, vou renderizar uma função chamada boating, dar a ela um tipo aprovado mais próximo com a tag de fechamento automático. E então, quando você salva e faz o check-out no navegador, vai dizer que a navegação não está definida. Aqui, não é? Então, vá até o canto superior direito, estamos no componente, vamos definir a equipe de policiais náuticos. Defina-o para nossa função. Dentro da função, vamos pegar o tipo. E essa função retornará uma parte da interface do usuário. Nesse caso, vamos fazer um passeio de barco. Vamos dar ao botão um nome de classe de. Isso será encerrado. Suporte Macaulay. Vamos dar a ele um nome de classe de votação. Certo? Estamos no HTML interno. Vamos exibir o tipo assim. Então, com isso, poderemos especificar um status diferente para pedidos diferentes. Tudo bem, então poderemos ter um pedido pendente, aprovado em nosso console. Com certeza. Eles aparecerão em cores diferentes. Por exemplo, se o pedido for aprovado, vamos comercializar com verde. E se for recusado ou cancelado, vamos comercializar com vermelho. E se estiver pendente, vamos comercializar com amarelo. Então, isso nos ajudará a lidar com esse problema. Claro, isso não é um problema. Salve e confira o navegador. Ids. Ela está certa. Tudo apareceu conforme o esperado. E aqui está a votação aprovada. Portanto, o próximo passo é duplicar o TRO de um nome de classe da ordem TRO. Você vai destacar a partir das linhas 22, linhas 30. E então eu quero duplicá-lo cinco vezes. Mas, do seu lado, você pode decidir duplicá-lo quantas vezes quiser. Eu não fiz isso. Agora. Eu só vou mudar os dados, mas não acho que isso seja necessário. Então, vou me concentrar apenas no botão Aprovar para que possamos fazer o mesmo pedido. O resto, mas sim. Ok. Deixe-me fazer algo por você. Eu não quero que você se confunda. Aqui. Vamos fazer referência à capa e ela é JPEG. Salve e finalize a compra no navegador. Você pode ver aqui que eu só vou vestir uma jaqueta. Aqui. Eu vou fazer Gucci. Então eu acho que isso deveria ter sido o nome da marca, mas é legal. Você pode alterar os dados. Vamos supor que esse cara esteja fazendo um pedido do Reino Unido, então o status será cancelado. Por exemplo, e esse outro cara, vamos mudar o status deles. Isso vai ficar pendente. Alterações em pendentes. Vamos mudar isso para cancelar. Eu só quero que você veja como isso funciona. Então, no final, você pode realmente alterar todos esses detalhes, ok, você pode preenchê-los com algo diferente. E já temos as imagens do produto para que possamos abastecer os CROs com as imagens de minha escolha. Vamos deixar assim para que a palestra não dure mais do que isso quando você salvar o projeto. Bom. Então, aqui está, isso é o que alcançamos nesta palestra. E posso garantir que na próxima palestra, quando começarmos a estilizar esse componente, é claro, você já sabe como seria o final esperado. Isso é tudo por enquanto. Nos vemos na próxima palestra. 118. Widget de ordem de estilo 116: Certo, então vamos começar a estilizar esse componente. Então você só precisa dividir sua tela novamente. Traga o arquivo CSS para a direita e depois o componente que saiu. Vamos começar com o contêiner de pedidos. Aqui está o destaque e o texto. Venha aqui, pontinho ou o recipiente. E então o fluxo será preencher 20 pixels. Então, se o fluxo for dois, significa que serão necessárias duas unidades da tela. A sombra da caixa. Eu já tenho a sombra de caixa que estou usando. Então eu só tenho que vir aqui, destacar e copiar. E é claro que você já sabe como obter a sombra da caixa. Economize e vamos ver o que temos. Ok, bom. Você pode notar alguma coisa? Dê uma olhada. Perfeito. O ninho é o título do pedido. Realizado. O tamanho é de 20 pixels. A fonte, margem de trigo, certo? 20 pixels é bom. Aqui está. Estilize a tabela de pedidos. A largura é de 100 por cento. Espaçamento entre bordas. 20 pixels. Salve e finalize a compra no navegador. Bom. Está gradualmente tomando forma. O usuário do pedido. Vamos ter uma tela flexível, alinhar o centro dos itens. Portanto, o ninho é da ordem T, H, que é o cabeçalho da tabela de pedidos. Acho que está no topo aqui. Teste o alinhamento. Alinhe o texto à esquerda. Você pode ver que tudo está em bom estado agora, mas você não conseguirá perceber isso simplesmente porque a imagem está ocupando um grande número de espadas. Então, quando reduzirmos o tamanho da imagem, ela ficará perfeitamente bem. O próximo passo é estilizar a imagem. Qual é o nome da classe da imagem? Aqui está o ponto ou o IMG? A largura é de cinco pixels. A altura terá a mesma altura e largura. Seth? Você pode ver? Agora parece perfeitamente bom, conforme o esperado. Queremos especificar o raio da borda. Para ser um pouco curvilíneo. Cinco pixels nos ajudarão a fazer isso. Ao conferir o navegador, talvez você não consiga perceber isso simplesmente porque essa imagem específica é PNG. A imagem mostra você, você pode ver isso? As bordas são curvas. Então, para que fique bem, vou especificar a cor da borda. Vamos ter um pixel, vermelho sólido. Você pode mudar o Collado e ser criativo. Você pode ver agora o ajuste do objeto , o centro, a margem, certo? Dez pixels, salve. Linda. Você pode ver? Vamos continuar. A linha é estilizar a ordem dos pontos de barco. Deixa eu te mostrar esse cara aqui. O acolchoamento, cinco pixels. Não queremos nenhuma fronteira, raio de fronteira. Vamos fazer com que seja de cinco pixels. Salvar o ninho e a linha é aplicar cores de acordo com o status. Então, aqui aprovamos o console pendente. Portanto, se for aprovado, queremos que esse botão seja exibido em verde. Os riscos são cancelados. Não precisamos mostrar vermelho. E se estiver gastando, queremos que mostre uma espécie de cor amarela. Então, vamos fazer isso rapidamente. Pontos. Esse cara aqui, vamos copiar e colar, aprovado. Deixe-me te mostrar aqui. É do tipo de botão? Então, vamos ter a cor de fundo E5, FA, F2. E a cor da fonte vai ser meio verde. Sim, salve no navegador, recarregue. O status não é aplicado. O que aconteceu? Isso está correto. Consiste no fundo. Isso está realmente correto. Ok pessoal, olhem, vai haver espaço aqui assim. Ok. Se você escreveu assim, não vai funcionar. Então você só precisa espaçá-lo e depois Salvar. Vamos dar uma olhada no navegador agora. Linda, trabalhada. Consegue enxergar bem? Vamos aplicar essas toalhas ao resto do status. Então, eu vou copiar esse cara assim. Aqui, cole. Em seguida, vamos fazer ponto pendente. Certifique-se sempre de verificar se a grafia do nome do seu cluster está correta. Foi exatamente por isso que eu dividi a tela. Então, podemos dar uma olhada. Pendente. Tudo bem. Então, quando estiver pendente, a cor de fundo será na forma de amarelo, 12, 34ff f, f, e verá que a cor da fonte será de 32 por cento. Certifique-se de encerrá-lo e, em seguida, colocar parênteses, salve-o no navegador da forma esperada. Por fim, vamos implementar os estilos do console de navegação, conselho de navegação. Ou você pode ver o declínio no final. Não há absolutamente nada de errado. Eu te disse que é preciso ser criativo do seu lado. Ok? Tudo bem, vamos dar uma cor de fundo. Também vamos usar esse formato aqui. Desta vez, 35584. Isso nos dará a cor atlética que desejamos. A cor da fonte será D9 57. Salve no navegador. Eles são esses, dá para ver que tudo aparece conforme o esperado. Veja, parece extremamente bom. Isso é profissional. O aplicativo está extremamente bonito. Geralmente, esse é o nosso n. Nesta palestra, começaremos com o widget de membros. Te vejo então. 119. Componente de widget de membro: Nesta palestra, começaremos a criar os membros que fizemos. Aqui estão as técnicas? O widget de pedidos tem o dobro do tamanho do widget de membros. E conseguimos isso fazendo o flex two, o que significa que esse cara aqui tem duas unidades. Então, em atrizes significa que tem o dobro do tamanho desse cara aqui. Então, na palestra anterior, houve um erro que eu cometi. Eu esperava que você corrigisse esse erro. Então, abra o CSS doméstico. Isso deveria ser flexível. E então temos que flexionar duas, o que significa que está ocupando duas unidades da tela. Feito isso, vamos encerrá-lo. Comando B para abrir o Explorer. E logo, dentro do diretório de membros, vamos criar um novo componente chamado members. We jet dot g é genérico, o componente funcional. E, claro, também precisamos criar os membros do arquivo CSS correspondente (widget dot CSS). Tudo bem, então, rapidamente, vamos vincular o arquivo CSS aos membros da barra de pontos do componente. Nós usamos Jet Dot CSS. Aqui, satisfeito. Será em letras minúsculas, exceto por ter três componentes casa, e vamos renderizar os membros. Nós fizemos. Então, logo abaixo dos widgets de pedidos, vamos renderizar os membros. Aproximamos a tag de fechamento automático e sempre nos certificamos de importá-la na parte superior. Salve e finalize a compra no navegador. Você pode ver agora que temos os membros que tínhamos aqui. Vamos começar a criar o widget de membros. Abra os membros do E-jet. Então, agora, eu vou limpar isso. Vamos dar a esse div um nome de classe dos membros. Fizemos o contêiner, certo? Dentro da div. Vamos criar um espaço, dê a ele um nome de classe dos membros aos quais acabamos de nos relacionar. Dentro do HTML interno. Vou fazer membros recém-ingressados. Aqui vamos ter uma etiqueta UL, certo? Estamos na URL com o nome da classe dos membros com pelo menos caras. Eu quero ser um pouco mais rápido aqui nesta palestra. Então você só precisa seguir meu ritmo. E vermelho, onde está a etiqueta UL, teremos uma etiqueta LI. Dê a ele um nome de classe de membros, item da lista de widgets. Basta copiar, colar e fazer o item na lista. Vamos ter uma tag IMG, com uma barra de imagens iguais a SRC. Então, deixe-me mostrar algo que vai para o público. Aqui estão as imagens e aqui está o diretório de membros onde temos todos os membros, barra de imagem Members slash dc dot JPG. Feche-o e resolva um problema de Internet. Claro, você deve saber o que está ao ar livre. Dê a esse cluster de destino do IMD o nome do qual está no IMG, mais próximo da tag de fechamento automático. Vamos ver o que acontece na tela. Linda. Agora vamos ter um div, dê a ele um nome de classe de usuários do widget membro. Uma coisa que eu quero que você imite de mim é como eu passo o tempo escrevendo o nome da minha turma. Sempre me certifico de escrevê-lo na íntegra para determinar a intenção do DV. Então, quando outro desenvolvedor pega meu código, ele se torna muito fácil de ler e entender. Então, nesse caso, eles não terão problemas em definir paradas em meu código. Acho que você entendeu. Agora. Retro e D, se quisermos ter um span, atribua a ele um nome de classe ou nome de usuário do widget de membro. Eles veem Dominic se espalhar novamente. Dê a ele um nome de classe do widget de membro. Use um título. Ela é uma reativa em um valor nulo, mas está certa. Então, do lado de fora dessa div com o nome da classe dos membros que recebemos, vamos passear de barco. Dê a ele o nome da classe dos membros, os direitos de voto do widget estavam no barco. Queremos exibir um ícone. Então, o que vou fazer aqui é importar a visibilidade da interface do material. Então, aqui temos que renderizar cluster de visibilidade tanto da tag de fechamento automático quanto da parte interna. Também precisamos dar a ele um nome de classe para que sejam membros. Nós fizemos um ícone. E o teste será exibido. Pode ser lindo. Vamos salvar e marcar no navegador. Tudo bem, então aqui está o barco em que está o ícone. E quando começarmos a estilizar, faremos com que fique bonito. Portanto, não é necessário que a próxima fila seja duplicá-la quantas vezes quiser. Feito isso, você também pode alterar a imagem do usuário, o título e o resto deles. Ok, então eu vou fazer um para você e então você pode fazer o resto. Então aqui é DC Dominic. Vou fazer aqui. Eles também veem Victor. Ela é reativa. E deixe-me abrir as imagens e ver se consigo obter uma imagem muito bonita. Lady dot PNG. Então, aqui eu vou fazer o Lady Dot PNG Portable Network Graphics. Espero que você saiba que, ao salvar um, veja o que acontece. Ok, agora temos essa imagem aqui. Tudo bem, então, basicamente, isso é tudo por enquanto e, por favor, certifique-se de alterar as imagens e o título. Portanto, não há necessidade de eu fazer isso nesta palestra, porque quando eu fizer isso, a palestra vai demorar muito. Há um erro tipográfico aqui que eu não gosto. Então, isso deve ser escrito. Não gosto de cometer erros no meu trabalho. Eu gosto disso perfeito e arrumado. Tudo bem. Então, isso é tudo por enquanto. E na próxima palestra, começaremos a estilizar esse componente. Te vejo então. 120. 118 Styling O Widget de membro: Nesta palestra, começaremos a estilizar o componente de membros. Porque, por enquanto, parece que tudo está fora de forma. Simplesmente porque essa imagem está muito baixa. Ele está ocupando uma grande parte da tela. Então, vamos começar com a imagem. Claro, você deve saber como fazer isso. Pegue os membros que fizemos para a direita e, em seguida, leve os componentes de seus membros para a esquerda. Vamos começar com a imagem. Qual é o nome da classe da imagem? Img. O nome da classe é widget IMG. Copiar. Venha aqui. A largura é de 40 pixels, a altura de 40 pixels. Em seguida, especificaremos o raio da borda, 50 por cento, que será a metade da largura e metade da altura. E então ele vai dar um laço circular. Quando você salva e marca no navegador. E você vê agora que as coisas estão gradualmente tomando forma. Ok, vamos fazer com que seja alimentado por objetos. Acabou. Agora podemos começar a estilizar o resto da aula. Então, aqui, primeiro temos os membros que fizemos de contêiner. Por favor, certifique-se de que ele venha no topo. O fluxo será um. Então, isso vai levar uma unidade de toda essa porção. E, claro, você sabe, isso é pegar duas unidades, então isso é duas vezes maior do que isso, e então essa será uma unidade. Estou explicando isso de forma simples para que todos entendam bem o suficiente. Quando você salva e confere no navegador, você pode ver um lindo preenchimento. O preenchimento será de dez pixels. Margem esquerda. Vamos fazer com que seja de 20 pixels. Você salva e finaliza a compra no navegador. Bom. Então, a próxima linha de mandato são os membros, nós simplesmente morremos em casa. Desculpe, vamos fazer isso aqui. O tamanho da fonte, 20 pixels, largura da fonte, vamos fazer com que ela seja 100. E, claro, temos que especificar a sombra da caixa desse contêiner. Eu te disse que tenho uma sombra de caixa de fantasias que uso no meu projeto. Então aqui está. Tudo bem, ótimo. O ninho são os membros com pelo menos a margem zero. Estofamento. O estilo da lista. Tenho certeza de qual é o estilo da lista. Você vê esse ponto aqui. Não sei se você consegue ver claramente esses pontos, esses pontos, todos esses pontos que indicam esses itens da lista. Então, queremos retirá-lo e faremos isso quando você salvar e finalizar a compra no navegador. Aumente um pouco o zoom. Você pode ver que ele sumiu. What Nest, eu acho que são os membros com pelo menos um item. Vamos ter uma tela flexível, alinhar os itens ao centro, justificar o conteúdo, espaço entre os itens. Então, vamos fazer um espaço entre salvar. E assim você pode ver a diferença. Você pode ver? Então, flexionamos e depois criamos esse espaço intermediário. Então, ao remover os flocos e salvar o projeto, veja onde você vai ter. Agora eu acho que você também entende a utilidade do fluxo. Quando você retira o espaço entre eles, deixe-me mostrar o que é bom. Eu te mostro esses. Você pode ver agora que tudo está agrupado. Dê uma olhada. Você vê que agora, quando você retira o conteúdo que justifica ser um espaço entre eles, isso criará um espaço intermediário. Todos esses duros. Acho que estou fazendo o meu melhor para que você entenda o CSS, independentemente de, se estivermos reagindo, margem da esquerda para a direita ser de muitos pixels. A parte inferior tem 20 pixels. Linda. Tudo bem, estamos quase terminando com o estilo. O melhor são os membros desse usuário. Vamos fazer com que exiba direção flexível, flexível. Queremos isso de cima para baixo. Então, eu vou fazer cólon. Agora você pode ver que temos o nome e depois temos o título do trabalho. Então, antigamente, eles eram todos escritos na mesma linha. Deixe-me mostrar quando eu retiro a direção flexível para ser uma coluna. Você pode ver agora o eu na mesma linha? E então, quando eu flexionar a direção para a coluna, vou começar de cima para baixo. Dê uma olhada. Os próximos na fila são os membros. Recebemos nome de usuário. Só precisamos especificar a fonte wheat. Vamos fazer com que veja 100. Os membros, nós usamos um título. O tweet da fonte é 300. Portanto, o melhor é o botão do widget de membros. Esse botão está aqui. Queremos fazer com que fique bonita, em um minuto, pessoal, antes de continuar, eu tenho que cortar essa imagem, chegar a x. Temos que colocá-la logo após os membros com pelo menos o item aqui. Assim. Estou tentando resolver isso. Então, é claro que eu já te disse isso várias vezes. Portanto, o melhor é a votação do widget dos membros. Membros, nós andamos de barco. Vamos fazer com que ele exiba a flexibilidade. Vamos alinhar os itens. Centro. A fronteira. Não queremos nenhuma borda ao redor do corpo. Mas queremos especificar o raio da borda para que fique um pouco curvilíneo. D é dez pixels, preenchimento, sete pixels, dez pixels aqui. Portanto, a cor do plano de fundo e a cor da fonte serão cinza. O ponteiro do cursor. Por fim, vamos estilizar o membro. Fizemos um ícone, que é esse ícone aqui que aparece dentro do corpo. O tamanho da fonte é pixels do sistema. Margem direita. Cinco pixels. Quando você economiza. E vamos ver o resultado final. Você pode ver que tudo parece perfeitamente bem, conforme o esperado? Então, terminamos com a página inicial. E com certeza, isso é extremamente bonito. Isso é de alto nível. Eu adoro isso. Tudo bem, então isso é tudo por enquanto. Na próxima palestra, começaremos a especificar nossas rotas. Portanto, quando você clica no usuário, ele deve levá-lo para os EUA como empresas. Quando você clica nos produtos, você também o levará à página do produto ou ao componente de três produtos. Ok. Então, se você quiser mudar o nome e o título dessas coisas aqui, você pode fazer isso do seu jeito. Por enquanto. Decadência. 121. 119 implementando as rotas: Em um cenário real, um aplicativo como esse deve ser capaz de redirecioná-lo para outro componente quando o link for cortado, certo? Qual é a navegação lateral quando clicamos em usos, o aplicativo também deve ser capaz de ler diretores para reutilizar como página. Quando clicamos em produtos, ele deve ser capaz de nos redirecionar para a página do produto. Portanto, para implementar essa funcionalidade, precisamos usar uma biblioteca externa chamada React Router. Não acesse rapidamente o react router.com. E aqui temos a documentação. E, claro, no seu tempo livre, você pode decidir ler a documentação para ter uma compreensão completa do roteador React. Vamos prosseguir rapidamente. Vá para o VS Code. Para prosseguir. Primeiro, temos que instalar o roteador React, certo? Estamos no terminal. Vou fazer o Controle C para parar o neurônio atual no servidor e escrever nele o diretório do cliente. Vou fazer o gerenciador de pacotes Node, install, react, dash, router, dash dome. Mais simples que apertar a tecla Enter para disparar. A instalação está em andamento. Cúpula do roteador React instalada, com sucesso. Deixe-me mostrar rapidamente o Comando P e, em seguida, procure o arquivo package.json. E aqui está na internet, cisteína. Feche isso. A próxima linha do termo é criar os componentes que queremos redirecionar para saber se o link foi clicado. Então, abra as páginas dos componentes. E então, logo nos EUA, pelo menos vamos criar um novo componente chamado lista de usuários dot j para gerar os componentes funcionais. Vamos criar rapidamente o arquivo CSS correspondente. Bom. Feche o Explorer. Abra o aplicativo. G é perfeito. Então, o próximo da fila é importar o roteador do navegador, rotas, rotas do React, roteador, dune, sands fake, certo? Deixe-me te mostrar. Vamos importar o roteador do navegador. Rotas, rotas mais calmas do React, roteador, trajeto, não. É tão simples quanto isso. Não importei todos esses recursos do reator, pois o melhor é encerrar todo o aplicativo com o roteador do navegador. Então, só precisamos limpar esse div com o nome da classe do aplicativo. Não é absolutamente necessário. Tudo bem, o aplicativo está reclamando simplesmente porque o elemento GSS precisa ser agrupado em um nó principal. E agora o nó principal será o roteador do navegador. Destaques. Mantenha pressionada a tecla de opção no teclado. Toque na tecla de seta para cima para movê-la para dentro. Se essa opção não funcionar para você, basta destacar o comando X para recortar e colá-lo no roteador do navegador. É tão simples quanto isso. Vamos implementar rapidamente as rotas. Venha aqui. Eu vou fazer rotas que compreendem todas as rotas que teremos neste curso. Então, estamos em vitrines. Teremos nossas rotas individuais. Então eu vou fazer rotas, especificar o caminho e o caminho. Só precisamos indicar uma barra para frente. Portanto, isso é um indicador para o componente doméstico. Então, tendo feito isso, nós realmente temos que especificar o componente de preocupação. E então eu vou fazer a aquisição de elementos, pegar esse cara aqui e colar aqui. Certifique-se de excluir o espaço intermediário. Assim, tudo legal. E também queremos criar uma rota para a página ou componente da lista do usuário, por assim dizer. Então, vamos ter uma rota até aqui, certo? Estamos na rota. Vamos especificar o que foi dito acima. Será uma lista de usuários reduzida. Em seguida, vamos especificar os elementos. Os elementos neste caso se referem aos componentes de preocupação. E agora vamos ter. Pelo menos para o usuário, mais perto da tag de fechamento automático. E, por favor, certifique-se de importá-lo na parte superior. Assim como o formato, o código com mais bonito parece limpo. Agora vamos testá-lo. Destaques. Vou copiar tudo diretamente entre aspas e no navegador. Portanto, teremos no mínimo 3.000 usuários de slash localhost. Quando você pressiona a tecla Enter. Diz que esse lado não pode ser alcançado de forma alguma. É simplesmente porque precisamos novamente iniciar o servidor. Venha aqui. Tudo bem, estamos no terminal integrado VSCode. Verifique se você está no diretório do cliente. E então eu vou fazer o Node Package Manager, iniciar o servidor assim. E no navegador. Você pode ver agora que temos a página do usuário. Linda. No entanto, eles estavam trabalhando conforme o esperado. Mas, por enquanto, quando você clica em Usuários, nada acontece. Vamos implementá-lo rapidamente. Voltar ao VS Code. Abra o lado superior do Node.js, role para baixo. Ok, então esta é a casa aqui. Temos que encerrar esse item da lista, certo? Estamos no link. Então, vamos especificar o link aqui. E eu vou fazer aqui, link para a página inicial. Então, também, especifique a barra que serve como ponteiro para a página inicial. Por padrão, é assim que especificamos a página inicial. Em seguida, destaques. Mova-o novamente para a direita no link. Ok, aqui está o usuário. Especifique o link. Hum, por favor, certifique-se de importar o link do roteador React fazendo isso aqui? Ok, então aqui vamos fazer um link para. Portanto, precisamos especificar a rota que nos levará à página do usuário. Claro, já fizemos isso antes. Então, só precisamos voltar para o app.js e copiá-lo assim. Certifique-se de que isso seja exatamente o mesmo com o que você está almejando aqui. Cole-o assim e, em seguida, destaque o item da lista. Mova-o diretamente no link. Vamos formatar o código com mais bonito. Parece bom. Tudo bem, salve o projeto no navegador. Então, quando clico na página inicial, esgoto a página inicial, quando clico em Usuários, nos leva à reutilização ou velocidade, ou você usa como componente, por assim dizer. Portanto, o aplicativo está funcionando perfeitamente, conforme o esperado. Na próxima palestra, começaremos a implementar a página do usuário. Isso é tudo por enquanto. Nos vemos na próxima palestra. 122. Tabela de lista de usuários: Nesta palestra, vamos implementar o componente de lista de usuários. Basicamente, teremos uma tabela mostrando os detalhes do usuário e seus pagamentos. Portanto, essa funcionalidade será implementada com a tabela de dados do material UI. Acesse rapidamente o MU i.com e pesquise uma tabela. Aqui, é mei.com? Certo? Um na caixa de pesquisa. E vamos nos arrumar para a mesa aqui. Temos várias tabelas que podem ser usadas para criar vários aplicativos. Temos aqui a tabela básica, os dados da tabela. Temos a mesa densa e muito mais. Então, certo? Neste curso, usaremos os dados da tabela. Portanto, você tem a opção de verificar um usuário individual também selecionar todos os usuários. Você pode classificar os itens aqui. Podemos optar por uma classificação não solicitada por ordem decrescente. Você pode filtrar, ocultar ou mostrar coulombs. Portanto, essa tabela é, na verdade a melhor para o aplicativo que estamos criando. Então, vamos usar essa tabela. Role para baixo. Aqui mesmo. Você verá esse ícone de tag. Clique para abrir o código. Para implementar essa tabela. Primeiro, precisamos instalar essa biblioteca. Destaque tudo diretamente entre aspas simples e depois copie. Volte para o VS Code, abra o terminal integrado, certo? Já o abrimos. Então, vou parar o servidor atualmente em execução. E então eu vou fazer o comando V do npm install para colar o que copiamos do site do MUL, apertar a tecla Enter para que ele inicie. Então, com isso, poderemos fazer uso da tabela de dados instalada com sucesso. Então, aqui temos as colunas e as colunas serão salvas como cabeçalho da tabela, certo? Isso vai nos salvar da forma mais madura possível, como nome, sobrenome, idade, nome completo. Então, a coluna aqui é responsável por isso. Então, aqui temos a linha e a linha será salva como os dados que serão usados para preencher a tabela. E quando você observar a tabela com cuidado, você definitivamente perceberá que é verdade. Ok, então aqui temos o sobrenome para ser neve. O primeiro nome é John e depois 35 anos. Venha aqui. Lembre-se de que resolvemos esse alarme. Ok, então aqui temos John Snow como sobrenome. O primeiro nome é John, o sobrenome é neve. A idade é 35 anos. Então, todas essas coisas aqui, vamos salvar como dados para preencher a tabela. Aqui mesmo. Vamos renderizar a grade de dados. Vamos definir regras como linhas, que é esse cara. E então vamos definir colunas como colunas. Esse cara aqui. E aqui temos a opção de linhas por tom. Aqui está definido como cinco. Então é por isso que você vai ter 12345. Então, aparecerão cinco nessa tabela. Mas você pode decidir aumentar a opção de marionete ROS para qualquer número de sua escolha. E aqui temos a seleção da caixa de seleção. É tão simples quanto isso. Então, vamos implementar isso diretamente em nosso aplicativo. Volte para o código VS. Vou destacá-los, apagá-los. Vamos dar a esse div um nome de classe. E o nome da classe será lista de usuários. Então, logo no momento do div, vamos renderizar a grade de dados. Mas, por enquanto, basta copiar a coluna Highlight Command C para copiar, vir aqui e colar, voltar também. Temos que copiar esse impulso. Então, destaque-os e limpe-os também. Não precisamos dos destaques das linhas 21 a 22 e eliminá-los. Bom. Volte. Vamos copiar as linhas. E por último, temos que copiar os dados, concorda? melhor colá-lo aqui. Certo, vamos estilizar rapidamente o nome dessa classe. Copiar. Venha aqui. Vou fazer uma lista de usuários de pontos e vamos flexionar. Vamos fazer quatro e ver o que temos a bordo. Abra o terminal e então teremos que começar o projeto. Feito isso, vamos vincular rapidamente. Componente com o arquivo CSS. Então, aqui eu vou fazer o dot slash, user least dots, CSS, Save e finalizar a compra no navegador. As identidades. Consegue ver isso? Linda? Vamos tentar. Eu verifico este item e ele é selecionado. Quando eu procurei. Está funcionando perfeitamente bem. Você vê isso? Olha, amigos, isso é fantástico. Podemos classificar por ordem crescente. Veja, você pode filtrar. Você consegue ver por nome, sobrenome, idade do nome completo? Você pode fazer muita coisa por aqui. Tudo bem, então o próximo na fila é preencher a tabela com nossos dados. Porque esses dados não são relevantes para o aplicativo que estamos criando. Volte para o código VS. Vamos deixar o id, depois a disputa pelo primeiro nome, vamos alterá-lo para nome de usuário. Aqui. Vamos alterá-lo também para usar um nome, dar a ele uma largura de 200. E isso será alterado para e-mail, e aqui estará o e-mail. Ok, vamos fazer com que seja 200, que é a largura. E aqui temos o campo para a era. Vamos mudar a borda para status. Status. Status. Vamos apagar o número. A largura é 90. E aqui temos o campo para o nome completo. Vamos mudar esses dois. Pagamento. Exclua a descrição. Também classificável. Nós vamos limpá-lo. Depois, a largura. Uma vez que esse T é suficiente. Ótimo. Tudo legal, eu adoro isso. Então, aninhe outro campo extra. Eu só tenho que destacar, duplicar. Vou agir quando esse T for suficiente. Bom. Feito isso, ao salvar e finalizar a compra no navegador, você vê que agora temos o cabeçalho como nome de usuário, e-mail, status, pagamento e ação. Então, vamos implementar a regra use as, que salvará como os dados para preencher a tabela. Então, vou destacar as linhas 32 a 39. Limpe-o. A ideia é uma delas. Vamos deletar o sobrenome, e esse será o nome de usuário. Certifique-se de que seja exatamente o mesmo com o celoma. Então, o nome de usuário que vou usar é Victor Dominic. Então, aqui vamos incluir o avatar. E o avatar estará aqui. Vou apenas copiar o URL da imagem, mas quero usar e, com certeza, essa é apenas uma imagem aleatória que obtive da Internet. Ok, vamos limpar isso. Aqui. Vamos receber um e-mail. E o status do e-mail ficará ainda mais calmo. O pagamento. Isso é tudo. Vamos formatar o código com mais bonito. E quando você formatar o código, ele ficará exatamente assim. Então, o que vou fazer agora é destacar e duplicar quantas vezes quiser. Então, aqui, você deve alterar o nome de usuário, o id e o resto dos detalhes. Mas para mim, só estou interessado em mudar a identidade certo? Portanto, o nome de usuário aqui pode ser Dominic Daisy. O avatar pode ser qualquer imagem aleatória na Internet. O e-mail, você pode alterar o e-mail para outra coisa. Você pode fazer com que eles estejam ativos ou não ativos. Você pode especificar um valor diferente aqui. Então, quando você salva e verifica o navegador, os IDs, você pode ver que tudo parece estar funcionando perfeitamente bem. Mas ao observar a tela, você perceberá que a ação aqui está vazia e, em seguida, teme que isso seja feito no futuro. Então, aqui vamos ter um botão para editar, botão para excluir. Estamos indo para lá em breve. Tudo bem, então isso é tudo por enquanto. E na próxima palestra, vamos refatorar o código. Então, ao refatorar o código, quero dizer simplesmente que teremos os dados em um módulo separado. O código parece um pouco feio porque temos os detalhes aqui, e isso não é nada legal. Então, na próxima aula, vamos separar os dados em um módulo diferente. Nos vemos na próxima palestra. 123. 121 Refactoring: Nesta palestra, vamos refatorar o código. Ao refatorar, quero dizer simplesmente que vamos separar os dados dos componentes da interface do usuário. Então, vá rapidamente para o código VS. E deixe-me mostrar como fazer a abertura do Explorer. E certo, não seria o SRC. Vamos criar um novo pacote chamado arquivo de dados, certo? Estamos no arquivo de dados. Vamos criar um novo arquivo chamado data do usuário. O ponto j está aqui. Teremos os dados do usuário. Então, vou fazer um spot const, usar como dados, configurá-lo como uma matriz vazia e abri-lo. Então, certo, estamos nessa matriz, vamos colar as linhas. Então, Heron para usar como lista. Deixe-me mostrar aqui as linhas. Então, vou destacar as linhas 208290, cortá-la. Só temos que limpar isso da heroína para usar esses dados. Vou colar isso tão simples quanto isso. Agora, vamos usar o mínimo de confusão. Vamos importar os dados dos usuários do arquivo de dados e cortar os dados do usuário. Então, aqui, as linhas serão iguais aos dados dos usuários. Quando você salva e finaliza a compra no navegador. Aqui, tudo está funcionando perfeitamente , conforme o esperado. Isso é tudo por enquanto. E na próxima palestra, veremos como adicionar dados personalizados. Te vejo então. 124. 122 Adicionando dados personalizados: Nesta palestra, vamos personalizar a tabela. Tudo bem, então veremos como adicionar nosso próprio item personalizado, certo? Estamos na mesa. Então, rapidamente, deixe-me mostrar como fazer isso com o código VS. Então, aqui, eu vou ficar mais calmo. Vamos adicionar nossos campos e dados personalizados. E então poderemos fazer isso com o método render cell. O método render permite que você retorne um React Node em vez de uma string. Então, aqui eu vou fazer uma coluna de célula aleatória para abrir e fechar parênteses. E vamos usar um parâmetro. Params, defina-os de acordo com nossa função e direitos internos, retornaremos um elemento de reação, que neste caso div, com o nome da classe do usuário, certo? Estamos nesta divisão, vamos ter uma imagem. Agora. A imagem será igual a params dot rho dot avatar image show you command P, e então vamos usar nossos dados, ponto g is, então aqui está o avatar. Tudo bem, então queremos recuperar essa imagem e exibi-la com a tabela, é tão simples quanto isso. Venha aqui. Alternativa aqui, vamos fazer conexão com a Internet. Aproxime-se com a etiqueta de fechamento automático, diretamente no interior. Vamos fazer o nome de usuário params dot rho dot seven, finalizar a compra. O navegador. A ideia é você pode ver que a imagem é extremamente grande, então não pode aparecer corretamente. Vamos estilizar rapidamente a imagem para que ela pareça limpa. Certo? Estamos na lista de usuários. Ok, deixe-me te mostrar. Então, aqui só precisamos copiar o nome da classe AMD. Opa, acho que temos que dar o nome da turma. Sim, vamos fazer isso rapidamente. Forneça o nome da classe do usuário IMG, destaque e copie. Venha aqui. Usuário Dot IMG. Vamos dar a ele uma largura de 40 pixels, altura de 40 pixels e, em seguida, raio de borda. Vai ser de 50 por cento. Margem, certo? Nove pixels. O objeto se encaixa. Vamos torná-lo seguro. Você pode ver que agora temos o perfil, o ninho e a cal são para trabalhar na ação. Então, logo abaixo dessa ação, queremos ter um botão de edição e um botão de exclusão. Portanto, quando clicarmos no botão Editar , precisaremos usar nossa página de perfil, onde também poderemos editar e atualizar usuários. Quando clicamos no botão Excluir, ele excluirá um item específico, certo, para colocar na tabela. Se você optar por excluir esse cara, ele será excluído. Ok. Vamos deletar o item pelo ID, heroína pelo código VS. E vamos implementar as ações. Vamos fazer exatamente a mesma coisa. Então, aqui, é claro, queremos retornar um nó. Então, vamos usar o método de célula de renderização. Recebe um parâmetro. Então, aqui, agora podemos retornar um elemento de reação. Então aqui vamos ter um div, esse div é um nome de classe do contêiner de ação, certo? Estamos nesta divisão, vamos fazer um barco, dar a ele um nome de classe de usuário. Então, diretamente no HTML interno, faremos edições. E aqui teremos o botão Excluir. Mas, nesse caso, usaremos o ícone de exclusão dos ícones na parte superior. E aqui vamos importar, excluir, esboçar. Desse cara aqui. Então, aqui teremos a linha Delete Art mais a queda da tag de fechamento automático. Vamos dar a ele um nome de classe de delete, least, save, a menos que eles sejam chamados de navegador. você pode ver que agora temos o botão Editar entanto, você pode ver que agora temos o botão Editar e excluímos a votação. Não está bonito como esperado. Então, vamos estilizá-lo rapidamente e fazer com que tenha uma aparência melhor. Use todo esse CSS. usuário do Dod edit precisa verificar se a grafia está correta. Ok. Para mim, você pode ver agora aqui que está escrito em caixa de karma e aqui. É exatamente por isso que eu gosto de dividir a tela. Bom. Vamos fazer com que a fronteira seja conhecida. Nós realmente não nos preocupamos. Então, o raio da fronteira. Vamos fazer com que seja de cinco pixels. Estofamento. Cinco pixels, dez pixels. Cor de fundo. Vamos torná-lo azul mais escuro. E a cor da fonte será branca. Margem, certo? A margem direita é de 20 pixels. Quando você salva no navegador. Você pode ver agora que o botão está lindo. Vamos dialisar o ícone de exclusão. Aqui. Vamos ter pontos. Deixe-me copiá-lo diretamente deste lugar para não cometermos erros. A cor será vermelha e a causal. Vamos fazer com que ela esteja segura. Agora, tudo parece clássico. Eu adoro esses. Tudo bem, então há algo que eu quero que você anote. Meu pescoço. Clique em qualquer parte da tabela para que ela seja selecionada. Você vê que é necessário ser preciso. Então, quando eu recarrego a página, queremos que essa difícil seja selecionada somente quando o usuário clica nela, assim. Ok? Portanto, não queremos que esse tipo de coisa aconteça. Não é nada bom. Então, vamos voltar ao código VS e depois usar como lista. Role para baixo. Aqui mesmo. Desabilitaríamos a seleção ao clicar. Recarregar. Ok. Agora você pode ver que quando eu clico aqui, isso não afeta a caixa de bate-papo. Portanto, a única maneira de selecionarmos um item é verificando-o diretamente. Você pode ver que isso precisa ser preciso? A linha Vanessa é implementar a funcionalidade de exclusão. Então, acho que podemos fazer isso na próxima palestra. Te vejo então. 125. 123 Botão de exclusão: Nesta palestra, vamos implementar o botão Excluir. Portanto, quando o usuário clicar na parte inferior Excluir, poderemos excluir um item específico da tabela. Ok, vamos implementá-lo rapidamente. Não precisei usar o VS Code. Bem no topo. Vamos declarar a variável de estado necessária a ser usada. Aqui eu vou fazer const, data, set data. Portanto, o estado inicial serão os dados do usuário. E, por favor, certifique-se de importá-lo usado na parte superior. Aqui. É difícil, certo? Então, agora estamos definindo o estado inicial a ser usado como dados, que são os dados corretos para trazer o arquivo de dados. Nest é definir a função. Nós vamos ter aqui. Consiste em cem cliques, igual, defina-o para sua função. E então, dentro da função, vamos definir dados em pontos de dados algumas vezes. Portanto, temos que examinar a tabela e remover um item específico com base em seu ID. Sim, então vamos fazer isso. Aqui. Vamos pegar um item e eu vou fazer a identificação do ponto do item. Vamos especificar o botão ao clicar, à direita, dentro do esboço de exclusão. Vamos especificar o onclick. Agora. Vamos ligar para o identificador, clique aqui. Na verdade, é bom. Alteramos essa função para lidar com exclusões. Tudo bem, então esse nome é bastante relevante para o propósito para o qual o botão foi criado. Aqui, 200 deletam. Exatamente assim. Então, aqui vamos pegar os parâmetros dot rho dot id. Então, na linha, temos que pegar os dados, que é esse cara aqui. Esse cara aqui está mantendo o estado inicial e o estado inicial acabou sendo usado como dados. É tão simples quanto isso. Então, aqui só precisamos ir até a tabela e excluir um item específico com base em seu ID. E depois disso, também precisamos atualizar a tabela, salvar no navegador. Tudo bem, diz que o ID não está definido. Aqui. Ok, vamos ao nosso código. Estrague tudo, deixe-me te mostrar. Tudo bem, então temos que pegar um ID aqui como parâmetro seguro no poema do navegador. Vamos tentar clicando no botão excluir. Então você só precisa ficar de olho nisso. Quero excluir este item com o ID de cinco. Ok? Veja, o item era a ideia de cinco ter sumido. Agora, deixe-me excluir o item com o ID de dois. Você vê que desapareceu. Quando continuamos excluindo. Você pode ver que tudo está funcionando perfeitamente, conforme o esperado. Mas quando você recarregar a página, teremos os itens. Mas você sabe por quê? É simplesmente porque não o estamos armazenando em algum lugar. Então não se preocupe, isso não é grande coisa. Tudo bem, então agora a próxima fila é implementar o botão Editar. Quando clicamos no botão Editar, queremos passar o ID e os detalhes do usuário para uma nova página. Deixe-me te mostrar rapidamente. Deixe-me formatar o código. Esse é o botão de edição. Certo? Agora. Eu só tenho que especificar a senhora, destacar a navegação e movê-la para dentro. Então, temos que vincular à barra, barra do usuário, assim. Em seguida, params dot rho dot ID. Tudo bem, agora estamos passando o ID para uma nova página. Vamos salvar e ver o que temos no navegador. O link não está definido, ok, vamos importá-lo rapidamente. Importa o link do roteador React para salvar no navegador. Vamos tentar. Você vê isso? Agora, ao observar a banheira, você verá um item com o ID de um. Deixe-me te mostrar novamente. Vou clicar neste item com o ID de cinco. Você pode ver aqui? Agora temos um item com o ID de cinco. Isso é tudo por enquanto. E na próxima palestra, começaremos a criar o perfil do usuário, que é a velocidade do usuário. Te vejo então. 126. Perfil de usuário: Na palestra anterior, implementamos o mínimo do usuário. Tudo bem, então agora, quando eu clico no botão Editar, ele vai transmitir a inflamação com a ideia de uma para uma nova página. Você pode ver aqui que temos o ID de um. E aqui estamos em uma nova página. Volte. Quando eu clico no botão Editar do usuário com o ID de cinco, vou passar o ID para uma nova página, bem como os detalhes do indivíduo. Consegue ver isso? Então é isso que vamos implementar nesta palestra. Por aqui. Talvez você não veja nada diretamente na tela. Então, vamos começar a implementá-lo rapidamente. Vá para o código VS. A primeira coisa que faremos é implementar a rota. Abra o aplicativo Js. Aqui mesmo. Vamos ter a rota, especificar o caminho. Então vai ficar assim. Barra, os usuários cortam a coluna e, em seguida, o ID do usuário. Agora, os elementos serão os componentes reais para os quais queremos redirecionar. Nesse caso, será o perfil do usuário. Certifique-se de importá-lo na parte superior. É tão simples quanto isso. Salvar. E agora vamos continuar usando nosso perfil. Vamos vincular rapidamente o arquivo CSS ao componente. Limpe isso. Vamos dar a esse div um nome de classe do contêiner superior do perfil. Então, dentro dessa div, teremos outra div com o nome da classe do contêiner do título do perfil, logo dentro. Vamos ter uma tag principal, dê a ela um nome de classe ou título de perfil. Agora vamos fazer um passeio de barco. Dê a ele um nome de classe de perfil, adicione direitos de voto no HTML interno que vou criar usuário. Ok? Então, logo após o fechamento da div com o nome da classe do container tidal de perfil, teremos outro div, atribua a ele um nome de classe de container de perfil. E então um div com o nome da classe de profissional, certo? Dentro do div com o nome da classe do perfil. Claro. Vamos ter outro div com o nome da classe Deep show TO logo dentro, vamos ter uma tag IMG, igual a SRC. Vou copiar uma imagem aleatória na Internet e colá-la aqui. Todo esse link está certo, não ajudaria? Aqui, não é? Tudo bem, então vamos rapidamente dar a ele um nome de classe do programa de perfil IMG. Vamos fechá-lo com a etiqueta de fechamento automático. Logo após a imagem. Vamos ter outro div. Dê a ele um nome de classe. Detalhes do perfil, certo? Nos detalhes do perfil, teremos spam. Mostre algumas configurações, coisas como o nome do usuário, o título e o resto. Vamos dar a isso um nome de classe do título do meu perfil. E o título que vou fazer reagir, o desenvolvedor do react. Então, logo após a divisão final da parte superior do sapato de perfil, teremos outra div. Dê a ele um nome de classe de perfil, parte inferior do sapato, assim. Em seguida, teremos um espaço com o nome da turma, perfil e título do programa. Vamos usá-los para exibir os detalhes da conta dessa forma. Vamos ter um div com o nome da classe do perfil Mostrar informações. E por dentro, teremos alguns ícones aqui. Para isso. Vamos até o topo. Importe todos os ícones necessários para o perfil do usuário. Então, logo no topo, vou fazer, em parte, vamos importar a identidade PEM, calendário mais calmo hoje. Localização mais calma, pesquisando, mais calmo, masculino, contorno, coma, Android completo e publicação. Tudo foi importado dos materiais do painel MY Slash Icons. Claro que você sabe que aqui eu vou ter a identidade deles, fechá-la com a etiqueta de fechamento automático. E logo em seguida, vou dar a ele o nome da classe do ícone de exibição de perfil que está no lugar abaixo, aqui, teremos um espaço, assim como o nome da classe do perfil, como título. Tudo bem, então vou salvar o projeto e depois vamos ver o que temos no navegador. Tudo bem, então a imagem está realmente ocupando toda a tela. Então, vamos estilizar rapidamente a imagem. Venha aqui, certo? E o perfil CSS. Ok, primeiro, vamos dialisar o contêiner superior do perfil. Esse cara aqui, Highlight Copy, venha aqui, dots profile top container. E então teremos o flex para ser seis. Ele ocupa essa unidade da tela. E então vamos especificar o preenchimento será em pixels de treinamento. Quando você também confere o navegador, talvez não veja as alterações aqui, mas observará que a barra lateral é, na verdade, menor. Tudo bem, então vamos estilizar rapidamente a imagem para ver mais de perto o que fizemos até agora. Aqui, o nome do cluster da imagem é profissional, IMG. Só precisamos especificar o tamanho da imagem. Eu vou fazer com que a altura seja, vamos fazer com que seja de 40 pixels. Largura. Vamos fazer com que seja de 40 pixels. É simples assim. Quando você salva no navegador, os IDs. Perfeito, então é isso que temos por enquanto. Vamos continuar. Volte para o VS Code. Vamos finalizar o estilo da imagem para que não precisemos usá-la. De novo. Vamos dar a ele um raio de fronteira. 50 por cento. O objeto se encaixa. Vamos fazer com que ele cava, salve e confira no navegador. Ok, perfeito. É bom assim. Mas o que vou fazer agora é mudar a altura e a largura. Vou mudar para 100 fotos. Eu quero que a imagem seja um pouco maior. Nossos direitos, eu estou bem com isso. Assim, você pode manter qualquer tamanho no final. Mas para mim, é exatamente disso que eu gosto. Perfil GAS. Então, aqui, vou destacar essa div com o nome da classe do perfil, mostrar informações das linhas 25 a 27. E então eu vou duplicá-lo quatro vezes. Então, temos que mudar o ícone e os detalhes. Então aqui vai estar o calendário de hoje. E eu estou aqui. Eu só tenho que especificar as ações. Vamos supor que deveria haver um número de telefone. Então eu vou fazer e fazer o que você quiser. Eles serão delineados. Então, vou apenas para do@gmail.com. Aqui teremos localização e pesquisa. Então eu posso ir para Nova York, economizar. E vamos ver o que temos no navegador. Ou escreva. Linda. Vamos passar para a próxima seção. Ok. Então, logo após o encerramento da divisão profissional, deixe-me mostrar que este é o sapato de perfil. Então, logo após a div de encerramento, que fecha na linha 54, se você estiver realmente seguindo minha liderança. Vamos ter outro div, dê a ele um nome de classe de atualização de perfil. Vamos ter um período. Dê um nome de classe, título de atualização de perfil. Vai fazer em D. Agora, vamos ter um formulário. Certo, estamos na forma. Ok, então vamos especificar o nome da classe. Perfil, empresa de atualização. Vamos ter um div aqui, dê a ele um nome de classe de atualização de perfil à esquerda e à direita. Dentro dessa div, teremos outra div. Dê a ele um nome de classe dos itens de atualização do perfil. Em seguida, teremos um nome de perfil de etiqueta. Aqui teremos uma tag de entrada. O tipo é um teste quádruplo, o espaço reservado. Vamos dar a ele um nome de classe de atualização de perfil. Imputos. Feche isso. O que vou fazer agora é destacar o div com o nome da classe do perfil, atualizar o item, destacar tudo dentro e depois duplicá-lo quatro vezes. Bom. Agora vamos mudar esses dois nomes completos. Então. Serão e-mails. Aqui. Podemos fazer o número de telefone. Aqui, podemos resolver isso de forma tão simples quanto isso. Então, logo após a divisão de encerramento da atualização do perfil, deixei este dv aqui. Deixe-me te mostrar novamente. Aqui está a div com o nome da classe de atualização de perfil à esquerda, logo após a div de fechamento, que fecha aqui. Vamos ter outro div com o nome da classe atualização de perfil, certo? Certo, dentro desta div. Vamos dar a ele um nome de classe de perfil, atualização ou upload. Agora vamos ter uma tag IMG, SRC equa. Novamente, vou copiar a mesma foto e colá-la aqui. O link desta imagem aqui, copie e cole. Vamos dar à imagem um nome de classe de atualização de perfil, IMG. Aproxime-se com a etiqueta de fechamento automático. Logo abaixo da imagem, teremos um rótulo. Html é igual a um arquivo. Feche isso. E aqui vamos chamar o ícone Publicar. Feche com a etiqueta de fechamento automático. Vamos dar a ele um nome de classe do ícone de atualização de perfil. Aqui, teremos uma tag de entrada fechada diretamente no tipo de arquivo principal. O id, um qualificador. Vamos dar um pouco de estilo. A tela será conhecida. Então, vamos testá-lo. Salve o navegador. Diz que nenhum não está definido. Volte. Na verdade, isso tem que ser resumido em uma citação, recorte e cole aqui. Salvar. Confira novamente. Linda. Esta imagem parece extremamente grande. Não se preocupe Vamos fazer isso no futuro. Então, ao rolar até o final, você verá esse ícone publicado aqui. Quando você clica nesse ícone, ele abre uma pasta da qual podemos escolher a imagem. Clique nele. Você pode ver agora que pode acessar a imagem diretamente no seu PC. Consola. Role até o topo. Aqui estão os formulários. Agora vamos continuar. Em cada formulário, você definitivamente deve ter uma parte inferior que seria clicada para enviar o formulário. Isso é pelo menos o que vamos implementar agora. Então, logo após essa div de encerramento, vamos formatar rapidamente o código novamente. Logo após essa divisão de encerramento. Vamos fazer um passeio de barco. Vamos dar a ele um nome de classe do botão de atualização de perfil. E aqui vamos fazer atualizações. Então esse será o teste que aparecerá no botão. É tão simples quanto isso. Vamos salvar o código. Volte para o navegador e role até a parte inferior. Aqui está o fundo. Você vê que quando eu clico no botão, o aplicativo aprende de novo. Tudo bem, então isso é tudo por enquanto. E na próxima palestra, começaremos a estilizar o perfil do usuário. E confie em mim, o resultado será alucinante. Nos vemos na próxima palestra. 127. 125 Css de perfil: Bem-vindos de volta a todos. Tão rápido. Vamos começar a estilizar o componente do perfil para o código VS. Vamos começar com a imagem de atualização do perfil. Deixe-me mostrar rapidamente essa imagem aqui porque ela está indo para o desktop, o que vamos fazer. Então, para isso, vamos dializá-lo rapidamente. Pontos. Perfil, imagem de atualização. A largura é 80. A altura é 80. Raio de fronteira. Cinco pixels. Alimentação de objetos, cava. Margem esquerda. 19 fotos. Vamos salvar e conferir o navegador. Certo? Tudo parece bem. Eu adoro isso assim. Vamos continuar. Vá para o topo. Então, aqui vamos começar com o perfil intitulado cópia do contêiner. E, por favor, certifique-se de definir o CSS em três classes de ocorrência. Tudo bem, vamos ter uma tela flexível. Alinhe os itens ao centro, justifique o conteúdo. Queremos que tenha um espaço intermediário. Então, eu vou fazer um espaço entre eles. Vamos especificar a sombra da caixa. Temos que copiar a sombra de caixa normal que estamos usando neste curso. Cole aqui. Vamos dar uma cor de fundo. Esquive o oblíquo. Quando você diz ventrículo no navegador. A ideia é, você pode ver, agora temos essas coisas aqui. Vamos estilizar o título preferido. Dê uma cor. Alice azul. Margem esquerda, dez pixels. A fonte we 300. O ninho é o perfil dos passeios de barco. Então esse botão aqui decretou inchaço. A largura é de 100 pixels. Acolchoamento de borda, cinco pixels. Margem, certo? Dez pixels. A cor de fundo, água-marinha. Vamos dar a ele um raio de borda de cinco pixels. E o custo apontará para economizar e conferir. Eu escrevo muito bem. Agora, para o contêiner de perfil , esse cara aqui, vamos ter uma tela flexível. A margem superior é de 19 fotos. A sombra da caixa é como sempre. Agora, para o show de perfil, flex, eu vou ser uma festa em 19 fotos. Agora, para o show talk do perfil, exiba flex. Alinhe os itens ao centro. Vamos dar uma olhada no navegador. Feito é que tudo está gradualmente tomando forma. Nest é a atualização do perfil. Deixa eu te mostrar isso aqui embaixo. Realce a cópia. Flexione para alimentar em 19 pixels. Margem esquerda, 19 fotos. Você pode ver agora que está alinhado aqui. Bom. A seguir está o perfil IMG. E é claro que fizemos isso aqui, que é o perfil do IMG. Agora temos que estilizar os detalhes do perfil. Deixe-me procurá-lo. Ok. É o perfil em que as equipes dividem o fluxo, a direção flexível. Queremos isso de cima para baixo, certo. Então, eu vou fazer cólon. Quando você salva no navegador. Você pode ver que esses são os detalhes do perfil. Então, quando eu saio da direção flexível, vamos ver o que acontece. Você vê que a colina dos detalhes é uma fileira não descendente. O que está acontecendo? Eu especifico a direção da flexão para ser a coluna. Agora veja o novo comportamento. Bom. Ok, vamos especificar a margem esquerda. 19 fotos. Nest é o nome do meu perfil. O peso da fonte é 300. Então aqui temos meu título preferido. A mesma coisa aqui. Copiar, colar, perfilar, calçar, parte inferior e margem superior são dez fotos. Agora temos o perfil, mostre o título. O tamanho da fonte é de dez pixels. Tweet divertido. Vamos fazer com que ele veja 100 cores. Vou usar o RGB. Para vermelho. Teremos 17570 peças de verde e 170 peças de azul no navegador. Aqui está. Vamos para a próxima fila, se os perfis mostrarem informações. Vamos fazer com que ele exiba itens flexíveis, alinhe, centro, margem, pixels do item, pixels. E a cor vai ser, vai ser cinza. Salve, confira. Você pode ver agora que todo esse lugar aqui está realmente tomando forma. E eu gosto disso. Tudo bem, está tudo bem. O Nest é um ícone profissional. Então, queremos estilizar todos esses ícones aqui. Vamos dar uma cor. Dodge apple, você está seguro, certo? Ok. Bom. Eu adoro isso assim. Vamos estilizar o título ShowInfo do perfil. Vamos dar a ele um tamanho de fonte de 22 pixels. A largura da fonte 600. Você pode ver agora que a edição parece mais grossa. O ninho é o formulário de atualização do perfil. Assim como uma coluna de flexão de tela e , em seguida, de direção flexível. Em seguida, atualize os itens do perfil em Rótulo. A margem inferior será de cinco pixels. Tamanho da fonte. Serão 17 pixels. Agora, para a atualização do perfil em períodos, entrada de atualização de perfil dod , teremos a largura de 250 pixels a altura de 21 pixels. Vamos dar o estofamento. O preenchimento é de cinco pixels. Fronteira. A borda é de um pixel. Cinza sólido de um pixel. Vamos dar a ele um raio de borda porque queremos que ele seja um pouco curvilíneo. Vamos fazer com que seja de cinco pixels. Salve o navegador. As crianças. Linda. Ok, então temos que alinhar tudo. Vamos fazer isso rapidamente. Agora, o ninho e a linha são o objeto do perfil aqui. É copiar, vir aqui, colar. Então teremos um display flex, a coluna de direção flexível. Vamos justificar o conteúdo. Espaço entre a parte inferior, o botão de atualização. Mas eu realmente não sei por que os imputos não estão bem alinhados. Quando terminarmos de usar o botão, definitivamente corrigiremos algumas caixinhas ou erros, por assim dizer. Ok, vamos continuar. Para o perfil, atualize, faça o upload, destaque e copie. Vamos ter uma tela flexível. Vamos alinhar os itens ao centro. Agora, para os ícones de atualização do perfil, basta especificar o causal a ser um indicador para o quadro de atualização do perfil. Deixe-me ver aqui. Destaque e copie. Tudo bem, então acho que temos que classificá-lo adequadamente. Isso vai chegar aqui. Porque temos o botão de atualização do perfil e temos o ícone de atualização do perfil, perfil e imagem de atualização. Então é assim que vai ser classificado. Consultado do jeito que você quiser. Mas certifique-se de que você possa se lembrar disso no futuro. A fronteira não é nenhuma. Raio da borda, cinco pixels. Acolchoamento, cinco pixels. O causal é ponteiro, largura da fonte, gangorra e leitura. A cor de fundo. Então, a cor da fonte será branca. Nós salvamos o navegador. Então, ao observar a espuma, você perceberá que os imputos não estão bem alinhados. E, como tudo, não há espaço entre a entrada e o botão também não deveria estar aqui. Queremos que esteja alinhado na idade certa, ok? Quero que você pause o vídeo no final e tente máximo possível corrigir esse problema. E depois disso, você pode retomar o vídeo para assistir minha solução para eles. Deixe-me mostrar minha ética. Volte para o código VS. Role até o formulário de atualização do perfil. Aqui está. Então, vamos limpar a direção flexível. E eu vou justificar o espaço de conteúdo entre o momento em que você salva confira o navegador. Agora temos esse alinhamento aqui, e esse é o alinhamento adequado. Agora, o único problema que temos aqui é que não há espaço entre o formulário de entrada e os rótulos, nem entre os campos de entrada. Volte para o código VS. Agora vou fazer aqui a margem superior. Vamos fazer a noite em pixels. Feito isso, agora, também precisamos estilizar o item de atualização do perfil Aqui está o problema de Lee. Tudo bem, então vamos ter uma tela flexível. E então a direção flexível será a coluna, que alinhará os itens de cima para baixo. Então você só precisa copiar o item de atualização do perfil assim. Cole colchetes ondulados abertos e fechados. Vamos fazer com que ele seja flexível. A direção flexível é coluna. Quando você salva e verifica o navegador. Aqui está. E agora tudo está bem alinhado conforme o esperado. Eu adoro esses. Vamos fazer mais uma coisa. Eu quero que algo seja escrito no topo assim. Volte e esse será o título preferido. Acho que esquecemos de fazer isso. Eu vou fazer Editar perfil. Quando você salva no navegador. Aqui está. Você consegue ver que tudo aparece conforme o esperado? Por enquanto, tudo isso é n. Nesta palestra, vamos implementar o componente de criação de usuário. Sudão. 128. 131 Crie rota de usuário: Nesta palestra, vamos implementar o componente de criação de usuários. Então, quando clicamos no componente Criar usuários, ele nos redireciona para recriar ele nos redireciona para recriar usuários, onde poderemos criar novos usuários rapidamente agrupados no código VS, a menos que continuemos. comando B para abrir o Explorer, certo, não decifraria o diretório do usuário. Vamos criar um novo componente chamado create user the cheers. Gere o componente funcional. Vamos criar rapidamente o arquivo CSS correspondente. Bom. Feche o comando P do Explorer e, em seguida, pesquise o aplicativo Js. Agora, a primeira coisa que vamos fazer é implementar a rota. Aqui mesmo. Eu só tenho que destacar e depois duplicar isso aqui, certo? Estamos na corda. O caminho será criar usuário com barra. E os elementos a serem renderizados são o componente de criação de usuários. E, por favor, certifique-se de importá-lo na parte superior. Certo. Agora vamos ver se o que fizemos está realmente funcionando. Vou copiar essa parte aqui, de frente para o VS Code. Vamos para casa. Agora, vou colar aqui. É a tecla Enter. Estão certos? Então, agora estamos no componente de usuários da rede. Linda. Mas você deve saber que, em um aplicativo do mundo real, talvez seus usuários finais não consigam copiar o caminho dessa forma. Portanto, temos que implementar o botão de edição de links dos usuários. E então, quando clicamos nos componentes de criar usuários, queremos ser redirecionados para recrutar usuários. Então, vamos encerrar esse fundo com um link. Perfil do usuário. Aqui está o canto inferior direito, aqui eu vou fazer o link. Queremos criar um link para essa parte aqui. Ok? Em seguida, destaque a navegação. Mova-o diretamente no link. Então essa é a parte que criamos diretamente no aplicativo Js, assim. Então, quando você salva e confere o aplicativo no navegador, opa, diz que o link não está definido. Voltar diretamente ao perfil do usuário é importar o link do roteador React. Vamos importar o link do React Router. Não faça. Quando você salva novamente no navegador os IDs. Vamos experimentá-lo clicando em criar usuário comprado. Consegue ver isso? Linda? Agora vamos começar a implementar os criativos como página. 129. 126 Crie um componente de usuário: Nesta palestra, vamos implementar o componente de criação de usuários. Quando clicamos no componente Criar usuários, devemos ser redirecionados para recriar usuários. Poderemos criar novos usuários aqui. Então, vamos adicionar rapidamente o código VS para implementá-lo. Comando B do Vs Code para abrir o Explorer. A primeira coisa que vamos fazer é criar os componentes. Então, certo, estamos no diretório do usuário. Vamos criar um novo componente chamado create users.js. Gere o componente funcional. Vamos criar o arquivo CSS correspondente. Linda. Portanto, temos que vincular o arquivo CSS aos componentes. Insira barra de pontos, crie, use dot css. E, por favor, faça anotações. É uma letra minúscula. Agora vamos implementar rapidamente o comando de rota P para abrir o decodificador na parte superior. E então eu vou configurar nosso aplicativo. Então, aqui, eu só tenho que destacar esse cara e depois duplicá-lo. Então, agora temos que especificar o caminho. Destaques, limpe-os. O caminho será criar usuário com barra. Assim. Em seguida, os componentes a serem renderizados, que neste caso o elemento será criado pelo usuário. Certifique-se de importá-lo na parte superior. Feche o Explorer. Então, agora temos que copiar esse caminho e vamos experimentá-lo. Venha aqui, volte para casa. Aqui mesmo. Eu vou colar isso. Kit na tecla Enter. E boom, são pixels para recrutar usuários. Por aqui. Vamos dar rapidamente a esse div um nome de classe do contêiner de criação de usuários. Destaque, copie. Volte para o arquivo CSS para criar o contêiner de usuários. Então, vamos flexioná-lo para tudo bem, vamos fazer seis. Então, o preenchimento é de 20 pixels. Quando você salva e verifica o navegador. Opa, dê uma olhada. O usuário também está em letras minúsculas. Na verdade, o que aconteceu antes foi que o componente não conseguiu ver o arquivo CSS porque a UE estava em letra maiúscula. Agora está tudo bem. Salve no navegador. Ei, é que o usuário de criação está tomando seis unidades da tela. Mas uma coisa que eu também quero que você entenda é que, em um aplicativo do mundo real, cliente pode não conseguir realmente implementar o caminho dessa forma. Talvez eles não consigam digitar todo esse caminho dessa forma. Então, o que precisamos fazer é encerrar a criação de navegação do usuário com o link que, quando o usuário clicar no barco da Creative Juices, ele o leve para a página de criação de usuários. Agora, quando clico no botão, nada acontece. O Vs Code abre o perfil do usuário. Então, aqui vamos ter um link. E queremos criar um link para, deixe-me mostrar essa parte aqui que criamos anteriormente. Corte, crie um perfil de usuário, cole-o entre as aspas. Então temos que destacar a navegação, movê-la para o link. Vamos formatar rapidamente o código com mais bonito. Parece bom. Depois de fazer isso, vamos tentar. Seguro no navegador. Vamos tentar clicando na equipe Create User Pool. Você pode ver que tudo está funcionando perfeitamente bem como aspartato? Então, vamos começar a criar os criativos como empresa. Feche-o e, em seguida, feche o componente do aplicativo. Tudo bem, destaque-os, limpe-os. Então, certo, dentro dessa div, teremos uma etiqueta principal. Vamos dar a ele um nome de classe ou um novo título de usuário. E o título será de novo usuário. Abaixo da tag H1. Vamos ter uma empresa porque precisamos criar nosso formulário para coletar os detalhes do novo usuário. E à direita, estamos no formulário, teremos os campos de entrada. Mas, por enquanto, vamos dar a esse formulário um nome de cluster para criar usuário. A partir daqui, teremos um div. Dê a ele um nome de classe do novo item de usuário, diretamente no div, teremos um rótulo. Então, certo, quando esse rótulo. Vamos fazer o nome de usuário. Quando você salva e verifica o navegador. Aqui está. Você pode ver o nome de usuário? Aqui está o título, aqui está o rótulo. Usando esse nível, queremos ter um campo de entrada aqui. Então, abaixo do nível, vamos fazer o tipo imputado. O tipo de entrada é igual a texto. O espaço reservado, Issaquah. Eles enxergam. Vamos fechá-lo com a etiqueta de fechamento automático. Lateralmente, o espaço reservado se refere ao texto que aparece como padrão, diretamente no campo de entrada. Confira. Agora você pode ver que estamos no campo de entrada, temos uma margarida de teste. E aqui está o campo de entrada. Bom. Agora, o próximo passo é copiar esse div com o nome da classe do novo usuário. Copie tudo entre o div e duplique-o sete vezes. Agora vamos começar a mudar o nível e o resto dos fogões aqui serão o nome completo. Então aqui vamos receber um e-mail. Aqui vamos ter uma senha. Então, eu vou fazer algo assim. Não se preocupe. Isso não significa nada. É apenas um espaço reservado. E aqui vamos ter um número de telefone. Este será nosso endereço. E não se esqueça da cidade de Nova York. Agora vamos implementar a agenda. Então, isso realmente exigirá algumas coisas, então temos que fazer isso juntos. A agenda tem que ser masculina ou feminina. Tudo bem, agora vamos usar o botão do rádio. Então aqui o tipo de entrada não será mais testado, será rádio. Não há necessidade de espaço reservado por enquanto. O nome equa agenda, o ID, homem igual, valor, espelho igual. Agora vamos ter outra gravadora aqui. Para um moinho de núcleo. Dentro do HTML do rótulo, vamos fazer refeição. Então, agora o que vou fazer é destacar esse cara. Copiar. Venha aqui, cole. Portanto, o tipo de entrada é rádio, o nome é gênero. Mas desta vez a identidade será feminina e o valor será feminino. Além disso, eu só tenho que destacar esse cara e copiar. Venha aqui, cole. Agora aqui vai ser mulher, e aqui vai ser mulher, assim. Destaque a duplicata. Então, aqui vamos fazer o pedido. Tudo bem, então talvez tenhamos outras agendas, que eu não sei. Não posso chamá-lo de exército se você sabe disso. Agora, aqui eu vou fazer isso. Tudo bem, vamos dar uma olhada no navegador. Linda. Você pode ver aqui que temos agendas masculinas, femininas e outras. Tudo bem, então eu não sei disso, mas talvez vamos continuar. Volte para o código VS, a menos que execute o topo. Então, o que eu vou fazer agora é agrupar todas essas coisas em uma div. A partir daqui, vou fazer div, dar a ele um nome de classe da nova agenda de usos. Certo, estamos na divisão. Vou destacar as linhas 42 a 46. Mova-o para dentro. Aqui, não é? Tudo bem, então vamos mudar rapidamente o rótulo para gênero. Ok, tudo bem. Então, certo, estamos nessa div de fechamento, essa div de fechamento com o nome da classe do novo item de usuário. Teremos outro div com o nome da classe do novo item de usuário. Tudo bem, então novo item de usuário, certo, colocando o div, vamos ter um rótulo. E eu vou fazer aqui ativo, que é o HTML interno que aparecerá na tela. Aqui está. Agora teremos uma opção de seleção. Dê a esse select o nome da classe do novo usuário select. Vamos especificar o nome. Vamos tornar isso ativo. O ID está ativo, certo? Vamos selecionar a tag. Teremos duas opções. Opção. O valor será, opa, isso deve ser uma string e não um colchete de colega. Vamos nos ter aqui, certo? Estamos no HTML interno. Vamos fazer é destacar, duplicar. E com certeza, você deve saber o que isso será. Não e não. Exatamente assim. Vamos salvar um CT Browser. Tudo bem, temos a opção de seleção. Você pode ver quando clica, você tem sim ou não. Tudo está funcionando perfeitamente, conforme o esperado. Formate o código novamente para que possamos ter um recuo adequado. E por último, logo após o fechamento da div com o nome da classe do novo item de usuário, vamos especificar body. Vamos dar a essa classe de botânica o nome de botão Novo usuário. Cria. Quando você salva no navegador. E osso. Aqui está a criação de barcos. E o formulário é realmente bom, mas não parece extremamente bonito, como esperado. Mas não se preocupe. Na próxima palestra, resolveremos tudo e então você vai adorar a arte com. Isso é tudo por enquanto. Nos vemos na próxima palestra. Mantenha o cuidado focado e holístico. 130. 127 Crie Css de usuário: Tudo bem, bem-vindos de volta a todos. Nesta palestra, vamos estilizar o componente de criação de usuários. Então, sem mais delongas, vamos começar. Agora vamos prosseguir com o novo título de usuário. Vamos ter uma tela flexível. Vamos alinhar os itens ao centro. Então. Justifique o conteúdo. Espaço entre. Ok, vamos dar uma sombra de caixa. Copiar. Claro que, agora, você já deve saber onde encontrar essa sombra de caixa. A cor de fundo, esquiva ou azul. Em seguida, a cor da fonte. Eu vou fazer com que seja azul Alice. Acolchoamento de cinco pixels. Quando você economiza. Vamos dar uma olhada no navegador. Você pode ver? Certo? Então, vamos começar com esse cara aqui, que é o telefone. Agora, vamos para o formulário de usuários críticos. Vamos fazer com que ele exiba o flex, depois o flex wrap. Vamos fazer com que caia. Vamos economizar e ver o que temos. Certo? Ok, esse é o resultado. Então, vamos continuar. O ninho é o novo item do usuário. Destaque, copie. Venha aqui. A largura é de 400 pixels. Vamos fazer com que ele exiba uma coluna de direção flexível e flexível. Vamos ver agora que isso vai ser organizado de cima para baixo. Você pode ver agora que estamos chegando lá. Margem, dez pixels principais, margem direita? 20 pixels. Então, agora queremos estilizar esse rótulo. E se você observar a tela, perceberá que esse rótulo está dentro do novo nome da classe do item de usuário. Então, o que eu vou fazer agora é destacar esse cara, copiar, vir aqui, colar. Temos que referenciar a margem mais simples da mão de obra, dez pixels inferiores. O tamanho da fonte será de 14 pixels. A largura é de 100. A cor, que é a cor da forma. Tudo bem, então vamos deixá-lo cinza. Quando você salva a finalização da compra, o navegador. Você pode ver? Linda. Vamos prosseguir. Agora, para os novos imputos do item de usuário, deixe-me mostrar, que é para as tags de entrada. Tudo bem, aqui também. Ao observar a tela, você perceberá que a tag de entrada está diretamente dentro do div com o nome da classe dos novos itens do usuário. Então, vou destacar novamente. Desta vez, basta destacar tudo assim. Estou aqui, cole e depois temos que referenciar o imputado. O mais simples que a altura de 20 pixels, preenchendo dez pixels. A borda, um pixel em cinza sólido, o raio da borda, cinco pixels. Ok, vamos ver o que temos a bordo. Lucro. Parece bom. Agora temos que estilizar a nova agenda do usuário. Vamos ver. Aqui estão os pontos de cópia? Você usa a agenda. E então temos que referenciar a entrada porque queremos capturar os botões de rádio e o resto deles. Então, margem superior. Vamos criar 15 pixels para a etiqueta, certo? Não seria a agenda de notícias? Estamos nos referindo a esses rótulos. Tudo bem. E eu vou destacá-los. Venha aqui. Colar. Vou fazer Label. A margem em vez de pixels. Tamanho da fonte 18 pixels. A cor vai ficar ótima, mas vamos fazer assim. Cinco por cinco. Mas esse cinza é uma espécie de tika. Ok, vamos dar uma olhada na tela. Ainda bem em Nice. Então, o próximo na fila é o barco e esse cara aqui, que é o botão Selecionar e a coisa criável. Aqui, destacaremos a seleção do novo usuário, o ponto de cópia, o novo usuário seleciona e o que está dentro. Vamos dar a altura de 40 pixels. Isso reduziu cinco pixels. Salvar. Bom. Tudo bom. Vamos estilizar rapidamente como criar a votação do usuário. Hum, então, hum, vamos pegar o ClassName rapidamente. O nome da classe aqui é novo, use abortando, realçando e copiando. Venha aqui. Ambos os nêutrons pontilhados são finos. E agora temos que aplicar essas toalhas. A largura de 200 pixels. A fronteira é conhecida. Não queremos nenhuma fronteira. A cor do plano de fundo. Vou fazer com que ele se esquive até aqui. A cor, que neste caso a cor da fonte será, ok, vamos torná-la azul Alice. Ou eu também posso torná-lo branco. Espaçamento, esquerdo, direito, sete pixels, superior, inferior, dez pixels. A fonte elimina a margem de 600, os 30 pixels superiores. Vamos implementar rapidamente o raio da borda. O raio da borda e os pixels funcionarão bem. E por último, o causal , será derramar alcatrão. Quando você salva e verifica o navegador. Teremos uma bela especialista para esse fim. Dê uma olhada. Você pode ver que tudo está tão bonito e eu adoro isso. Então, aqui estão os imputos. Tudo legal. Amigos. Aqui. Ativo é não. Você pode fazer isso. Sim. Ok. Pode escolher entre maio ou mulher ou pode ser outra agenda que eu não conheço por enquanto. Então temos aqui a agenda em si. Temos que mudar alguma coisa. Esta é a agenda, o rótulo aqui, temos que corrigi-lo. Então, abra o usuário de criação. Aqui. Podemos apenas medir a idade, digamos 28,7 anos, retirá-la. Bom. Tudo funcionando conforme o esperado. Amigos, esse componente é extremamente bonito e eu gosto dele. Vamos testar todo o componente do usuário para ver se tudo está funcionando perfeitamente. Eu bati em casa. Linda. Aqui mesmo. Eu bati no do usuário. Isso me leva à lista dos judeus. Eu posso selecionar um usuário individual. Eu também posso desmarcar. Eu consulto. Então, se tivermos mais itens aqui com fotos diferentes em nomes diferentes, você verá a classificação. Então, simplesmente porque estou usando o mesmo teste em todos os lugares, você pode não notar, mas posso garantir que o sal está funcionando perfeitamente bem. Certo? Então, aqui você pode clicar e, em seguida, os indesejados podem ser classificados por ordem crescente. Você pode filtrar. Você pode fazer muitas coisas aqui. Você também pode. Excluir. Você pode ver que está funcionando perfeitamente bem. Depois, você pode editar. Linda. Tudo parece bom. Então, após a edição, você só precisa clicar na parte inferior da atualização. Mas lembre-se, isso é apenas uma interface de usuário. Portanto, a funcionalidade de atualização pode não estar funcionando por enquanto. Então, quando você clicar em Creative Juices Boating and Boom. Consegue ver isso? Linda? Tudo está bom. Isso é tudo por enquanto. E na próxima palestra, começaremos com as folhas do produto. Portanto, quando clicamos na lista de produtos, devemos ser redirecionados para o componente da lista de produtos. Até lá. 131. Componente de lista de produtos: Nesta palestra, prosseguiremos com os componentes da lista de produtos. Portanto, o componente da lista de produtos é, na verdade , o mesmo paradigma do componente de lista do usuário. Tudo bem, então vamos ter coisas parecidas com essas, mas só que os nomes dos cabeçalhos também mudarão . As imagens. Mas a mesa é exatamente a mesma. Vamos usar a tabela de dados MAOI. Tão rapidamente escondido no código VS. E vamos começar implementando o comando route VS Code B para abrir o Explorer. Então, aqui estão as páginas, e esta é a lista de produtos. o botão direito do mouse nas listas de produtos, vamos criar o componente da lista de produtos. Gere o componente funcional e crie rapidamente o arquivo CSS correspondente. Abra as engrenagens do aplicativo. É aqui que Lee é onde implementaremos a rota duplicada. Aqui, vou especificar um caminho da lista de produtos. E então vamos renderizar os componentes da lista de produtos. Sempre certifique-se de importá-lo na parte superior. Seguro. Vamos tentar ver se o caminho está realmente funcionando. Volte para casa. E aqui eu vou colá-lo bem no topo. Clique na tecla Enter. E boom, agora estamos no componente da lista de produtos. Lindo, mas parece que nada é exibido na tela, certo? Então, vamos corrigir isso rapidamente. Agora, dentro do CSS, primeiro, temos dois div, esse div é um nome de classe do contêiner da lista de produtos. Destaque e copie o nome da classe, pontilhe o contêiner da lista de produtos. E então vamos flexioná-lo. Seis, seguro. Salve aqui no navegador. Ei, não é? Você pode ver agora que temos a lista de produtos escrita. Apenas no extremo. Tudo está funcionando perfeitamente, conforme o esperado. Confie em mim Na próxima palestra, começaremos a projetar os componentes. Te vejo então. 132. Design de lista de produtos: Bem-vindos de volta a todos. Nesta palestra, prosseguiremos com o design da lista de produtos. E, claro, é simplesmente a tabela de dados que implementamos na aula anterior para a tabela de usuários. Então, agora o que vou fazer agora é ir para o auxiliar de código. Vamos copiar os dados do produto. E esses são todos detalhes editados. Se você quiser fazer isso sozinho, é muito fácil fazer isso. Abra o arquivo de dados. Aqui está, ele usa dados. Venha aqui. Vamos colá-lo aqui. Então, o que temos aqui é exatamente o mesmo paradigma com o que temos aqui. Esses são os dados do usuário. Sim, então é exatamente a mesma ideia. Se tivermos o ID, o nome de usuário, o avatar, que serve como imagem, o status do e-mail e o pagamento. Então, quando você acessa os dados do produto, temos o ID, o nome, a imagem, o estoque, o status e o preço. Então, acabamos de mudar os campos. Ok, perfeito. Agora vamos voltar para a lista de produtos. Novamente. Comum p.sit. Vamos abrir o mínimo para o usuário. Certo? A lista do usuário não seria? Temos a cópia daqui até este ponto. Ok. Você pode ver 9-64? Você vê, certifique-se de copiar corretamente. Copie, acesse a lista de produtos, cole aqui. Novamente, volte para a lista do usuário. Também precisamos copiar os dados. Concordou? Fizemos isso na palestra anterior, quando estávamos implementando a lista de usuários. Então você já deve saber disso. Pestis rasga tudo fresco, tudo bom também. Temos que copiar algumas entradas. Vamos importar a grade de dados. Aqui. Queremos fazer uso de todas essas coisas aqui. Excluir. Vamos copiar as linhas três, linhas cinco, que são a grade de dados, o link e o contorno de exclusão. Cole aqui também. Temos que copiar os ustedes porque vamos usar o gancho de identificação dos EUA. Começamos a implementar o botão de exclusão, salve o aplicativo. Agora, precisamos combinar os campos com exatamente os mesmos dados que temos diretamente nos detalhes do produto quando você abre o arquivo de dados. Então, aqui temos ID, nome, IMG, estoque, status e preço, incluídos na lista de produtos. Feito isso, vamos importar os detalhes do produto a partir da barra de pontos SRC, dados do produto, barra de queda. Assim mesmo. Ok? Então, aqui vamos combinar os campos com exatamente os mesmos campos que temos nos dados. Então, aqui o nome do campo será produtos. A cabeça e o nome. Vai ser um produto. Aqui, faz div, vamos dar o nome da classe do item da lista de produtos, dar ao IMG um nome de classe da lista de produtos, IMG, que é a lista de produtos. Cada imagem. Temos que ter cuidado aqui para não cometer um erro tolo, vamos mudar o campo de e-mail para estoque, assim como temos nos dados. Isso será status. Isso será status. O ninho e a linha aqui serão o preço. Deixe-me te mostrar. Temos o status e temos o prêmio. Aqui temos a ação. Então, isso ajudará na exclusão e edição do quadro quando tudo estiver realmente igual, só que precisaremos alterar os nomes das classes e o resto delas. Então, aqui temos um div com o nome da classe do container de ação. E temos um botão com o nome da classe do usuário de edição. Vamos transformar o nome da classe inferior em um editor de listas produtivo. E aqui vou mudar isso para exclusão do produto. Legal. Tudo bem, então, por último, vá até o topo e deixe-me mostrar. Portanto, temos que considerar isso como o estado inicial. Limpe, destaque, copie, venha aqui, cole os dados aqui, armazene os dados do produto como estado inicial. E os dados do produto estão diretamente neste módulo. E é composto por todos esses itens aqui. É tão simples quanto essa lista de produtos. Role para baixo e, em seguida, as linhas são iguais aos dados, que estão na parte superior. Salve e confira o navegador. Diz que os países do arquivo de dados SRC cortam os dados do produto. Ok. Vamos fazer a importação novamente, importar dados do produto. Então, agora parece que devemos criar um arquivo separado para os dados do produto. Então, o que eu vou fazer agora é copiar, vir aqui, diretamente dentro do arquivo de dados. Vamos criar um novo arquivo, dados do produto, dot js. Então, Heron, para usar nossos dados. Vamos copiar tudo assim. Destacar. Pare com isso daqui. Agora temos um módulo separado para todos os arquivos que vamos usar. E acho que é uma ideia melhor. Dados do produto. E mantenha-o aqui. Bom. Vamos adicionar S aos detalhes de cada produto. Agora vamos voltar para a lista de produtos. Então, vou começar a importação do zero novamente. Importe detalhes dos produtos desse cara aqui. Vou adicionar S para comer como detalhes do produto. Acho que terminamos. Seguro. Finalize a compra, o navegador. Linda. Vamos clicar nos produtos. No momento, temos os itens. Você pode ver? Algo muito rápido? que vamos fazer agora é especificar os flocos para que ele possa assumir algumas unidades na tela. Certo, dentro da lista de produtos. Opa, nós fizemos isso aqui. Então, vamos vincular rapidamente o arquivo CSS ao componente. Vamos importar rapidamente o CSS das listas de produtos com barra de pontos. Quando você salva o navegador, tudo aparece conforme o esperado, e eu adoro isso. No momento, a imagem não está aparecendo. Então, vamos dar uma olhada no botão excluir. Você pode ver que o botão de exclusão está funcionando perfeitamente bem? Você vê? Dê uma olhada. Caras legais. Quando eu recarregar, todos os itens mostrarão nosso começo. Não há problema nisso porque este é apenas um site estático. Tudo bem, então, quando começarmos a implementá-lo com o back-end, teremos alguns dados sendo armazenados em algum lugar. E então, quando excluímos, excluímos do banco de dados, entendido, lindo. Vamos tentar clicar no botão Editar. Ok, o botão Editar nos leva ao discurso do usuário do editor, e isso não deveria ser. Então volte. Agora, vamos tentar corrigir a imagem. Ao olhar para o canto inferior direito da tela, você verá a paginação. Então, quando você clica, você pode ver que continuamos passando de um pico da tabela para a outra página. Ok. Bom. No momento, a imagem não está aparecendo. Não se preocupe. Eu tenho uma solução simples para isso. uma pausa rápida na palestra para terminar e tente corrigi-la. Quando terminar, você pode retomar o vídeo e ver minha própria solução para isso. Tudo bem, estrague tudo e deixe-me te mostrar. Certo, o método de renderização aqui não diria que o SRC será params dot rho dot avatar, um substantivo. Ao abrir os dados do produto, você perceberá que não temos Avatar aqui. Tudo o que temos aqui é a AMD. Portanto, temos que fazer referência ao IMG e anotar Avatar. Venha aqui e cole os parâmetros IMG dot roll, dot IMG ao salvar no navegador. E são essas, porém, as imagens não aparecem como esperado. Então, é simplesmente porque não o estilizamos. Ok, então o tamanho da imagem aqui é extremamente grande. Portanto, não vai parecer como esperado por enquanto, mas é incerto. Na próxima palestra, daremos uma solução rápida. Muitas vezes, esse é o nosso n. Vamos passar rapidamente para a próxima palestra para estilizar essa empresa. 133. 130 Css de lista de produtos: Tudo bem, então vamos estilizar o componente da lista de produtos, heroína para VS Code. Abra a lista de produtos CSAs. E agora podemos dividir a tela. Em seguida, abra a lista de produtos e percorra a interface do usuário. Então, primeiro, quero que estilizemos a imagem. Então, aqui vamos ter a lista de produtos, lista produtos IMG dot IMG. A largura e a altura serão de 50 pixels. O raio da fronteira. Cinco pixels. O objeto se encaixa. Capa. Salvar. Você pode ver agora que parece bom. Mas uma coisa que eu também quero que façamos é aumentar o número de itens que serão exibidos nesta tabela. Então, role para baixo. Aqui, diz o tamanho da página, eu vou fazer oito. Quando você salva no navegador. Você pode ver que há um problema com essa imagem aqui com o ID de cinco. Então, o produto foi a ideia de cinco. Temos que dar uma olhada. Dados do produto. Vamos procurar o produto com a ideia de cinco aqui, não é? Por que você não está aparecendo? Ok, o que eu vou fazer agora é copiar outros produtos daqui. Então vamos substituí-lo, limpá-lo e colá-lo aqui. Quando você nos salva, veja o que acontece a seguir e está funcionando perfeitamente bem. Agora aumentamos o número de itens que serão exibidos em nossa mesa. Lembre-se de sempre classificar seu CSS e a ocorrência de acordo com a forma como eles aparecem na linha de componentes será o item da lista de produtos, destacando e copiando no topo. Portanto, o item da lista de produtos vem antes da lista de produtos IMG ou da imagem da lista de parâmetros. Vamos ter uma tela flexível. Vamos alinhar os itens ao centro. A margem será de dez fotos. Quando você salva e verifica o navegador. Ok, ótimo. Parece mais limpo. O ninho é o editor da lista de produtos. E vem logo após a lista de produtos IMG. Deixe-me mostrar uma escritura na lista de produtos, destaque-a e cole-a aqui abaixo da imagem da lista de produtos e depois da borda. Nenhum. O que eu reduzo em dez pixels. Acolchoamento, cinco pixels, dez pixels. A cor do plano de fundo. Dodge W. A cor. Vai ser branco. Consola. ser ponteiro, margem, certo? 20 pixels. Salve e confira o navegador. As evidências desses caras parecem boas. E vamos dialisar a edição de barco de forma simples. O que vamos fazer é mudar a cor. Então copie o nome da classe do produto delete. Venha aqui, pontilhe o produto e exclua. Dê a cor. A cor vai ficar vermelha e o cursor vai derramar alcatrão. Você salva e finaliza a compra no navegador. E boom, tudo parece como esperado. Mas agora, percebi rapidamente que a imagem do usuário aqui no canto superior direito da tela, que está aqui na navegação superior, simplesmente desapareceu. Não há nada lá. Pode ser um problema de conexão com a Internet comigo aqui. Portanto, não tenha medo. Certifique-se de consertá-lo. Se houver um resultado em, tudo isso é por enquanto. Nos vemos na próxima seção deste curso. Cuide-se.