這篇文章主要講解了“React Router怎么使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“React Router怎么使用”吧!

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、裕華ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的裕華網(wǎng)站制作公司
路由最初是出現(xiàn)在后端中,后端根據(jù)不同的路由返回不同的頁面,后來隨著單頁面應(yīng)用(SPA)誕生,前端也出現(xiàn)了路由,實(shí)現(xiàn)了不用刷新頁面就可以更新頁面的效果。
簡單的說,「路由就是URL到函數(shù)的映射」。路由的本質(zhì)是「監(jiān)聽URL的變化,然后匹配路由規(guī)則,顯示相應(yīng)的頁面。」
在React-Router中,路由使用基本如下所示。
<Router>
<Route path="/" component={Index} />
<Route path="/hello" component={Hello}/>
<Route path="/404" component={Error}/>
...
</Router>
每一條<Route>就是一條路由,其中包括當(dāng)前路徑和映射的URL。<Router>類似一個容器,里邊包裹著一條條的路由。
服務(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ā)送請求的時候,hash部分不會發(fā)送出去。history.pushState和
history.replaceState改變URL。兩種方法的比較:
#后的內(nèi)容,History可以通過API設(shè)置任意的同源URL;index.html用于匹配不到資源的時候(返回index)頁面。上邊所以說的都是靜態(tài)路由,除此之外還有動態(tài)路由。比如,當(dāng)我們登陸github時,url是https://www.github.com/Bzsheng。人家肯定不可能為每個用戶創(chuàng)建一條路由,這時候就是創(chuàng)建一條動態(tài)的路由,形如/:id來實(shí)現(xiàn)的,當(dāng)我登陸的時候,將參數(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)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
新聞名稱:ReactRouter怎么使用
網(wǎng)頁鏈接:http://www.chinadenli.net/article2/pgdgoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)