Π‘ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΄ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° AI
ΠΡΡΠΎΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ
- "ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° usePathname"v10.0.023.06.2026
- "ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ"v8.2.022.06.2026
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, ΠΏΠΎΠ΄Π°Π² Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° GitHub.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GitHubΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Markdown Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ React: ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Ρ
ΡΠΊΠ° usePathname
Π₯ΡΠΊ usePathname ΠΈΠ· react-intlayer Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΡΡ (pathname) Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ. ΠΠ½ ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π° Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ window.location.pathname ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΠ΅ΡΠ΅Π· popstate.
ΠΠΌΠΏΠΎΡΡ usePathname
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠ±Π·ΠΎΡ
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ
Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Ρ
ΡΠΊΠΎΠ² ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ (ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Π² next-intlayer ΠΈΠ»ΠΈ react-router), ΡΡΠΎΡ Ρ
ΡΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ
React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ URL ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ Π»ΠΎΠΊΠ°Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, /ru/about ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ /about).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
import type { FC } from "react";
import { usePathname } from "react-intlayer";
const Navigation: FC = () => {
const pathname = usePathname();
return (
<nav>
<a
href="/home"
style={{ fontWeight: pathname === "/home" ? "bold" : "normal" }}
>
ΠΠ»Π°Π²Π½Π°Ρ
</a>
<a
href="/about"
style={{ fontWeight: pathname === "/about" ? "bold" : "normal" }}
>
Π Π½Π°Ρ
</a>
</nav>
);
};
export default Navigation;
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
string | Π’Π΅ΠΊΡΡΠΈΠΉ ΠΏΡΡΡ (pathname) Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, /ru/dashboard β /dashboard). |
ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ: ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΡ
getPathWithoutLocaleΠ΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈΠ· ΠΏΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Intlayer ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. - Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ: Π‘Π»ΡΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅
popstate. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Β«Π½Π°Π·Π°Π΄Β»/Β«Π²ΠΏΠ΅ΡΠ΅Π΄Β» ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡpushState/replaceState, Ρ ΡΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΏΡΡΡ. - SSR Π€ΠΎΠ»Π±ΡΠΊ: ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ (Π³Π΄Π΅
windowΠ½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ), ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ/, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠΈΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ React Ρ Π½Π΅Π³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡ URL.
