React Router


SPA(Single Page Application)


単一ページアプリケーション
ただし、1つの画面だけではありません.各画面に異なるアドレスを付与します.
ルーティング:異なるアドレスに基づいて異なる画面を表示する
-->React Routerライブラリを介してSPAからルーティング可能


短所


アプリケーションが大きいほど、JSファイルは大きくなります

シンプルなルーティングを実現


デフォルトはindexです.htmlでdivのみ
残りはJSでダイナミックにレンダリングされます
import React, { useState } from "react";
import Home from "./Home";
import About from "./About";
import NotFound from "./NotFound";

function App() {
  const [comp, setComp] = useState(Home);

  return (
    <>
      <header>
        <button onClick={() => setComp(Home)}>Home</button>
        <button onClick={() => setComp(About)}>About</button>
        <button onClick={() => setComp(NotFound)}>Users</button>
      </header>
      <hr />
      <main children={comp} />
    </>
  );
}
コンポーネントを切り替えるには、このボタンを押します.
問題が発生!
  • 特定ページのお気に入り
  • を登録できません.
  • 後退ボタンを使用して前ページX
  • を移動する.
  • リフレッシュ時に最初にマウントされたホームコンポーネント
  • に移動する.
    ->React Router解決!!

    React Router


    上記の問題を解決するための「標準に近い」ナビゲーション・ライブラリ
    使用時にアプリケーションが発行するルーティングは、location、historyなどのブラウザ内蔵APIとよく連携しています.
    -->SPAは既存のWebサイトと同じスムーズなルーティングを提供

    React Routerのインストール

    $ npm i react-router-dom

    コア構成部品

  • リンクコンポーネント<Link to="/about">About</Link>htmlの-hrefから
  • 到Route构成部件<Route path="/about"component={About}/>path prop相一致的Address中,指定对应的素子表示.Router素子<Router> ... <Link /> <Link /> ... <Router /> <Router /> ... </Router>,它被机动化(经常是亲亲合作社).ルーティング実装を「反応ルータ-dom」から「リンク、ルーティング、ブラウザ-ルータ」にインポートする。使用上记的代码,采用链接、路丁、路塔构成部件<header> <Link to="/"> <button>Home</button> </Link> <Link to="/about"> <button>About</button> </Link> <Link to="/users"> <button>Users</button> </Link> </header>タイトルの-パスの指定<main> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> <Route path="/users" component={NotFound} /> </main>在机器人-在机器人割成部品的import React from"react"; import { Link, Route, BrowserRouter as Router } from "react-router-dom"; import Home from "./Home"; import About from "./About"; import NotFound from "./NotFound"; function App() { return ( <Router> <header> <Link to="/"> <button>Home</button> </Link> <Link to="/about"> <button>About</button> </Link> <Link to="/users"> <button>Users</button> </Link> </header> <hr /> <main> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> <Route path="/users" component={NotFound} /> </main> </Router> ); [最後][ルータ][2人パック][4ページ目][処理が完了しない][入力力][]][]]][]]][]]][]]][]]][2人パック][4ページ目][処理が完了しない][入力力][][]][]]][]]]][]]][]]]][]]][]]][]][]][]]][[]]]]][2人パック][4ページ目][処理が完了しない][処理が完了できない][入力力][[入力力][][]]]][[[]]]]]]][]]]]]][[]]]]]]][[]]]]]][[]]]]]]」「」「」「」「」「」「」「」「」「」「」「」「」「」「」「」「」「」使用构成部件的情况下,只表示与下的构成部件一致的最初构成部件,之后出现的Route构成部件一致也被无视。<main> <Switch> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> <Route component={NotFound} /> </Switch> </main>最后配置没有path prop的Route构成部件时,表示404页.ソース
  • https://www.daleseo.com/react-router-basic/
  • https://velopert.com/3417