您好,登錄后才能下訂單哦!
這篇文章主要講解了“React Router怎么使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“React Router怎么使用”吧!
路由最初是出現(xiàn)在后端中,后端根據(jù)不同的路由返回不同的頁面,后來隨著單頁面應(yīng)用(SPA)誕生,前端也出現(xiàn)了路由,實(shí)現(xiàn)了不用刷新頁面就可以更新頁面的效果。
簡單的說,「路由就是URL到函數(shù)的映射」。路由的本質(zhì)是「監(jiān)聽URL的變化,然后匹配路由規(guī)則,顯示相應(yīng)的頁面?!?/strong>
在React-Router中,路由使用基本如下所示。
<Router>
<Route path="/" component={Index} />
<Route path="/hello" component={Hello}/>
<Route path="/404" component={Error}/>
...
</Router>
每一條<Route>
就是一條路由,其中包括當(dāng)前路徑和映射的URL。<Router>
類似一個(gè)容器,里邊包裹著一條條的路由。
服務(wù)器端會接受到客戶端的http請求,根據(jù)請求中的URL,找到響應(yīng)的映射函數(shù),然后執(zhí)行該函數(shù),向返回的值發(fā)送給客戶端。
在Express中如下:
app.get('/', (req, res) => {
res.sendFile('index')
})
在客戶端,路由的映射函數(shù)通常是進(jìn)行一些DOM的顯示和隱藏操作。目前前端的實(shí)現(xiàn)方式有兩種,「Hash模式和History模式」。
#
及后邊的部分是hash,向服務(wù)端發(fā)送請求的時(shí)候,hash部分不會發(fā)送出去。history.pushState
和
history.replaceState
改變URL。兩種方法的比較:
#
后的內(nèi)容,History可以通過API設(shè)置任意的同源URL;index.html
用于匹配不到資源的時(shí)候(返回index)頁面。上邊所以說的都是靜態(tài)路由,除此之外還有動態(tài)路由。比如,當(dāng)我們登陸github時(shí),url是https://www.github.com/Bzsheng
。人家肯定不可能為每個(gè)用戶創(chuàng)建一條路由,這時(shí)候就是創(chuàng)建一條動態(tài)的路由,形如/:id
來實(shí)現(xiàn)的,當(dāng)我登陸的時(shí)候,將參數(shù)Bzsheng
傳遞過去,從而獲取到頁面。
Express中:
app.get('/user/:id', (req, res) => {
...
})
Next.js中:
// page/posts/[id].js
export function getStaticPaths { ... }
export function getStaticProps({ params }) { ... }
React-Router中:
<Router>
<Route path="/user/:id" />
</Router>
感謝各位的閱讀,以上就是“React Router怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對React Router怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。