#showdev使用React Router創建404頁面

我們已經學習了如何在react路由器中創建動態URL,我們還學習了如何在react路由器中處理查詢參數,並將這些值傳遞給我們之前帖子中的頁面組件。

在這部分中,我們將學習如果沒有與URL匹配的路由,如何顯示404頁面。

您可以在此處找到包含codesandbox的最後一部分和最新的代碼庫

例如,運行應用程序並訪問任何不存在的路由 / 404未找到

目前,您不會看到任何頁面組件呈現。如果沒有與路徑匹配的路由,讓我們處理它並顯示默認頁面。

在反應路由器中實現起來相當簡單。在內部反應路由器組件中,創建沒有路徑定義的路由。並確保將代碼放在所有路由的底部,以便路由器檢查所有路由,如果找不到匹配則回退。

// App.js  ...  常量 NoMatchPage = () => {   返回      <H3>404  - 未找到H3>   ); };  常量 應用 = () => {   返回      <部分 的className =「APP」>       <路由器>         ...         <鏈接 為=「/用戶」>用戶鏈接>         <鏈接 為=「/搜索Q =反應」>搜索鏈接>         ...         <路線 精確 路徑=「/關於」 成分={AboutPage} />         <路線 精確 路徑=「/搜索」 成分={SearchPage} />         <路線 成分={NoMatchPage} />       路由器>     部分>   ); };  ... 

訪問任意隨機網址,您會看到一個簡單的404頁面。但是等等,讓我們檢查其他頁面是否正常工作而不會中斷。它不會

檢查 關於 鏈接,您將看到關於和404頁面的渲染。因為第一個路由器匹配確切的路由 /關於 路徑,然後它遍歷到底部並載入404路由,因為此路由沒有定義路徑。

React路由器提供一個名為的組件 開關 在路由得到解決後中斷並且不在其下面載入任何其他路由組件。

它很容易實現。將所有路線包含在裡面 開關 零件。讓我們這樣做,讓404頁面正常工作。

// App.js  ... 進口 { 鏈接 BrowserRouter  路由器 路線 開關 }  '反應路由器-DOM'; ...  常量 應用 = () => {   返回      <部分 的className =「APP」>       <路由器>         ...         <開關>           <路線 精確 路徑=「/」 成分={IndexPage} />           ...           <路線 精確 路徑=「/搜索」 成分={SearchPage} />           <路線 成分={NoMatchPage} />         開關>       路由器>     部分>   ); };  ...  

這個 開關 組件將檢查匹配的路由,如果路由已匹配,則會中斷檢查下一個路由。通過這種方式,我們將避免為所有頁面渲染404路由。

這就是人們,希望你學會了使用反應路由器creating為你的反應應用程序創建404頁面的技巧

您可以在此處查看此系列的代碼庫以及此部分的代碼

保持聯繫

如果您喜歡這篇文章,可以在Twitter上找到我的更新,公告和新聞。 ?

資訊來源:由0x資訊編譯自DEV,原文:https://dev.to/paramharrison/creating-404-page-in-react-using-react-router-2em9 ,版權歸作者所有,未經許可,不得轉載
你可能還喜歡