[React] React Router Hooks
16423 ワード
react router Hooks
React Routerは、ルータのステータスにアクセスし、コンポーネント内でナビゲーションを実行するHooksを提供します.
withRouter HOCを使用すると、既存のマッチング、ロケーション、履歴オブジェクトのアクセス方法を置き換えることができます.
useHistory
useHistory Hookでは、ナビゲーションに使用できるhistoryオブジェクトにユーザーがアクセスできます. BrowserRouter、スイッチはホーム構成部品のDefaultPropsに履歴オブジェクトを入れます ヒストリオブジェクトを使用するには、 が正常に動作するように、withRouter hocを使用して構成部品をカプセル化する必要があります.履歴オブジェクトを使用して応答アプリケーション内で をルーティングする.
useLocation hookは、現在のURLを表すlocationオブジェクトを返します.
現在滞在しているページに関する情報をユーザーに伝えます.
URLが変更されるたびに新しい場所に戻るusStateと見なすことができます. pathname:urlがhttp://localhost:3000/home?id=1/homeの場合 search:クエリーリストを解析する必要がある場合に役立ち、pathname出力の部分のほかにクエリーリストを出力しますか?id=1の useParams
useparams hookは、URLによって渡されたパラメータは、match propsを用いてmatchを行う既存のものである.params.id形式でアクセスする必要があるが、useParamsを使用すると により簡単にアクセスできる.
userRooteMatch hookは、matchオブジェクトの値にアクセスできるhookです.
Routeエレメントを持つProperty(path,strict,sensitive,excel)のオブジェクトをパラメータとして受信することで、path Propertyが現在のページURLに一致する場合、そのpathのmatchオブジェクトが返され、一致しない場合nullが返されます.
パラメータを渡さずにhookを呼び出すと、withRouterHocを使用してmatchオブジェクトにアクセスするように、親ルーティング要素に最も近いmatch値が返されます.
React Routerは、ルータのステータスにアクセスし、コンポーネント内でナビゲーションを実行するHooksを提供します.
withRouter HOCを使用すると、既存のマッチング、ロケーション、履歴オブジェクトのアクセス方法を置き換えることができます.
useHistory
useHistory Hookでは、ナビゲーションに使用できるhistoryオブジェクトにユーザーがアクセスできます.
import React from 'react';
import { withRouter } from 'react-router-dom';
const Home = ({ history }) => {
return (
<div onClick={() => history.push('/auth')}>Hello!</div>
);
};
export default withRouter(Home);
import { useHistory } from "react-router-dom";
function HomeButton() {
let history = useHistory();
function handleClick() {
history.push("/home"); //해당 페이지로 이동시킨다.
}
return (
<button type="button" onClick={handleClick}>
Go home
</button>
);
}
useLocationuseLocation hookは、現在のURLを表すlocationオブジェクトを返します.
現在滞在しているページに関する情報をユーザーに伝えます.
URLが変更されるたびに新しい場所に戻るusStateと見なすことができます.
import { useLocation } from "react-router";
const Home=(props)=>{
const location=useLocation();
console.log(location.pathname); //출력 예: /topics/switch
return (
...
);
}
export default Home;
useparams hookは、URLによって渡されたパラメータ
key/value
対のオブジェクトを返す.import React from 'react';
import { BrowserRouter, Switch, Route } from 'react-router-dom';
import Home from 'components/Home';
const App = (): JSX.Element => {
return (
<BrowserRouter>
<Switch>
<Route exact path='/home/:id' component={Home} />
{/* id라는 동적 라우팅값을 걸어주었다. */}
</Switch>
</BrowserRouter>
);
};
export default App;
import React from 'react';
import { useParams } from 'react-router-dom';
const Home = () => {
const { id } = useParams();
// 동적 라우팅 값으로 걸어둔 이름으로 객체를 가져올 수 있다.
// 현재 주소의 값이 http://localhost:3000/home/3 일때
console.log(id); // "3"이 출력된다.
return (
<></>
);
};
export default Home;
useRouteMatchuserRooteMatch hookは、matchオブジェクトの値にアクセスできるhookです.
Routeエレメントを持つProperty(path,strict,sensitive,excel)のオブジェクトをパラメータとして受信することで、path Propertyが現在のページURLに一致する場合、そのpathのmatchオブジェクトが返され、一致しない場合nullが返されます.
パラメータを渡さずにhookを呼び出すと、withRouterHocを使用してmatchオブジェクトにアクセスするように、親ルーティング要素に最も近いmatch値が返されます.
import { Route } from "react-router-dom";
function BlogPost() {
return (
<Route
path="/blog/:slug"
render={({ match }) => {
// Do whatever you want with the match...
return <div />;
}}
/>
);
}
上のコードの代わりに.import { useRouteMatch } from "react-router-dom";
function BlogPost() {
let match = useRouteMatch("/blog/:slug");
// Do whatever you want with the match...
return <div />;
}
代わりに使えます.Reference
この問題について([React] React Router Hooks), 我々は、より多くの情報をここで見つけました https://velog.io/@yeogenius/React-React-Router-Hooksテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol