React 라우터 후크 - 사용 방법
17575 단어 reactjavascripttodayisearched
이 업데이트를 통해 사용자는 라우터 상태에 액세스하고
useHistory
, useParams
, useLocation
및 useRouteMatch
후크를 사용하여 내부 구성 요소에서 탐색을 수행할 수 있습니다.오늘은 각 후크에 대한 간략한 개요와 경로 작성 방식이 어떻게 바뀌었는지 알려 드리겠습니다.
사용내역
useHistory
후크를 사용하면 경로를 탐색하는 데 사용할 수 있는 history
개체에 액세스할 수 있습니다.
import { useHistory } from "react-router-dom"
const Homepage = () => {
let history = useHistory()
function goBack(){
history.goBack()
}
function goHome(){
history.push('/')
}
return(
<div>
<button onClick={goBack}>Previous</button>
<button onClick={goHome}>Home</button>
</div>
)
}
export default Homepage
history
개체는 다음 속성 및 메서드에 대한 액세스를 제공합니다.
import { useHistory } from "react-router-dom"
const Homepage = () => {
let history = useHistory()
function goBack(){
history.goBack()
}
function goHome(){
history.push('/')
}
return(
<div>
<button onClick={goBack}>Previous</button>
<button onClick={goHome}>Home</button>
</div>
)
}
export default Homepage
useParams
useParams
후크를 사용하면 주어진 경로의 매개변수에 액세스할 수 있습니다. 매개변수는 동적으로 설정되는 주어진 URL의 매개변수일 뿐입니다.
useParams
후크가 React-Router에 의해 도입되기 전에 다음과 같이 구성 요소에 전달된 props를 통해 params에 액세스해야 했습니다.
import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
Route
} from "react-router-dom"
function Post(props) {
let { id } = props.match.params
return <div>Now showing post {id}</div>
}
function App(){
return(
<div className='app'>
<Router>
<Switch>
<Route exact path="/" component={Homepage} />
<Route
path="/blog/:id"
render={routerProps => (
<Post {...routerProps}/>
)}
/>
</Switch>
</Router>
</div>
)
}
이제 매개변수에 액세스할 수 있도록 useParams
후크를 호출하기만 하면 됩니다.
import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
Route,
useParams
} from "react-router-dom"
function Post(props) {
let { id } = useParams()
return <div>Now showing post {id}</div>
}
function App(){
return(
<div className='app'>
<Router>
<Switch>
<Route exact path="/" />
<Homepage />
</Route>
<Route path="/blog/:id">
<Post />
</Route>
</Switch>
</Router>
</div>
);
}
사용위치
이제 React-Router 업데이트와 함께 제공되는 또 다른 후크는 useLocation
후크입니다.
이 후크는 현재 URL을 나타내는 location
개체에 대한 액세스를 제공합니다. 공식 문서에 따르면 useLocation
후크는 URL이 업데이트될 때마다 새 useState
를 반환하는 location
로 볼 수 있습니다.
import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
useLocation
} from "react-router-dom"
const LearnMore = () => {
let location = useLocation()
return(
<div>
You are currently at the following path {location.pathname}
</div>
)
}
function App(){
return(
<div className='app'>
<Router>
<ul>
<li>
<Link to='/'>Home</Link>
</li>
<li>
<Link to='/learn-more'>Learn More</Link>
</li>
</ul>
<Switch>
<Route exact path='/'>
<HomePage />
</Route>
<Route path='/learn-more'>
<LearnMore />
</Route>
</Switch>
</Router>
</div>
)
}
useRouteMatch
마지막으로 useRouteMatch
후크를 사용하면 match
구성 요소를 실제로 렌더링하지 않고도 <Route>
속성에 액세스할 수 있습니다.
이전에는 render
prop 함수를 사용하여 다음과 같이 처리해야 했습니다.
import { Route } from "react-router-dom"
function AnimalCard() {
return (
<Route
path="/animal/:id"
render={({ match }) => {
// Do some stuff with your match...
return <div />
}}
/>
);
}
이제 경로가 일치하면 후크를 가져오고 요소를 렌더링할 수 있습니다.
import { useRouteMatch } from "react-router-dom"
function AnimalCard() {
let match = useRouteMatch("/animal/:id")
// Do some stuff with your match...
return <div />;
}
useRouteMatch
후크에 대해 매우 유용한 한 가지는 strict
, exact
, path
및 sensitive
옵션도 허용한다는 것입니다.
결론
자, 당신은 그것을 가지고 있습니다! React-Router 후크에 대한 간략한 살펴보기. 다음 프로젝트에서 이것을 시도하고 전체 문서here를 확인하십시오.
Reference
이 문제에 관하여(React 라우터 후크 - 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/developer_buddy/react-router-dom-hooks-how-to-use-them-3a93
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
Route
} from "react-router-dom"
function Post(props) {
let { id } = props.match.params
return <div>Now showing post {id}</div>
}
function App(){
return(
<div className='app'>
<Router>
<Switch>
<Route exact path="/" component={Homepage} />
<Route
path="/blog/:id"
render={routerProps => (
<Post {...routerProps}/>
)}
/>
</Switch>
</Router>
</div>
)
}
import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
Route,
useParams
} from "react-router-dom"
function Post(props) {
let { id } = useParams()
return <div>Now showing post {id}</div>
}
function App(){
return(
<div className='app'>
<Router>
<Switch>
<Route exact path="/" />
<Homepage />
</Route>
<Route path="/blog/:id">
<Post />
</Route>
</Switch>
</Router>
</div>
);
}
이제 React-Router 업데이트와 함께 제공되는 또 다른 후크는
useLocation
후크입니다.이 후크는 현재 URL을 나타내는
location
개체에 대한 액세스를 제공합니다. 공식 문서에 따르면 useLocation
후크는 URL이 업데이트될 때마다 새 useState
를 반환하는 location
로 볼 수 있습니다.import React from "react"
import ReactDOM from "react-dom"
import {
BrowserRouter as Router,
Switch,
useLocation
} from "react-router-dom"
const LearnMore = () => {
let location = useLocation()
return(
<div>
You are currently at the following path {location.pathname}
</div>
)
}
function App(){
return(
<div className='app'>
<Router>
<ul>
<li>
<Link to='/'>Home</Link>
</li>
<li>
<Link to='/learn-more'>Learn More</Link>
</li>
</ul>
<Switch>
<Route exact path='/'>
<HomePage />
</Route>
<Route path='/learn-more'>
<LearnMore />
</Route>
</Switch>
</Router>
</div>
)
}
useRouteMatch
마지막으로 useRouteMatch
후크를 사용하면 match
구성 요소를 실제로 렌더링하지 않고도 <Route>
속성에 액세스할 수 있습니다.
이전에는 render
prop 함수를 사용하여 다음과 같이 처리해야 했습니다.
import { Route } from "react-router-dom"
function AnimalCard() {
return (
<Route
path="/animal/:id"
render={({ match }) => {
// Do some stuff with your match...
return <div />
}}
/>
);
}
이제 경로가 일치하면 후크를 가져오고 요소를 렌더링할 수 있습니다.
import { useRouteMatch } from "react-router-dom"
function AnimalCard() {
let match = useRouteMatch("/animal/:id")
// Do some stuff with your match...
return <div />;
}
useRouteMatch
후크에 대해 매우 유용한 한 가지는 strict
, exact
, path
및 sensitive
옵션도 허용한다는 것입니다.
결론
자, 당신은 그것을 가지고 있습니다! React-Router 후크에 대한 간략한 살펴보기. 다음 프로젝트에서 이것을 시도하고 전체 문서here를 확인하십시오.
Reference
이 문제에 관하여(React 라우터 후크 - 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/developer_buddy/react-router-dom-hooks-how-to-use-them-3a93
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import { Route } from "react-router-dom"
function AnimalCard() {
return (
<Route
path="/animal/:id"
render={({ match }) => {
// Do some stuff with your match...
return <div />
}}
/>
);
}
import { useRouteMatch } from "react-router-dom"
function AnimalCard() {
let match = useRouteMatch("/animal/:id")
// Do some stuff with your match...
return <div />;
}
자, 당신은 그것을 가지고 있습니다! React-Router 후크에 대한 간략한 살펴보기. 다음 프로젝트에서 이것을 시도하고 전체 문서here를 확인하십시오.
Reference
이 문제에 관하여(React 라우터 후크 - 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/developer_buddy/react-router-dom-hooks-how-to-use-them-3a93텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)