react 路由的實現過程,聽說現在用react的比較多

react–路由

下載(網頁版) yarn add react-router-dom
官網 :https://reacttraining.com/react-router/
2 路由的模式mode :BrowserRouter–歷史記錄模式 HashRouter—hash模式

3 Router 入口文件index.js 文件 App 需要加r 其他的不加r



(exact)

react路由切換的組件有三個重要的屬性

**1 location ---pathname search  state(undefined) --要想獲取到
2 match-- params-- this.props.match.params.變量  (取路由參數) params默認值是一個空對象
3 history--push  go  replace  listen編程式導航的方法

<Route path=“路徑” render={()=>{return <組件{…props}>}}>**

4 Link 沒有選擇後的樣式 ,NavLink有樣式
xxx
xx 默認的類名 active 也可以改變 activeClassName
activeClassName=“selected” 可以更改NavLink選中後的類名
Switch 是渲染的匹配的第一個

5 Redirect 重定向

6 404頁面

7 <Route path=’/xx’ render={(props)=>{
return <組件 {…props} /> 意思是: 根據條件渲染不同的組件,可以做權限路由的效果
}}>

8 權限

9 withRouter 可以讓不是路由切換的組件也擁有路由的三個屬性
是一個高階組件HOC–屬性代理 和反向繼承
10 監控路由的組件變化 --this.props.history.listen((location)=>{監聽location.pathname})
11 向路由切換 的組件傳多個值
<Link to={{pathname:“路徑”,state:{key:value,…}}}
this.props.location.state // (state默認是undefined)
編程式導航傳遞多個值 this.props.history.push(path,state)

12 兄弟組件傳值 pubsub-js
yarn add pubsub-js
PubSub.subscribe(“事件名”,(evtName,data)=>{ })
PubSub.publish(“事件名”,數據)

13 受控組件 和非受控組件
onChange事件 value受到onChange 的控制
受控組件可以添加id來進行區分相同的onChange事件,e.target.id

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章