Pular para o conteúdo

🎉 Material UI v5 is out! Head to the migration guide to get started.

Links

O componente Link permite que você personalize facilmente elementos de âncora com suas cores de tema e estilos de tipografia.

Links simples

O componente Link é construído sobre o componente Typography. Você pode aproveitar suas propriedades.

<Typography className={classes.root}>
  <Link href="#" onClick={preventDefault}>
    Link
  </Link>
  <Link href="#" onClick={preventDefault} color="inherit">
    {'color="inherit"'}
  </Link>
  <Link href="#" onClick={preventDefault} variant="body2">
    {'variant="body2"'}
  </Link>
</Typography>

No entanto, o componente Link possui propriedades padrão diferentes do componente Typography:

  • A propriedade color="primary", pelo fato de que o link precisa se destacar.
  • A propriedade variant="inherit", já que o link será na maioria das vezes usado como filho de um componente Typography.

Segurança

Quando você usa target="_blank" com Links, é recomendado sempre definir rel="noopener" ou rel="noreferrer" quando conectando a conteúdo de terceiros.

  • rel="noopener" impede que a nova página possa acessar a propriedade window.opener e garante que ela seja executada em um processo separado. Sem isso, a página de destino pode potencialmente redirecionar sua página para uma URL mal-intencionada.
  • rel="noreferrer" tem o mesmo efeito, mas também impede que o cabeçalho Referer seja enviado para a nova página. ⚠️ A remoção do cabeçalho referrer afetará a análise.

Biblioteca de roteamento de terceiros

Uma situação comum é executar a navegação apenas no lado do cliente, sem uma ida e volta HTTP ao servidor. O componente Link fornece uma propriedade para lidar com esta situação: component.

Aqui está um exemplo de integração com react-router.

Acessibilidade

(WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#link)

<Link
  component="button"
  variant="body2"
  onClick={() => {
    console.info("I'm a button.");
  }}
>
  Button Link
</Link>