Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Documentação inicial"v9.0.022/06/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Documentação: Função comparePaths em intlayer
Descrição
A função comparePaths compara duas URLs ou caminhos para verificar sua igualdade, ignorando o segmento de locale, o protocolo/host, a query string, o hash e as barras finais (trailing slashes). É a maneira recomendada de determinar se um link de navegação aponta para a página atual — por exemplo, para destacar o link ativo — sem ter que criar sua própria lógica de normalização (sujeita a erros).
Internamente, ela reutiliza getPathWithoutLocale para remover o segmento de locale, de modo que respeita o modo de roteamento e os locales configurados.
O pacote também exporta o utilitário subjacente normalizePath, que retorna o caminho canônico e independente de locale usado para a comparação.
Principais Características:
- Comparação independente de locale (
/pt/aboutcorresponde a/about) - Funciona com URLs absolutas e caminhos relativos
- Ignora query string, hash e barras finais
- Tolera a ausência de barras iniciais e valores vazios (normalizado para
/) - Leve — construído sobre
getPathWithoutLocale
Assinatura da Função
Copiar o código para a área de transferência
comparePaths( pathname: string, // Obrigatório href: string, // Obrigatório locales?: Locales[] // Opcional): booleannormalizePath( inputUrl: string, // Obrigatório locales?: Locales[] // Opcional): stringParâmetros
pathname: string- Descrição: A primeira string de URL ou caminho a ser comparada (geralmente o caminho atual).
- Tipo:
string - Obrigatório: Sim
href: string- Descrição: A segunda string de URL ou caminho a ser comparada (geralmente o
hrefde um link de navegação). - Tipo:
string - Obrigatório: Sim
- Descrição: A segunda string de URL ou caminho a ser comparada (geralmente o
locales: Locales[]- Descrição: Array opcional de locales suportados. Por padrão, os locales configurados no projeto.
- Tipo:
Locales[] - Obrigatório: Não (Opcional)
Retorno
- Tipo:
boolean - Descrição:
truequando ambas as entradas resolvem para o mesmo caminho independente de locale, caso contráriofalse.
Exemplo de Uso
Uso Básico
Copiar o código para a área de transferência
import { comparePaths } from "intlayer";
comparePaths("/ru/path", "/path"); // true
comparePaths("/ru/path/", "/path"); // true
comparePaths("/ru/path", "/path/"); // true
comparePaths("/ru/", "/"); // true
comparePaths("/ru", "/"); // true
comparePaths("ru/path", "/path"); // true
comparePaths("", "/"); // true
comparePaths("/ru", ""); // true
comparePaths("/ru/path", "/other"); // falseURLs absolutas e relativas
Copiar o código para a área de transferência
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueDestacando o link de navegação ativo
Copiar o código para a área de transferência
import { comparePaths } from "intlayer";import { useLocation } from "react-router";const NavLink = ({ href, children }) => { const { pathname } = useLocation(); const isActive = comparePaths(pathname, href); return ( <a href={href} aria-current={isActive ? "page" : undefined}> {children} </a> );};normalizePath
normalizePath retorna o caminho canônico e independente de locale usado por comparePaths. Ele remove o segmento de locale, o protocolo/host, a query string e o hash, garante uma única barra inicial, remove qualquer barra final (exceto para a raiz) e usa / como fallback para valores vazios.
Copiar o código para a área de transferência
import { normalizePath } from "intlayer";
normalizePath("/ru/path"); // "/path"
normalizePath("/ru/path/"); // "/path"
normalizePath("ru/path"); // "/path"
normalizePath("/ru/"); // "/"
normalizePath("/ru"); // "/"
normalizePath(""); // "/"
normalizePath("https://example.com/ru/path"); // "/path"Funções Relacionadas
getPathWithoutLocale: Remove o segmento de locale de uma URL ou caminho.getPrefix: Determina o prefixo da URL para um dado locale.getLocalizedUrl: Gera uma URL localizada para um locale específico.
TypeScript
Copiar o código para a área de transferência
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;