React. Router


React. Router

⊙ React Router

  • クライアントのルーティングを簡素化し、サーバのレンダリングを支援します.
  • jsファイルを使用して、ページに既存のコンポーネントをアンインストールし、他のコンポーネントをロードします.
  • のように、ページタイトル要素のようにすべてのページに存在する要素については、ページが変化してもレンダリングは省略される.(Tiles/Decorator)
  • HashRouter:ルーティングの安全を確保します.
    (サーバルーティングを防止するためにアドレスの後に#を付ける)
  • // React-Router install
    yarn add react-router-dom
    
    // index.js setting
    import { BrowserRouter } from 'react-router-dom';
    (...)
    ReactDOM.render(
      <React.StrictMode>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </React.StrictMode>,
      document.getElementById('root')
    );

    ⊙ Router Route

    import { Route } from 'react-router-dom';
    (...)
    // exact 속성을 추가하면 경로가 정확히 일치할때만 보여준다.
    <Route exact path="/">
    </Route> 
    <Route path="/detail">
    </Route>

    ⊙ Router Link


  • リンクはエレメントで、クリックすると別のアドレスに移動します.

  • 反応ルータを使用する場合は、通常のaラベルは使用できません.
  • import { Link } from 'react-router-dom';
    (...)
     <a href="/">Home<a/>
     // 👇🏻👇🏻👇🏻
     <Link to="/">Home</Link>
  • 後退機能
  • を実現する.
     import { useHistory } from 'react-router-dom';
     
     let history = useHistory();
     history.goBack();
     (...)
     // push 함수 사용으로 페이지 이동가능
     history.push('/');

    ⊙ Router Switch


  • スイッチはルーティングをグループ化します.

  • まず、パスに一致するルーティングに接続します.

  • ルートが1つしか選択されていないので、重複するルートを防止します.
  •  import { Switch } from 'react-router-dom';
     (...)
     <Switch>
         <Route exact path="/" component={Main} />
         <Route path="/detail" component={Detail} />
         <Route path="/:id">
             <div>잘못된 페이지입니다.</div>
         </Route>
     </Switch>