>  기사  >  웹 프론트엔드  >  React Router4.0 이상에서 라우팅을 사용하는 방법

React Router4.0 이상에서 라우팅을 사용하는 방법

小云云
小云云원래의
2018-02-03 14:51:002348검색

이 글은 주로 React Router 4.0 이상의 라우팅 응용 프로그램에 대한 자세한 설명을 소개합니다. 편집자는 꽤 좋다고 생각하므로 이제 공유하고 참고용으로 제공하겠습니다. 편집자를 따라가서 모두에게 도움이 되기를 바랍니다.

React Router 4.0 이하에서는 중첩된 경로를 라우터 태그에 다음과 같은 형태로 배치할 수 있으며, 중첩된 경로도 직접 함께 배치할 수 있습니다.


<Route component={App}>
  <Route path="groups" components={Groups} />
  <Route path="users" components={Users}>
   <Route path="users/:userId" component={Profile} />
  </Route>
</Route>

하지만 4.0 이후에는 중첩된 라우팅이 이전과 완전히 다릅니다. 라우팅을 처리하려면 중첩된 루트 구성 요소에 별도로 배치해야 합니다. 그렇지 않으면 항상 경고가 표시됩니다.

b5425ae5408a6c134886a269d44affb6 및 267f3d31687634d3c230ef8911379a05 같은 경로에 있습니다

올바른 형식은 다음과 같습니다


<Route component={App}>
  <Route path="groups" components={Groups} />
  <Route path="users" components={Users}>
   //<Route path="users/:userId" component={Profile} />
  </Route>
</Route>

위의 중첩된 경로를 주석 처리하세요


const Users = ({ match }) => (
 <p>
  <h2>Topics</h2>
  <Route path={`${match.url}/:userId`} component={Profile}/>
 </p>
)

위는 중첩된 라우팅이 필요한 구성요소입니다.

중첩 라우팅의 전체 예는 다음과 같습니다

지침 및 주의 사항

1. 다음 코드는 ES6 형식입니다

2.react-router-dom 버전은 4.1.1

입니다.

3. HashRouter와 같은 기록 사용에 주의하세요. 그렇지 않으면 항상 경고가 표시되며 렌더링할 수 없습니다.


import React, { Component } from &#39;react&#39;;
import ReactDOM from &#39;react-dom&#39;;
// import { Router, Route, Link, Switch } from &#39;react-router&#39;;
import {
 HashRouter,
 Route,
 Link,
 Switch
} from &#39;react-router-dom&#39;;

class App extends Component {
 render() {
  return (
   <p>
    <h1>App</h1>
    <ul>
     <li><Link to="/">Home</Link></li>
     <li><Link to="/about">About</Link></li>
     <li><Link to="/inbox">Inbox</Link></li>
    </ul>
    {this.props.children}

   </p>
  );
 }
}

const About = () => (
 <p>
  <h3>About</h3>
 </p>
)

const Home = () => (
 <p>
  <h3>Home</h3>
 </p>
)

const Message = ({ match }) => (
 <p>
  <h3>new messages</h3>
  <h3>{match.params.id}</h3>
 </p>
)

const Inbox = ({ match }) => (
 <p>
  <h2>Topics</h2>
  <Route path={`${match.url}/messages/:id`} component={Message}/>

 </p>
) 

ReactDOM.render(
 (<HashRouter>
  <App>
    <Route exact path="/" component={Home} />
    <Route path="/about" component={About} />
    <Route path="/inbox" component={Inbox} />
  </App>
 </HashRouter>),
 document.getElementById(&#39;root&#39;)
);

관련 권장 사항:

react-router4 webpack require.ensure와 협력하여 비동기화 달성 로딩

위 내용은 React Router4.0 이상에서 라우팅을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.