react路由

一:路由倆種模式
1:BrowserRouter:( 會出先404url不存在朝卒,在html可以跳是偽url,解決: historyApiFallback:ture 強制頁面訪問index.html)
2:HasHRouter:只存在客戶端,存在服務(wù)端會被忽略(使用查詢字符串search)

基本用法

main組件:

import React from 'react'
import ReactDom from 'react-dom'
import Router from "./router/index"
ReactDom.render(<Router />,document.getElementById("root"))

Router/Index組件:

import React from "react"
import {
  // HashRouter as Router
  BrowserRouter as Router,
  Route,
  Switch,(Switch:只渲染出第一個與當(dāng)前訪問地址匹配的 <Route> 或 <Redirect>)
  Link翎蹈,
  NavLink   //與link用法一樣汞舱,區(qū)別是可以添加高亮宇驾,在樣式中定義.active即可
} from "react-router-dom"
const bg=()=>{
    return <div>
     <h1>hello 北京</h1> 
   
    </div>
    }

const tj=({match,location})=>{
    console.log(match,location)
    return <div>
     <h1>hello天津</h1>  
     <p>{JSON.stringify(location.data)}</p>
     </div>
    }

const baseRouter=()=>{
 return (
    <Router>
        <div>
        <Link to="/bj">北京</Link>
       
        <Link to={{pathname:'/tj',data:{a:1,b:2}}}>天津</Link>
        <Switch> 
        <Route exact path="/" component={bg}/>
        <Route path="/bj" component={bg}/>
        <Route path="/tj" component={tj}/>
        </Switch>
        </div>
 </Router>
      )
    }  
    export default  baseRouter

Switch:只渲染出第一個與當(dāng)前訪問地址匹配的 <Route> 或 <Redirect>

route的props的三個屬性(參數(shù)):
match
location
history

exact :精準(zhǔn)匹配

replace:替換路徑湿故,不會再history中留下記錄,表現(xiàn)就是返回的時候直接返回上上一層
<Link to="/courses" replace />

Readirect重定向當(dāng)前路由

  <Route path="/priate" render={()=>{
                return <Redirect to="/paper"/>
            }}></Route> 

路由傳參

方法1:(在link中傳參)


1.png

1.png

1.png

方法2:(在route中傳參)


1.png

1.png

1.png

路徑語法:

<Route path="/hello/:name">   // 匹配 /hello/michael 和 /hello/ryan
<Route path="/hello/:name?">       // 匹配 /hello, /hello/michael 和 /hello/ryan
<Route path="/files/*.*">           // 匹配 /files/hello.jpg 和 /files/path/to/hello.jpg

ps:(本文自寫)

import React from 'react';
import Login from '../component/login.jsx'
import {
    BrowserRouter as Router,
    Route,
    Link,
    NavLink,
    Switch
} from 'react-router-dom';
const priate=({match,location,history})=>{
    console.log(match,location,history)
    return <div>
    <p>
    青島又吹起了風(fēng)
    我一個人在海邊的夜里發(fā)抖
    忽然又想起我那荒唐又無聊的人生
    我努力偏離了航道
    終于捕捉到你的信號
    我曾經(jīng)傷害也曾經(jīng)被傷害
    現(xiàn)在只想停泊靠岸
    于是我丟掉了船
    燒掉了帆
    砍斷了我的桅桿
    回到那片熟悉的海灘</p>
    <p>{JSON.stringify(location.data)}</p>
    </div>
}
const paper=({match,location,history})=>{

    return <div>
    <p>
    你陪我步入蟬夏 越過城市喧囂
    歌聲還在游走 你榴花般的雙眸
    不見你的溫柔 丟失花間歡笑
    歲月無法停留 流云的等候</p>
    <p>{match.params.id}</p>
    </div>
}
const sunlight=()=>{
    return <div>
    <p>
    有道是 山間美
    最美不過是朝暉
    夜里涼 正午晃
    唯有清晨最舒暢
    有好事 成雙對
    張家二郎要婚配
    女兒家 在深閨
    嫁做新婦亦不悔
    容我細(xì)水長流斟茶一盞為君把歌歡
    莫要急不可待坐立難安杯水不喝完
    本想胡言亂語杜一撰再偷得半日閑
    </p>
    </div>
}
const alone=()=>{
    return <div>
    <p>
    那是一座看似遙遠(yuǎn)其實很近的山
    山里有個孤獨的人與孤獨作伴
    不要問我他的生活還有什么遺憾
    那年九月走的匆忙和飄散的花香
    每個 晚上 都會 幻想
    啦啦 啦啦 獨自 歌唱
    如果你也曾像我一樣在未知中等待
    等待著另一個孤獨的歌者的到來
    我已學(xué)會平靜對待生活中的無奈
    冷眼看待那些花兒的盛開與衰敗
    天黑 夜深 不要 絕望
    </p>
    </div>
}
const all=()=>{
    return <ul>
        <li><Link to="/all/captain">海盜船長</Link></li>
        <li><Link to="/all/love">紙短情長</Link></li>
        <li><Link to="/all/beauty">最美不過是朝暉</Link></li>
        <li><Link to="/all/singer">另一個孤獨的歌者</Link></li>
        <Route path="/all/:info" component={(props)=>{
            console.log(props)
          return  <p>url:{props.match.params.info}</p>
           
        }}></Route> 
    </ul>
  
}
export default ()=>{
    return(<Router>  
        <div>
            <NavLink to={{pathname:'/priate',data:{a:'我穿過峽谷又翻過雪山路過無人的戈壁灘'}}}>海盜船長</NavLink>{/* 此方法刷新傳的參就會消失 */}
 
            <NavLink to="/paper/1">紙短情長</NavLink>
            <NavLink to="/sunlight">最美不過是朝暉</NavLink>
            <NavLink to="/alone">另一個孤獨的歌者</NavLink>
            <NavLink to="/all">全部</NavLink>
            <Switch>
            <Route exact path="/"component={(props)=>{
                let timesTamp=+new Date();
                if(timesTamp%2){
                    //純組件
                    return priate(props)
                }else{
                    //常規(guī)組件
                    return <Login/>
                }
            }}></Route> 
            <Route path="/priate"component={priate}></Route> 
            <Route path="/paper/:id?"component={paper}></Route>
            <Route path="/sunlight"component={sunlight}></Route>
            <Route path="/alone"component={alone}></Route>
            <Route path="/all"component={all}></Route>  
            </Switch>
                 
        </div> 
        </Router>
     
      
    )
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堕澄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子处硬,更是在濱河造成了極大的恐慌小槐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荷辕,死亡現(xiàn)場離奇詭異凿跳,居然都是意外死亡,警方通過查閱死者的電腦和手機桐腌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門拄显,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人案站,你說我怎么就攤上這事躬审。” “怎么了蟆盐?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵承边,是天一觀的道長。 經(jīng)常有香客問我石挂,道長博助,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任痹愚,我火速辦了婚禮富岳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拯腮。我一直安慰自己窖式,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布动壤。 她就那樣靜靜地躺著萝喘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阁簸,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天爬早,我揣著相機與錄音,去河邊找鬼启妹。 笑死筛严,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翅溺。 我是一名探鬼主播脑漫,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咙崎!你這毒婦竟也來了优幸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤褪猛,失蹤者是張志新(化名)和其女友劉穎网杆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伊滋,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡碳却,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笑旺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昼浦。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筒主,靈堂內(nèi)的尸體忽然破棺而出关噪,到底是詐尸還是另有隱情,我是刑警寧澤乌妙,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布使兔,位于F島的核電站,受9級特大地震影響藤韵,放射性物質(zhì)發(fā)生泄漏虐沥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一泽艘、第九天 我趴在偏房一處隱蔽的房頂上張望欲险。 院中可真熱鬧,春花似錦匹涮、人聲如沸盯荤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春脚翘,著一層夾襖步出監(jiān)牢的瞬間灼卢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工来农, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鞋真,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓沃于,卻偏偏與公主長得像涩咖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子繁莹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為博主原創(chuàng)文章咨演,未經(jīng)博主允許不得轉(zhuǎn)載闸昨。 PS:轉(zhuǎn)載請注明出處作者:TigerChain地址:http...
    TigerChain閱讀 22,983評論 3 49
  • 一.路由的作用 搭建單頁面應(yīng)用 注意:如果使用了React或者Vue想處理SEO問題,將會變得麻煩一些薄风。 SEO:...
    waterte閱讀 604評論 0 0
  • <Route>組件有如下屬性: path(string): 路由匹配路徑饵较。(沒有path屬性的Route 總是會 ...
    艾剪疏閱讀 308評論 0 0
  • 一铃岔、依賴(Dependencies) 在一般 SPA 開發(fā)中石洗,路由的管理十分重要。作為 React 技術(shù)體系中的一...
    字節(jié)跳動技術(shù)團隊閱讀 2,677評論 0 4
  • 一懂酱、React路由: 實現(xiàn)單頁應(yīng)用的核心技術(shù)(單頁應(yīng)用 簡稱SPA) 路由原理參考資料: 二撇他、React路由實現(xiàn)有...
    Yaoxue9閱讀 341評論 0 0