react-router-dom 루트를 사용하여 페이지 이동 전참 실현
BrowserRouter 및 HashRouter 라우팅 모드
#
구분 경로를 추가하기 때문에 #
뒤에 있는 모든 요청은 서버에 전송되지 않습니다. 즉, 서버에 있어 경로는 여전히localhost:3000이고 루트는 전방으로 전환됩니다.서버 렌더링을 하려면 BrowserRouter를 사용하십시오. 개발 단계에서 웹 페이지 dev Server에서 설정
historyApiFallback: true
하거나 BrowserRouter를 사용하려면 서버 설정(node/nginx)을 추가하여 전방에서 보내는 요청이 대응하는 html 문서에 비추도록 합니다.아니면 Hash Router를 추천합니다.HashRouter 라우팅
home.js 파일
import React from 'react';
export default class Home extends React.Component {
constructor(props){
super(props);
}
render() {
return (
<div>
{
/* */}
{
/* 다른 페이지로 건너뛰기 */}
<button onClick={
()=>{
this.props.history.push({
pathname : '/other',
state :{
id:3
}
});
// replace
// this.props.history.replace('/other');
// this.props.history.replace({
// pathname:'/other',
// state : {
// id:4
// }
// });
//
// this.props.history.goBack();
}
}> other </button>
</div>
)
}
}
other.js 파일
import React from 'react';
export default class Other extends React.Component {
constructor(props){
super(props);
}
componentDidMount(){
//
// console.log(this.props.match.params);
//
console.log(this.props.history.location.state);
}
render() {
return (
<div>
<a href='#/'> home </a>
</div>
)
}
}
import React from 'react';
import {
HashRouter, Route, Switch} from 'react-router-dom';
import Home from './home';
import Other from './other';
const BasicRoute = () => (
<HashRouter>
<Switch>
<Route exact path="/" component={
Home}/>
<Route exact path="/other" component={
Other}/>
{
/* */}
{
/* */ }
</Switch>
</HashRouter>
);
export default BasicRoute;
위에서 정의한 HashRouter 루트 구성 요소는 두 페이지 구성 요소인 Home과 Other를 루트 구성 요소로 감싸고, 바깥쪽은 Switch로 루트 정합을 하고, 루트 구성 요소가 루트의 path와 일치하는 주소 표시줄이 발견되면 응답하는 페이지를 자동으로 불러옵니다.
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import Router from './Router';
ReactDOM.render(
<Router />,
document.getElementById('root')
);
페이지 이동:
집으로 돌아가다
this.props.history.push('/other');
this.props.history.replace('/other');
///push 또는 a 라벨 반복 사용을 피하고 순환이 끊어질 때 사용this.props.history.goBack('/other');
//상위 페이지로 돌아가기점프 전삼:
점프 시 설정다른 페이지로 건너뛰기
,react-router-dom는 /:
를 통해 URL이 전달하는 매개 변수와 일치 //push() replace()、goBack()
this.props.history.push({
pathname : '/other',
state :{
id:3
}
});
this.props.match.params
this.props.history.location.state
BrowserRouter 라우팅
import React from 'react';
import {
BrowserRouter, Route, Switch} from 'react-router-dom';
import Home from './home';
import Other from './other';
const BasicRoute = () => (
<HashRouter>
<BrowserRouter>
<Route exact path="/" component={
Home}/>
<Route path="/other" name="other" component={
Other}/>
</BrowserRouter>
</HashRouter>
);
export default BasicRoute;
페이지 이동:
, 주의: 도입import {Link} from 'react-router-dom';
, 참고: 도입import {Link} from 'react-router-dom';
이 문서의 개인 블로그 링크에 오신 것을 환영합니다.https://br-bai.github.io/2019/09/29/react-router-dom 루트를 사용하여 페이지 이동 전참/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
react-router-dom 루트를 사용하여 페이지 이동 전참 실현BrowserRouter 및 HashRouter 라우팅 모드 서버가 대응하는 경로가 대응하는 파일을 가리키도록 설정하지 않았기 때문에 자연히 404의 상황이 발생합니다.(초기화 페이지, 즉 라우팅이/일 경우 요청이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.