Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Dokumentasi awal"v9.0.022/6/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisIf 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
Dokumentasi: Fungsi comparePaths dalam intlayer
Deskripsi
Fungsi comparePaths membandingkan dua URL atau path untuk kesamaan dengan mengabaikan segmen locale, protokol/host, query string, hash, dan garis miring di akhir (trailing slashes). Ini adalah cara yang disarankan untuk menentukan apakah tautan navigasi menunjuk ke halaman saat ini — misalnya untuk menyoroti tautan yang aktif — tanpa harus membuat logika normalisasi Anda sendiri (yang rentan terhadap kesalahan).
Secara internal, fungsi ini menggunakan kembali getPathWithoutLocale untuk menghapus segmen locale, sehingga menghormati mode routing dan locale yang telah Anda konfigurasi.
Paket ini juga mengekspor helper pendukung normalizePath, yang mengembalikan path kanonik yang tidak bergantung pada locale untuk digunakan dalam perbandingan.
Fitur Utama:
- Perbandingan yang tidak bergantung pada locale (
/id/aboutcocok dengan/about) - Berfungsi baik dengan URL absolut maupun path relatif
- Mengabaikan query string, hash, dan garis miring akhir
- Mentolerir ketiadaan garis miring awal dan nilai kosong (dinormalisasi menjadi
/) - Ringan — dibangun di atas
getPathWithoutLocale
Tanda Tangan Fungsi
Salin kode ke clipboard
comparePaths( pathname: string, // Wajib href: string, // Wajib locales?: Locales[] // Opsional): booleannormalizePath( inputUrl: string, // Wajib locales?: Locales[] // Opsional): stringParameter
pathname: string- Deskripsi: String URL atau path pertama yang akan dibandingkan (biasanya path saat ini).
- Tipe:
string - Wajib: Ya
href: string- Deskripsi: String URL atau path kedua yang akan dibandingkan (biasanya
hrefdari tautan navigasi). - Tipe:
string - Wajib: Ya
- Deskripsi: String URL atau path kedua yang akan dibandingkan (biasanya
locales: Locales[]- Deskripsi: Array opsional dari locale yang didukung. Secara default mengambil locale yang dikonfigurasi dalam proyek.
- Tipe:
Locales[] - Wajib: Tidak (Opsional)
Mengembalikan
- Tipe:
boolean - Deskripsi:
trueketika kedua input mengarah ke path yang sama yang tidak bergantung pada locale, jika tidakfalse.
Contoh Penggunaan
Penggunaan Dasar
Salin kode ke clipboard
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"); // falseURL Absolut dan Relatif
Salin kode ke clipboard
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueMenyoroti Tautan Navigasi yang Aktif
Salin kode ke clipboard
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 mengembalikan path kanonik yang tidak bergantung pada locale yang digunakan oleh comparePaths. Fungsi ini menghapus segmen locale, protokol/host, query string, dan hash, memastikan adanya satu garis miring di awal, menghapus garis miring di akhir (kecuali untuk root), dan kembali ke / untuk nilai yang kosong.
Salin kode ke clipboard
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"Fungsi Terkait
getPathWithoutLocale: Menghapus segmen locale dari URL atau path.getPrefix: Menentukan awalan URL untuk locale tertentu.getLocalizedUrl: Menghasilkan URL yang dilokalkan untuk locale tertentu.
TypeScript
Salin kode ke clipboard
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;