亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react?router如何使用

發布時間:2022-09-28 14:49:42 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

這篇文章主要講解了“react router如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“react router如何使用”吧!

    安裝

    既然學習 react router 就免不了運行 react

    安裝 react

    npx create-react-app my-app
    cd my-app
    npm start

    安裝 react router

    npm install react-router-dom

    如果一切正常,就讓我們打開 index.js 文件。

    配置路由

    引入 react-router-dom 的 RouterProvider

    import {RouterProvider} from 'react-router-dom'

    設置

    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
      <React.StrictMode>
        <RouterProvider router={routers}></RouterProvider>
      </React.StrictMode>
    );

    這里的 React.StrictMode 代表以嚴格模式執行其包含的內容。

    為了管理路由,讓我們再創建一個 root.js 文件

    內容如下:

    文件:router.js

    import {createBrowserRouter} from 'react-router-dom'
    import App from '../App.js'
    const router =  createBrowserRouter ([
        {
            path:'/',
            element:<App />,
        }
    ])
    export default router;

    添加一個新頁面測試路由

    新建文件:

    test.js

    export default function Test(){
        return(
            <div>測試頁面</div>
        )
    }

    在 router.js 引入

    import {createBrowserRouter} from 'react-router-dom'
    import App from '../App.js'
    import Test from '../test.js'
    const router =  createBrowserRouter ([
        {
            path:'/',
            element:<App />,
        },
        {
            path:'/test',
            element:<Test />
        }
    ])
    export default router;

    保存

    在瀏覽器訪問 http://localhost:3000/test

    你應該可以看到:

    react?router如何使用

    配置未找到的路由

    現在我們有 App.js 和 test.js 兩個頁面,如果訪問 http://localhost:3000/hello 會出現什么呢?

    react?router如何使用

    這是內置的頁面,提醒用戶沒有找到頁面。

    接下來使用美化或者自定義的頁面:

    創建文件:

    error.js

    export default function Error(){
        return (
            <h2>Page not found</h2>
        )
    }

    使用 errorElement屬性 對應這個頁面:

    import {createBrowserRouter} from 'react-router-dom'
    import App from '../App.js'
    import Test from '../test.js'
    import Error from '../error.js'
    const router =  createBrowserRouter ([
        {
            path:'/',
            element:<App />,
            errorElement:<Error />
        },
        {
            path:'/test',
            element:<Test />
        }
    ])
    export default router;

    繼續請求 http://localhost:3000/hello

    react?router如何使用

    我們剛才自定義的頁面成功展示出來了。

    跳轉頁面

    跳轉頁面有很多,這里取兩種方式,一是通過 dom 標簽,二是通過js

    通過 js

    使用 useNavigate 跳轉頁面:

    看起來就像這樣:

    test.js

    import { useNavigate } from "react-router-dom";
    function Test () {
        const navigate = useNavigate();
        function toTest2(){
            navigate("/test2",{
                state:'anny'
            });
        }
        return(
            <div onClick={toTest2}>跳轉頁面</div>
        )
    }
    export default Test

    使用 useLocation 接收值:

    import {useLocation} from 'react-router-dom'
    export default function Test2(){
        let location = useLocation();
        return (
            <div>頁面Test2 接收到的值為 {location.state}</div>
        )
    }

    通過 dom

    通過 Link 傳值跳轉:

    import {Link } from "react-router-dom";
    function Test () {
        return(
            <div>
                <Link to="/test2" state={'anny'} >跳轉頁面</Link>
            </div>
        )
    }
    export default Test

    使用 useLocation 接收值:

    import {useLocation} from 'react-router-dom'
    export default function Test2(){
        let location = useLocation();
        return (
            <div>頁面Test2 接收到的值為 {location.state}</div>
        )
    }

    嵌套頁面

    平時寫管理后臺,經常會看到左右分布的布局,如果僅僅依靠 1-5 節的內容肯定很難實現,接下來看一下 根布局。

    根布局使用 :

    創建一個 父頁面,父頁面放置兩個 鏈接:

    parent.js

    import { Link, Outlet } from "react-router-dom";
    function Parent(){
        return(
           <div>
            <Link to={'/parent/page1'}>show page1</Link>
            <Link to={'/parent/page2'}>show page2</Link>
            <Outlet></Outlet>
           </div>
        )
    }
    export default Parent;

    繼續創建 兩個頁面 page1.js page2.js

    page1.js

    function Page1(){
        return(
            <div>i am page1</div>
        )
    }
    export default Page1;

    page2.js

    function Page2(){
        return(
            <div>i am page2</div>
        )
    }
    export default Page2;

    修改我們的 router.js 文件:

    import {createBrowserRouter} from 'react-router-dom'
    import App from '../App.js'
    import Test from '../test.js'
    import Error from '../error.js'
    import Parent from '../parent.js'
    import Page1 from '../page1.js'
    import Page2 from '../page2.js'
    const router =  createBrowserRouter ([
        {
            path:'/',
            element:<App />,
            errorElement:<Error />,
        },
        {
            path:'/test',
            element:<Test />
        },
        {
            path:'/parent',
            element:<Parent />,
            children:[
                {
                    path:'/parent/page1',
                    element:<Page1 />
                },
                {
                    path:'/parent/page2',
                    element:<Page2 />
                }
            ]
        }
    ])
    export default router;

    到這里還差一步,就是使用重要的標簽 <Outlet>

    修改我們的父頁面

    parent.js

    import { Link, Outlet } from "react-router-dom";
    function Parent(){
        return(
           <div>
            <Link to={'/parent/page1'}>show page1</Link>
            <Link to={'/parent/page2'}>show page2</Link>
            <Outlet></Outlet>
           </div>
        )
    }
    export default Parent;

    保存:

    接下來訪問 http://localhost:3000/parent 你將看到:

    react?router如何使用

    分別點擊 show page1show page2 你將看到不同的效果。

    如果你想將第一個子組件默認展示出來,你可以將 router.js 改成如下:

        {
            path:'/parent',
            element:<Parent />,
            children:[
                {
                    path:'/parent',
                    element:<Page1 />
                },
                {
                    path:'/parent/page2',
                    element:<Page2 />
                }
            ]
        }

    再看一下效果:

    react?router如何使用

    感謝各位的閱讀,以上就是“react router如何使用”的內容了,經過本文的學習后,相信大家對react router如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    正定县| 枝江市| 台湾省| 淮北市| 东明县| 南岸区| 庐江县| 健康| 夹江县| 建德市| 精河县| 周宁县| 巴里| 宁明县| 本溪市| 云浮市| 神池县| 信丰县| 信宜市| 固原市| 济阳县| 郯城县| 广水市| 平舆县| 伊川县| 邵武市| 泗水县| 华安县| 寿阳县| 彩票| 施秉县| 南雄市| 衡阳市| 土默特左旗| 虹口区| 洪洞县| 曲麻莱县| 平乐县| 彰武县| 桐梓县| 磴口县|