useParams, como você reage?

Minhas aventuras no React-Router

Enquanto continuo minha jornada de banqueiro de tecnologia para engenheiro de software, um mês ou mais se passou e eu voltei para o modo de projeto. O foco dos meus estudos tem sido o framework React e como construir aplicativos da web de forma declarativa .

Foto de Nubelson Fernandes no Unsplash

Desta vez, a curva de aprendizado quando comparada com o que experimentei na primeira parte do meu bootcamp (que me levou da experiência zero com JavaScript para tornar algo funcional) foi significativamente mais suave.

A estrutura React e sua abordagem baseada em componentes realmente me agradaram, entrar nela depois que a biblioteca ficou fora por tanto tempo significa que meu ponto de partida foi usar ganchos e componentes funcionais prontos para uso . Embora um conhecimento prático de componentes baseados em classe tenha sido adquirido, os ganchos me deixaram, bem, fisgado!

Como mencionado, o modo de projeto está sobre mim, e a tarefa é aparentemente simples, mas com escopo amplo a ponto de ser bastante intimidante, sendo - usando criar-reagir-app, fazer um aplicativo de página única, que usa vários componentes e rotas do lado do cliente que também interage com uma API, sua ou pública. Parece tão direto, no entanto, a franqueza do briefing significou que se decidir sobre um tópico foi um tanto opressor. Que tópico você escolheria desenvolver se estivesse nesta posição? Coloque nos comentários abaixo, eu adoraria ouvir.

Acho que devo revelar o que decidi: escolhi criar uma galeria de arte, minha visão era uma landing page com a introdução da galeria de arte, uma página da galeria e uma sobre a página do artista, três simples 'páginas' para conectar o meu rotas do lado do cliente para no webapp da galeria.

Ao ler a documentação do React Router , o gancho useParamssaltou para mim como uma meta potencial de expansão - e se cada obra de arte na minha galeria pudesse ter um URL separado e definido?

Como funciona

Como useParams funciona no roteador react , a documentação para isso é bastante clara, mas basicamente useParams permite que você conecte em uma URL e tome parte dela como seu parâmetro para usar em um componente. Isto é representado por :<param>para significar no caminho da URL, no exemplo abaixo se uma imagem for solicitada a partir da URL “./images/42" o correspondente <div>na renderização mostrará no display o texto “Agora mostrando a imagem 42”

import {
  BrowserRouter as Router,
  Switch,
  Route,
  useParams
} from "react-router-dom";
function DisplayImage() {
    let { id } = useParams();
    return <div>Now showing image {id}</div>
<Router>
    <Switch>
        <Route exact path="/">
           <HomePage />
        </Route>
        <Route path="/images/:id">
           <DisplayImage />
        </Route>
    <Switch>
</Router>

Manipulação de erros

Utilizar esse método significava que agora eu tinha todas as imagens com links exclusivos, que podiam acessar e renderizar diretamente as imagens. Um erro que encontrei durante o teste foi que, como ele estava tentando OBTER uma imagem e passá-la para um segundo componente como um suporte, o segundo componente sempre renderizaria, portanto, um link inválido: id não lançaria um erro e pararia a página renderizando conforme pretendido. Ele passaria um array vazio como prop, o que apenas deixaria elementos div vazios e um pouco de formatação, o que não é uma boa aparência.

Depois de algum google-fu, descobri que uma solicitação GET que resulta em uma mensagem de erro de status 404: arquivo não encontrado ainda conclui uma promessa de busca (GET), portanto, não gerará um erro para uma solicitação .catch, que é salva apenas para erros do servidor. Então, eu tive que adicionar uma condição IF à minha resposta de busca para que, se estivesse fora dos meios usuais, eu jogaria o elemento para o .catch mais próximo na solicitação.

Como lidei com meu erro, jogando-o para outro lugar

Como meu bloco de código acima mostra, isso é definido como uma variável de estado que poderia ser monitorada e, se algo entrasse nela e aumentasse o state.length, eu poderia renderizar uma página de erro diferente ou de outra forma renderizar o componente de exibição de imagem. Em seguida, também me permitiu ter um método simples para ter uma mensagem de carregamento no outro componente quando os adereços estavam demorando para serem preenchidos e exibidos dentro do componente. (Oba latência!)

The TL / DR

useParams é uma parte incrivelmente útil do roteador react, que permite criar links individuais enquanto usa o mínimo de código e mantém as coisas organizadas na instrução do switch do roteador. Apenas tome cuidado com os erros.

Assim que o projeto entrar no ar, atualizarei com links para que você também possa dar um passeio pelas galerias.

Como sempre entre em contato se quiser saber mais sobre meus projetos ou sobre mim em geral!

Suggested posts

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Introdução O AVC é uma emergência médica que pode atingir qualquer pessoa a qualquer momento. Ocorre quando o fluxo sanguíneo para uma parte do cérebro é interrompido, levando a uma perda repentina da função cerebral.

Jest — Uma poderosa estrutura de teste de JavaScript

Jest — Uma poderosa estrutura de teste de JavaScript

O teste é uma parte essencial do desenvolvimento de software. Ele garante que o código seja confiável, funcione conforme o esperado e reduza a probabilidade de erros.

Related posts

That Threat Archive: Vol 7 Black Basta

That Threat Archive: Vol 7 Black Basta

No mundo interconectado de hoje, a ameaça de ataques cibernéticos é mais prevalente do que nunca. Criminosos cibernéticos e agentes de estado-nação estão constantemente buscando explorar vulnerabilidades e roubar dados valiosos, representando um risco significativo para organizações de todos os tamanhos.

Encontrar informações sobre nomes de domínio

Um trecho de Small, Sharp Software Tools por Brian P. Hogan

Encontrar informações sobre nomes de domínio

Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

No atual cenário de negócios em rápida evolução, o conceito de trabalho híbrido e remoto ganhou um impulso sem precedentes. À medida que as empresas continuam a se adaptar às mudanças nas necessidades e expectativas de seus funcionários, especialistas de várias áreas se reuniram para discutir os benefícios, os desafios e o futuro dessa forma transformadora de trabalhar.

pronomes são super assustadores

Isso me atinge De repente, como tantas vezes acontece É o meio do caminho tudo de novo <Não, não aquele no Pacífico, seu marrom, aquele no carnaval> Todas as manchetes em voz alta…..