logo

BrowserRouter Reactissa

React Router on vakiokirjasto Reactin reitittämiseen. Se mahdollistaa navigoinnin React-sovelluksen eri komponenttien näkymien välillä, sallii selaimen URL-osoitteen muuttamisen ja pitää käyttöliittymän synkronoituna URL-osoitteen kanssa.

Ymmärtääksemme, kuinka React Router toimii, luodaan yksinkertainen sovellus Reactille. Sovellus sisältää koti-, tieto- ja yhteystiedot. Käytämme React Routeria navigoidaksemme näiden komponenttien välillä.

npx Create-React-app

BrowserRouter Reactissa

Kehitysympäristösi on valmis. Asennataan nyt React Router sovellukseemme.

React Router : React Router voidaan asentaa React-sovellukseesi npm:n kautta. Noudata alla olevia ohjeita asettaaksesi reitittimen React-sovelluksessasi:

Vaihe 1: CD-levy projektihakemistossasi, ts ., java.

Vaihe 2: Asenna React Router käyttämällä seuraavaa komentoa:

npm install - -save react-router-dom

BrowserRouter Reactissa

Kun olet asentanut react-router-dom, lisää sen komponentit React-sovellukseesi.

React-reitittimen komponenttien lisääminen:

React Routerin pääkomponentit ovat:

    BrowserRouter:BrowserRouter on reitittimen toteutus, joka käyttää HTML5-historiasovellusliittymää (pushstate-, korvaustila- ja popstate-tapahtumat) pitämään käyttöliittymäsi synkronoituna URL-osoitteen kanssa. Se on pääkomponentti, jota käytetään kaikkien muiden komponenttien tallentamiseen.Reitti:Tämä on v6:ssa esitelty uusi komponentti ja komponentin päivitys. Switch Over Routes -reittien tärkeimmät edut ovat:

Sen sijaan, että kulkisi peräkkäin, reitit valitaan parhaan osuman perusteella.

    Reitti: Reitti on ehdollisesti näytettävä komponentti, joka tarjoaa käyttöliittymän, kun sen polku vastaa nykyistä URL-osoitetta.Linkit: Linkit-komponentti luo linkkejä eri reiteille ja toteuttaa navigoinnin sovelluksen ympärillä. Se toimii HTML-ankkuritunnisteena.

Jos haluat lisätä React Router -komponentteja sovellukseesi, avaa projektihakemistosi käyttämässäsi editorissa ja siirry app.js-tiedostoon. Lisää nyt alla oleva koodi app.js-tiedostoon.

 import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; 

Huomautus: BrowserRouter on alias Router.

React Routerin käyttäminen: Käyttääksesi React Routeria, luodaan ensin joitakin komponentteja React-sovelluksessa. Luo projektihakemistoosi kansio nimeltä komponentit src-kansioon ja lisää nyt komponenttien kansioon kolme tiedostoa nimeltä home.js, about.js ja contact.js.

java-kuplalajittelu
BrowserRouter Reactissa

Lisätäänpä koodia kolmeen osaamme:

Home.js:

 import React from 'react'; function Home (){ return } export default Home; 

About.js:

 import React from &apos;react&apos;; function About () { return <h2> jAVAtPOINT is a computer science portal for TUTORIALS!</h2> Read more about us at : <a href="https://www.javatpoint.in/about/"> https://www.javatpoint.in/about/ </a> } export default About; 

Contact.js:

 import React from &apos;react&apos;; function Contact (){ return You can find us here: <br> Javatpoint <br> G-13, second floor, Sector -3 Noida <br> Noida, Uttar Pradesh (201305) } export default Contact; 

Sisällytetään nyt React Router -komponentit sovellukseen:

BrowserRouter : Lisää aliasoitu BrowserRouter reitittimeksi app.js-tiedostoosi kääriäksesi kaikki muut komponentit. BrowserRouter on pääkomponentti ja sillä voi olla vain yksi lapsi.

mysql luo käyttäjä
 class App extends Component { render() { return ( ); } } 

Linkit: Luokaamme nyt komponenttiemme linkit. Linkki-komponentti käyttää rekvisiittaa kuvaamaan sijaintia, johon linkin tulee navigoida.

 <ul> <li> Home </li> <li> About Us </li> <li> Contact Us </li> </ul> 

Suorita nyt sovelluksesi paikallisessa isännässä ja napsauta luotua linkkiä. Huomaat, että URL-osoitteet muuttuvat linkkikomponentin arvon mukaan.

BrowserRouter Reactissa

Reitti : Reittikomponentti auttaa meitä luomaan linkin komponentin käyttöliittymän ja URL-osoitteen välille. Jos haluat sisällyttää reitin sovellukseen, lisää alla oleva koodi app.js-tiedostoosi.

 <route exact path="/" element="{}"> <route exact path="/about" element="{}"> <route exact path="/contact" element="{}"> </route></route></route>

Komponentit on nyt yhdistetty, ja minkä tahansa linkin napsauttaminen näyttää vastaavan komponentin. Yritetään nyt ymmärtää juurikomponenttiin liittyvät rekvisiitta.

    Tarkka: Tämä vastaa tarkasti URL-osoitteen arvoa. Esimerkiksi tarkka polku='/about' hahmontaa komponentin vain, jos se vastaa täsmälleen polkua, mutta jos poistamme sen syntaksista, käyttöliittymä hahmonnetaan silti, vaikka rakenne olisi /about /10.Polku: Polku määrittää polun nimen, jonka määritämme komponentillemme.
  1. Elementti viittaa komponenttiin, joka hahmonnetaan, jos polku täsmää.

Huomautus: Oletuksena reitit ovat osallisia, mikä tarkoittaa, että useampi kuin yksi reittikomponentti voi vastata URL-polkua ja hahmontaa samanaikaisesti. Jos haluamme hahmontaa yhden komponentin, meidän on käytettävä reittejä tässä.

Reitit : Jos haluat lukea yksittäisen osan, kääri kaikki reitit Reitit-komponentin sisään.

 <route exact path="/" element="{}"> <route exact path="/about" element="{}"> <route exact path="/contact" element="{}"> </route></route></route>

Vaihda ryhmiä useille reiteille, iteroi niitä ja löydä ensimmäinen, joka vastaa polkua. Siten polun vastaava komponentti renderöidään.

Tässä on täydellinen lähdekoodimme kaikkien komponenttien lisäämisen jälkeen:

 import React, { Component } from &apos;react&apos;; import { BrowserRouter as Router,Routes, Route, Link } from &apos;react-router-dom&apos;; import Home from &apos;./component/home&apos;; import Contact from &apos;./component/contact&apos;; import About from &apos;./component/about&apos;; import &apos;./App.css&apos;; class App extends Component { render() { return ( <ul classname="App-header"> <li> Home </li> <li> About Us </li> <li> Contact Us </li> </ul> <route exact path="/" element="{}"> <route exact path="/about" element="{}"> <route exact path="/contact" element="{}"> ); } } export default App; </route></route></route>

Nyt voit napsauttaa linkkiä ja selata eri osia. React Router pitää sovelluksesi käyttöliittymän synkronoituna URL-osoitteen kanssa.

Lopuksi olemme onnistuneesti ottaneet käyttöön navigoinnin React-sovelluksessamme React Routerin avulla.

A, joka käyttää HTML5-historiasovellusliittymää (pushstate-, korvaustila- ja popstate-tapahtumat) pitämään käyttöliittymäsi synkronoituna URL-osoitteen kanssa.

 

perusnimi: merkkijono

Kaikkien sijaintien perus-URL-osoite. Jos sovelluksesi tarjotaan palvelimesi alihakemistosta, haluat asettaa sen kyseiseen alihakemistoon. Oikein muotoillun perusnimen tulee sisältää vinoviiva, mutta ei perässä olevaa kauttaviivaa.

 // renders  // renders <a href="tmp//calendar/tomorrow"> ... </a>

getUserConfirmation: func

Toiminto, jota käytetään navigoinnin vahvistamiseen. Oletuksena käytetään window.confirm-toimintoa.

 { // this is the default behavior const allowTransition = window.confirm(message); callback(allowTransition); }} /&gt; 

forceRefresh: bool

Jos tosi, reititin käyttää koko sivun päivityksiä sivulla. Haluat ehkä käyttää tätä jäljittelemään sitä, kuinka perinteinen palvelimen hahmontama sovellus toimisi koko sivun päivityksellä sivulla navigoinnin välillä.

 

avaimen pituus: numero

Sijainnin pituus. Avain. Oletusarvo on 6.

 

lapset: solmu- renderöitävä lapsielementti.

Huomautus: Reactissa sinun on käytettävä yhtä alielementtiä, koska renderöintimenetelmä ei voi palauttaa useampaa kuin yhtä elementtiä. Jos tarvitset useamman kuin yhden elementin, voit yrittää kääriä ne lisä- tai .

A, joka käyttää URL-osoitteen hash-osaa (eli window.location.hash) pitämään käyttöliittymäsi synkronoituna URL-osoitteen kanssa.

govinda näyttelijä

Huomaa: hash ei tue historian sijaintia. Avain tai sijainti. Osavaltio. Aiemmissa versioissa yritimme vähentää toimintaa, mutta oli reunatapauksia, joita emme pystyneet ratkaisemaan. Mikään koodi tai laajennus, joka vaatii tätä toimintaa, ei toimi.

Koska tämä tekniikka on tarkoitettu tukemaan vain vanhempia selaimia, suosittelemme, että määrität palvelimesi toimimaan sen sijaan.

 

perusnimi: merkkijono

Kaikkien sijaintien perus-URL-osoite. Oikein muotoillussa perusnimessä tulee olla kauttaviiva, mutta ei perässä olevaa kauttaviivaa.

 // renders <a href="#/calendar/today"> </a>

getUserConfirmation: func

Toiminto, jota käytetään navigoinnin vahvistamiseen. Oletuksena käytetään window.confirm-toimintoa.

 { // this is the default behavior const allowTransition = window.confirm(message); callback(allowTransition); }} /&gt; 

hashType: merkkijono

Käytetty koodaus window.location.hash . Käytettävissä olevat arvot ovat:

  • 'slash' - luo tiivisteitä, kuten #/ ja #/sunshine/lllipops
  • 'noslash' - # ja #auringonpaiste/tikkurit . kuten hash luo
  • 'hashbang' - luo 'ajax crawlable' (googlen käytöstä poistama) tiivisteitä, kuten #!/ ja #!/sunshine/lollipops

Oletusarvo on 'vinoviiva'.

lapset: solmu

Yksi hahmonnettava alielementti.

Tarjoaa ilmoittavan, helppokäyttöisen navigoinnin sovelluksesi ympärillä.

 About 

to: merkkijono

Linkin sijainnin merkkijonoesitys luodaan yhdistämällä sijainnin polun nimi, haku ja hajautusominaisuudet.

 

Objekti, jolla voi olla jokin seuraavista ominaisuuksista:

    polun nimi: Merkkijono, joka edustaa linkitettävää polkua.löytö: Kyselyparametrin merkkijonoesitys.hash:URL-osoitteeseen lisättävä tiiviste, esim. #A-hash.osavaltio: Tila pysyy paikallaan.
 

vastaanottajalle: func

Funktio, jossa nykyinen sijainti välitetään argumenttina ja jonka on palautettava sijaintiesitys merkkijonona tai objektina.

 ({ ...location, pathname: &apos;/courses&apos; })} /&gt; `${location.pathname}?sort=name`} /&gt; 

korvaa: bool

Kun tosi, linkin napsauttaminen korvaa nykyisen merkinnän uuden lisäämisen sijaan

 entry to the history stack. 

sisäinen viite: funk

React Router 5.1:stä lähtien, jos käytät React 16:ta, sinun ei pitäisi tarvita tätä tukia, koska välitämme viitteen taustalla olevalle . Käytä sen sijaan tavallista viitettä.

Mahdollistaa pääsyn komponentin sisäänrakennettuun viitenumeroon.

ääretön silmukka
 { // `node` refers to the mounted DOM element // or null when unmounted }} /&gt; 

innerRef: RefObject

React Router 5.1:stä lähtien, jos käytät React 16:ta, sinun ei pitäisi tarvita tätä tukia, koska välitämme viitteen taustalla olevalle . Käytä sen sijaan tavallista viitettä.

Hanki komponentin taustalla oleva viite käyttämällä React.createRef.

 let anchorRef = React.createRef() 

komponentti: React.Component

Jos haluat hyödyntää omaa navigointikomponenttiasi, voit tehdä sen kuljettamalla sen komponenttipotkun läpi.

 const FancyLink = React.forwardRef(({ navigate, ...props }, ref) =&gt; { return ( <a ref="{ref}" {...props} onclick="{handleClick}">&#x1F485; {props.children} ) }) </a>

Voit myös välittää rekvisiitta, jonka haluat olla mukana kuten otsikko, tunnus, luokan nimi jne.

Erityinen versio siitä lisää tyyliattribuutteja renderöityyn elementtiin, jos se vastaa olemassa olevaa URL-osoitetta.

 About 

luokannimi: merkkijono | func

className voi olla joko merkkijono tai funktio, joka palauttaa merkkijonon. Jos käytetään funktiota className, linkin aktiivinen tila välitetään parametrina. Tästä on hyötyä, jos haluat käyttää luokan nimeä yksinomaan passiiviseen linkkiin.

 &apos;nav-link&apos; + (!isActive ? &apos; unselected&apos; : &apos;&apos;) } &gt; 

UKK

React Router v6:ssa activeClassName poistetaan, ja sinun tulee käyttää funktiota className luokan nimen käyttämiseen aktiivisiin tai ei-aktiivisiin NavLink-komponentteihin.

ActiveClassName: merkkijono

luokka antaa elementin, kun se on aktiivinen. Oletuksena annettu luokka on aktiivinen. Se yhdistetään luokkanimen rekvisiittiin.

java lisäyslajittelu
 

tyyli: esine | func

tyyli voi olla joko React.CSSSProperties-objekti tai funktio, joka palauttaa tyyliobjektin. Jos funktiotyyliä käytetään, linkin aktiivinen tila välitetään parametrina.

 ({ color: isActive ? &apos;green&apos; : &apos;blue&apos; })} &gt; 

React Router v6:ssa aktiivinen tyyli poistetaan, ja sinun on käytettävä funktiotyyliä sisällyttääksesi tyylejä aktiivisiin tai ei-aktiivisiin NavLink-komponentteihin.

Aktiivinen tyyli: Objekti

Tyylit, joita sovelletaan elementtiin, kun se on aktiivinen.

 <navlink to="/faq" activestyle="{{" fontweight: 'bold', color: 'red' }} < pre> <h3>exact: bool</h3> <p>When true, the active class/style will only apply if the location is an exact match.</p> <pre> Profile </pre> <h3>strict: bool</h3> <p>If true, the trailing slash on a location&apos;s pathname will be considered when determining whether the location matches the current URL. See the documentation for more details.</p> <pre> Events </pre> <h3>isActive: func</h3> <p>A function to add additional logic to determine if the Link is active. This should be used when you want to do more than verify that the pathname of the Link matches the pathname of the current URL.</p> <pre> { if (!match) { return false; } // only consider an event active if its event id is an odd number const eventID = parseInt(match.params.eventID); return !isNaN(eventID) &amp;&amp; eventID % 2 === 1; }} &gt; Event 123 </pre> <h3>location: object</h3> <p>isActive Compares to the current history location (usually the current browser URL).</p> <h3>aria-current: string</h3> <p> <strong>The value of the area-current attribute used on the active Link. Available values are:</strong> </p> <ul> <li>&apos;page&apos; - used to indicate a link within a set of pagination links</li> <li>&apos;Steps&apos; - used to indicate a link within the step indicator for a step-based process</li> <li>&apos;location&apos; - used to indicate an image that is visually highlighted as the current component of the flow chart</li> <li>&apos;date&apos; - used to indicate the current date within the calendar</li> <li>&apos;time&apos; - used to indicate the current time within a timetable</li> <li>&apos;true&apos; - used to indicate whether NavLink is active</li> <li>&apos;false&apos; - used to prevent assistive technologies from reacting to the current Link (one use case would be to prevent multiple area-current tags on a page)</li> </ul> <hr></navlink>

tiukka: bool

Jos tosi, sijainnin polun nimen lopussa oleva vinoviiva otetaan huomioon määritettäessä, vastaako sijainti nykyistä URL-osoitetta. Katso lisätietoja dokumentaatiosta.

 Events 

isActive: func

Toiminto, joka lisää logiikkaa sen määrittämiseksi, onko linkki aktiivinen. Tätä tulisi käyttää, kun haluat tehdä muutakin kuin varmistaa, että linkin polkunimi vastaa nykyisen URL-osoitteen polkunimeä.

 { if (!match) { return false; } // only consider an event active if its event id is an odd number const eventID = parseInt(match.params.eventID); return !isNaN(eventID) &amp;&amp; eventID % 2 === 1; }} &gt; Event 123 

sijainti: esine

isActive Vertaa nykyiseen historian sijaintiin (yleensä nykyiseen selaimen URL-osoitteeseen).

aria-virta: merkkijono

Aktiivisessa linkissä käytetyn area-current-attribuutin arvo. Käytettävissä olevat arvot ovat:

  • 'sivu' - käytetään osoittamaan linkki joukossa sivutuslinkkejä
  • 'Vaiheet' - käytetään osoittamaan linkki vaiheittaisen prosessin vaiheilmaisimen sisällä
  • 'sijainti' - käytetään osoittamaan kuvaa, joka on visuaalisesti korostettu vuokaavion nykyisenä komponenttina
  • 'päivämäärä' - käytetään osoittamaan nykyinen päivämäärä kalenterissa
  • 'aika' - käytetään osoittamaan nykyinen aika aikataulussa
  • 'true' - käytetään osoittamaan, onko NavLink aktiivinen
  • 'false' - käytetään estämään avustavia tekniikoita reagoimasta nykyiseen linkkiin (yksi käyttötapaus olisi estää useita nykyisen alueen tunnisteita sivulla)