国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

React-router v4 路由配置方法小結(jié)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:33:00
文檔

React-router v4 路由配置方法小結(jié)

React-router v4 路由配置方法小結(jié):本文主要介紹了React-router v4 路由配置方法小結(jié),分享給大家,也給自己留個(gè)筆記 一. Switch 、Router 、Route三者的區(qū)別 1、Route Route 是建立location 和 ui的最直接聯(lián)系 2、Router react-router v4 中,Router被拆分成了S
推薦度:
導(dǎo)讀React-router v4 路由配置方法小結(jié):本文主要介紹了React-router v4 路由配置方法小結(jié),分享給大家,也給自己留個(gè)筆記 一. Switch 、Router 、Route三者的區(qū)別 1、Route Route 是建立location 和 ui的最直接聯(lián)系 2、Router react-router v4 中,Router被拆分成了S

本文主要介紹了React-router v4 路由配置方法小結(jié),分享給大家,也給自己留個(gè)筆記

一. Switch 、Router 、Route三者的區(qū)別

1、Route

Route 是建立location 和 ui的最直接聯(lián)系

2、Router

react-router v4 中,Router被拆分成了StaticRouter、MemoryRouter、BrowserRouter、HashRouter、NativeRouter。

MemoryRouter、BrowserRouter、HashRouter 等于

import { Router } from 'react-router'
<!--這里可以有三種-->
<!--history 部分源碼
exports.createBrowserHistory = _createBrowserHistory3.default;
exports.createHashHistory = _createHashHistory3.default;
exports.createMemoryHistory = _createMemoryHistory3.default;
-->
import createBrowserHistory from 'history/createBrowserHistory'
//
const history = createBrowserHistory()

<Router history={history}>
 <App/>
</Router>

NativeRouter(給rn使用的)

A <Router> for iOS and Android apps built using React Native.

這里新增strict 和 exact

使用了strict location 大于等于path才能匹配,eq path='/one' location='/one/a'能匹配。

使用了exact location 約等于 path 才能匹配,eq path='/one' location='/one'或者 '/one/'能匹配,所以說(shuō)是約等于。

使用了exact 和 strict location = path才能匹配

StaticRouter(后續(xù)補(bǔ)充)

3、Switch

這是v4版本中新添加,主要用來(lái)做唯一匹配的功能。就是想要在眾多路由中只匹配其中一個(gè)路由。

二、v4 版本中路由應(yīng)該如何配置呢?

1.基本配置(這個(gè)和v3中基本一致,效果也基本一樣)

匹配 <= location eq.( /b => / + /b ) ( / => / )

 <BrowserRouter forceRefresh={!supportsHistory} keyLength={12}>
 <div>
 <Route path="/" component={aContainer} />
 <Route path="/b" component={bContainer} />
 </div>
 </BrowserRouter>

2.含Switch 配置

匹配 <= location eq.( /b => /b ) ( / => / ) 唯一匹配

 <BrowserRouter forceRefresh={!supportsHistory} keyLength={12}>
 <Switch>
 //這里用exact,僅僅是擔(dān)心location被 path='/'截胡了。
 <Route exact path="/" component={aContainer} />
 <Route path="/b" component={bContainer} />
 </Switch>
 </BrowserRouter>

問(wèn)題(三個(gè)問(wèn)題)

1.如何設(shè)置公共的Component

第一種方式

 <BrowserRouter forceRefresh={!supportsHistory} keyLength={12}>
 <div>
 <Route path="/" component={aContainer} />
 <Route path="/b" component={bContainer} />
 </div>
 </BrowserRouter>

第二種方式(父子嵌套)

 <BrowserRouter forceRefresh={!supportsHistory} keyLength={12}>
 <div >
 <Route path="/" component={aContainer} />
 <Route path="/b" component={Parent} />
 {/* {app()} */}
 </div>
 </BrowserRouter>
const Parent = ({ match }) => (
 <div>
 <Route path={`${match.url}/`} component={bContainer} />
 <Route path={`${match.url}/c`} component={cContainer} />
 <Route path={`${match.url}/d`} component={dContainer} />
 </div>
);

這種情況 bContainer就是是公用的Component

2.如何設(shè)置getComponent,按需加載

另一篇文章 

3.是否有簡(jiǎn)化寫法

npm install --save react-router-config

第一步 配置路由

const routes = [
 { component: bContainer,
 routes: [
 { path: '/',
 exact: true,
 component: bContainer
 },
 { path: '/b/b',
 component: bContainer,
 routes: [
 { path: '/b/b/b',
 component: bContainer
 }
 ]
 }
 ]
 }
]

第二步 設(shè)置路由

<BrowserRouter forceRefresh={!supportsHistory} keyLength={12}>
 <div >
 {renderRoutes(routes)}
 </div>
 </BrowserRouter>

第三步 需要在container的render中去調(diào)用方法

 <div>
 1111
 {renderRoutes(this.props.route.routes)}
</div>

這個(gè)優(yōu)勢(shì)是可以統(tǒng)一配置,劣勢(shì)是需要在container中統(tǒng)一調(diào)用,但是這個(gè)抽出來(lái)統(tǒng)一實(shí)現(xiàn),問(wèn)題也不大,并且還可以解決 問(wèn)題一。

這個(gè)renderRoutes實(shí)際是就是用一層Switch和多個(gè)Route來(lái)包了一層。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

React-router v4 路由配置方法小結(jié)

React-router v4 路由配置方法小結(jié):本文主要介紹了React-router v4 路由配置方法小結(jié),分享給大家,也給自己留個(gè)筆記 一. Switch 、Router 、Route三者的區(qū)別 1、Route Route 是建立location 和 ui的最直接聯(lián)系 2、Router react-router v4 中,Router被拆分成了S
推薦度:
標(biāo)簽: 路由 路由配置 總結(jié)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 精品国产综合区久久久久99 | 99久久99这里只有免费的精品 | 中文字幕免费观看 | 成人一级免费视频 | 国产福利视精品永久免费 | 免费在线一级毛片 | 一区二区三区在线免费视频 | 欧美色亚洲图 | 免费看全黄特黄毛片 | 成人精品第一区二区三区 | 国内精品视频在线播放 | 久久国产午夜一区二区福利 | 亚洲一区二区三区高清 | 国产成人手机在线好好热 | 欧美激情在线播放一区二区三区 | 欧美日韩一区二区三区四区 | 亚洲第一视频网站 | 狠狠色狠狠色综合日日不卡 | 日本韩国欧美一区 | 欧美日韩亚洲综合另类ac | 国产欧美在线视频免费 | 国产性做久久久久久 | 欧美aⅴ在线 | 国产亚洲一区二区三区不卡 | 亚洲欧美日韩综合在线播放 | 日韩一区二区免费视频 | 国产精品久久久久一区二区 | 亚洲精品制服丝袜二区 | 国产一区二区三区成人久久片 | 精品在线免费视频 | 日韩精品亚洲电影天堂 | 日韩一区二区在线免费观看 | 日韩毛片在线影视 | 国产区免费在线观看 | 日韩精选 | 视频一区久久 | 久久国产精品视频 | 精品一区二区三区五区六区七区 | 欧美日韩国产一区 | 精品久久中文网址 | 欧美极品在线视频 |