React路由元件

2022-08-21 17:51:11 字數 752 閱讀 1815

react-router 為我們提供了兩個重要元件

它本身不做任何展示,僅提供路由模式配置,另外,該元件會產生乙個上下文,上下文中會提供一些實用的物件和方法,供其他相關元件使用

hashrouter:該元件,使用hash模式匹配

browserrouter:該元件,使用browserhistory模式匹配

通常情況下,router元件只有乙個,將該元件包裹整個頁面

根據不同的位址,展示不同的元件

重要屬性:

path:匹配的路徑

預設情況下,不區分大小寫,可以設定sensitive屬性為true,來區分大小寫

預設情況下,只匹配初始目錄,如果要精確匹配,配置exact屬性為true

如果不寫path,則會匹配任意路徑

component:匹配成功後要顯示的元件

children:

傳遞react元素,無論是否匹配,一定會顯示children,並且會忽略component屬性

傳遞乙個函式,該函式有多個引數,這些引數來自於上下文,該函式返回react元素,則一定會顯示返回的元素,並且忽略component屬性

route元件可以寫到任意的地方,只要保證它是router元件的後代元素

寫到switch元件中的route元件,當匹配到第乙個route後,會立即停止匹配

由於switch元件會迴圈所有子元素,然後讓每個子元素去完成匹配,若匹配到,則渲染對應的元件,然後停止迴圈。因此,不能在switch的子元素中使用除route外的其他元件。

react 路由Redirect元件學習

switch 是route 從上到下匹配,如果有乙個匹配,後面的就不會再繼續匹配了 redirectfrom屬性是位址與from匹配 可以用正則 才會重定向到to屬性指定的路徑 redirectfrom屬性如果沒有,則預設是匹配所有的路徑 import react,from react import...

在React專案外部獲取路由元件例項

import from react router dom let router newrouter 通過as指定別名可以讓router物件獲取不同的路由方式。不過這種方式存在這樣的問題 通過ref reactdom.render react robot a component react robot...

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

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