ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리액트 라우터 2부
    React 2019. 11. 9. 15:38

    BrowserRouter

    • HashRouter와는 다른 방식인 BrowserRouter이다. (URL에 # 표시가안됨)
    • BrowserRouter는 컴포넌트를 동시에 가질수있다.
    • import { BrowserRouter as Router, Route } from "react-router-dom";
    • exact를 사용하지 않을시 /tv와 /tv/popular 경로가 서로 매칭되어 둘이 같은 화면에 보여짐
    • /tv/popular 경로로 가면 tv와 popular이 동시에 나타남
    import React from "react";
    import { BrowserRouter as Router, Route } from "react-router-dom";
    import Home from "Routes/Home";
    import TV from "Routes/TV";
    import Search from "Routes/Search";
    
    export default () => (
      <Router>
        <>
          <Route path="/" exact component={Home} />
          <Route path="/tv" component={TV} />
          <Route path="/tv/popular" render={() => <h1>popular</h1>} />
          <Route path="/search" component={Search} />
        </>
      </Router>
    );

    Redirect , Switch

    • Redirect는 일치하는 Route가 하나도 없다면 홈으로 보내줌
    • Switch는 한번에 오직 하나의 ROute만 Render하게 해줌
    import React from "react";
    import {
      BrowserRouter as Router,
      Route,
      Redirect,
      Switch
    } from "react-router-dom";
    import Home from "Routes/Home";
    import TV from "Routes/TV";
    import Search from "Routes/Search";
    
    export default () => (
      <Router>
        <Switch>
          <Route path="/" exact component={Home} />
          <Route path="/tv" component={TV} />
          <Route path="/search" component={Search} />
          <Redirect from="*" to="/" />
        </Switch>
      </Router>
    );

    댓글

Designed by Tistory.