Переваги React Router v4 <NavLink> проти <Link>


94

Окрім можливості встановити "activeClassName" та "activeStyle" на NavLink, чи є якась причина використовувати NavLink over Link під час створення посилань на інші маршрути на не-навігаційних елементах (тобто. Не основна навігація у верхньому або нижньому колонтитулі) на вашому сайті які не потребують активного стану / класу?


4
Я не можу коментувати безпосередньо TOUMI (бо у мене немає 50 реп), тому я додаю його тут. NavLinkзберігає належний фокус на сторінці для доступності. При використанні посилання початковий фокус втрачається при завантаженні сторінки, і ви також помітите, що вкладки через випадаючі меню також ламаються при використанні Link. NavLink це виправляє.
DJNorris

Відповіді:


137

Офіційна документація ясна:

<NavLink>

Спеціальна версія, <Link>яка додасть атрибути стилю до відтвореного елемента, коли він відповідає поточній URL-адресі.

Таким чином, відповідь - НІ . Інших причин, крім згаданої, немає.


42

Коли вам потрібно використовувати атрибути стилю або класу на active <Link>, тоді ви можете використовувати<NavLink>

Подивимось приклад:

Посилання

<Link to="/">Home</Link>

NavLink

<NavLink to="/" activeClassName="active">Home</NavLink>

7

Компонент посилання

Він використовується для створення посилань, які дозволяють здійснювати навігацію за різними URL-адресами. Коли ми натискаємо будь-яке конкретне посилання , воно повинно завантажувати сторінку, яка пов’язана з цим шляхом, не перезавантажуючи сторінку. Приклад:

введіть тут опис зображення

Компонент NavLink:

Якщо ми хочемо додати кілька стилів до Посилання. Таким чином, коли ми натискаємо будь-яке конкретне посилання, можна легко визначити, яке посилання активне. Для цієї реакції маршрутизатор забезпечує NavLink замість Link . Тепер замініть Link з Navlink і додайте властивості activeStyle . Ці activeStyle властивості означають , коли ми натискаємо на посилання, вона повинна бути виділена з різним стилем , так що ми можемо розрізняти , який канал зв'язку в даний момент. Приклад:

введіть тут опис зображення

Посилання: https://www.javatpoint.com/react-router


5

Просто, коли ви використовуєте, для вибраного елемента <Link>немає активного класу.
На відміну від <NavLink>цього, виділений елемент виділено, оскільки до цього елемента додано активний клас.
Сподіваюся, корисний для вас.


Деякий зразок коду допоможе користувачам. З відгуку
Вайбхав Вішал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.