react路由之路

2021-09-11 12:59:42 字數 1016 閱讀 5200

路由:就是讓不同的路徑來渲染不同的元件, 兩種實現方式

1、hashrouter:利用hash實現路由切換 

2、browserrouter:h5 api 實現路由的切換

複製**

"#/a">去a

"#/b">去b複製**

實現原理:兩大元件 hashrouter 和 route。

1)hashrouter 在元件掛載後(componentdidmount),通過 " hashchange " 監聽 url 變化,拿到 hash 值,

window.addeventlistener('hashchange',() => 

})})

複製**

2)再通過" context " 的 " provider ",把 hash 值傳給當前元件,即 route,

複製**

然後route 中的" context "的 " consumer " 拿到 hash 值,將傳過來的pathname 與 當前元件的path屬性 比較,如果一樣,就渲染元件

} = value;

let = this.props;

if(pathname === path) else }}

複製**

import react, from 'react';

import from './context'

//每當位址列裡的 錨點發生改變的時候 都需要重新匹配

export default class hashrouter extends component

}componentdidmount

() })})}

render

() return ()}

}複製**

npm i path-to-regexp -s

react 動態修改路由 React 動態路由

封裝乙個高階元件,用來實現將普通的元件轉換成動態元件import react from react const asynccomponent loadcomponent class asynccomponent extends react.component catch err this.state...

react揚帆起航之路由配置與元件分割

react router v4 發生了巨大改變,由靜態路由開始轉向動態路由,從此,就像使用普通元件一樣來宣告路由。其實,路由從此就是乙個普通元件。路由的按需載入的實質是 分割,react router官網有個 拆分的示例,是基於bundle loader實現的.現在官網的 已經改為基於react l...

react學習六 react路由

react router 安裝包yarn add react router dom匯入路由模組 import reactdom from react dom route 表示乙個路由規則,在 route 上,有兩個比較重要的屬性,path component link 表示乙個路由的鏈結 就好比 v...