このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "初期ドキュメント"v9.0.02026/6/22
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るIf 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
ドキュメント: intlayer の comparePaths 関数
概要
comparePaths 関数は、ロケールセグメント、プロトコル/ホスト、クエリ文字列、ハッシュ、および末尾のスラッシュを無視して、2つの URL またはパス名が等しいかどうかを比較します。これは、ナビゲーションリンクが現在のページを指しているかどうか(例:アクティブリンクをハイライトする)を判定するための推奨される方法であり、独自に(エラーを起こしやすい)正規化ロジックを作成する必要がありません。
内部的には getPathWithoutLocale を再利用してロケールセグメントを削除するため、設定されたルーティングモードとロケールを尊重します。
パッケージはまた、比較に使用されるロケールに依存しない正規化されたパス名を返す基盤ヘルパーである normalizePath をエクスポートします。
主な特徴:
- ロケールに依存しない比較(
/ja/aboutは/aboutと一致します) - 絶対 URL と相対パスの両方で動作
- クエリ文字列、ハッシュ、および末尾のスラッシュを無視
- 先頭のスラッシュの欠落や空の値を許容(
/に正規化) - 軽量 —
getPathWithoutLocaleの上に構築されています
関数シグネチャ
コードをクリップボードにコピー
comparePaths( pathname: string, // 必須 href: string, // 必須 locales?: Locales[] // オプション): booleannormalizePath( inputUrl: string, // 必須 locales?: Locales[] // オプション): stringパラメーター
pathname: string- 説明: 比較する最初の URL 文字列またはパス名(通常は現在のパス)。
- 型:
string - 必須: はい
href: string- 説明: 比較する2番目の URL 文字列またはパス名(通常はナビゲーションリンクの
href)。 - 型:
string - 必須: はい
- 説明: 比較する2番目の URL 文字列またはパス名(通常はナビゲーションリンクの
locales: Locales[]- 説明: サポートされているロケールのオプションの配列。デフォルトではプロジェクトで設定されたロケールになります。
- 型:
Locales[] - 必須: いいえ (オプション)
戻り値
- 型:
boolean - 説明: 両方の入力が同じロケールに依存しないパスに解決される場合は
true、そうでない場合はfalse。
使用例
基本的な使用法
コードをクリップボードにコピー
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"); // false絶対URLと相対URL
コードをクリップボードにコピー
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueアクティブなナビゲーションリンクのハイライト
コードをクリップボードにコピー
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 は comparePaths で使用されるロケールに依存しない正規パスを返します。ロケールセグメント、プロトコル/ホスト、クエリ文字列、ハッシュを削除し、先頭のスラッシュを1つだけに保ち、末尾のスラッシュ(ルートを除く)を削除し、空の値に対しては / にフォールバックします。
コードをクリップボードにコピー
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"関連関数
getPathWithoutLocale: URL やパス名からロケールセグメントを削除します。getPrefix: 指定したロケールの URL プレフィックスを決定します。getLocalizedUrl: 特定のロケールのローカライズされた URL を生成します。
TypeScript
コードをクリップボードにコピー
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;