React Router v4 <NavLink> ve <Link> avantajları


94

NavLink'te bir "activeClassName" ve "activeStyle" ayarlayabilmenin yanı sıra, sitenizdeki navigasyon dışı öğelerde (yani üstbilgi veya alt bilgide ana gezinme değil) diğer rotalara bağlantılar oluştururken Bağlantı üzerinden NavLink'i kullanmak için herhangi bir neden var mı? aktif bir duruma / sınıfa ihtiyaç duymayan?


4
Doğrudan TOUMI'ye yorum yapamam (çünkü 50rep'im yok), bu yüzden buraya ekleyeceğim. NavLinkerişilebilirlik için sayfaya doğru odaklanmayı sağlar. Bağlantı kullanılırken, sayfa yüklenirken ilk odak kaybolur ve ayrıca açılır menüler arasında sekmenin de kullanım sırasında bozulduğunu fark edeceksiniz Link. NavLink bunu düzeltir.
DJNorris

Yanıtlar:


137

Resmi belgeler açık:

<NavLink>

<Link>Mevcut URL ile eşleştiğinde oluşturulan öğeye stil nitelikleri ekleyen özel bir sürümü .

Dolayısıyla cevap HAYIR . Bahsedilen dışında başka sebep yok.


42

Etkin durumda stil veya sınıf niteliklerini kullanmanız gerektiğinde <Link>,<NavLink>

Örneğe bakalım:

Bağlantı

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

NavLink

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

7

Bağlantı Bileşeni

Farklı URL'lerde gezinmeye izin veren bağlantılar oluşturmak için kullanılır ve bu belirli Bağlantılardan herhangi birine tıkladığımızda , sayfayı yeniden yüklemeden o yolla ilişkili sayfayı yüklemelidir. Misal:

görüntü açıklamasını buraya girin

NavLink Bileşeni:

Bağlantıya bazı stiller eklemek istiyoruz . Böylece herhangi bir bağlantıya tıkladığımızda, hangi Bağlantının etkin olduğu kolayca belirlenebilir. Bu tepki için yönlendirici, Link yerine NavLink sağlar . Şimdi Navlink'ten Link'i değiştirin ve activeStyle özelliklerini ekleyin . ActiveStyle özellikleri biz Bağlantı'daki tıkladığınızda şu anda aktif olduğu bağlantı ayırt böylece, farklı tarzı ile vurgulanmış olmalıdır demek istiyorum. Misal:

görüntü açıklamasını buraya girin

Referans: https://www.javatpoint.com/react-router


5

Kullandığınızda Basitçe, <Link>hiç yok aktif seçilen elemana sınıfı.
Bunun aksine, <NavLink>seçilen eleman ile vurgulanır çünkü bu eleman aktif bir sınıf eklendi.
Sizin için yararlı olmasını umuyoruz.


Bazı kod örnekleri kullanıcılara yardımcı olacaktır. Yorumdan
Vaibhav Vishal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.