자체 메모 - React Router 시작하기
15837 단어 reactprogrammingtutorial
저는 주로 백엔드 개발자입니다. 내가 한 프런트 엔드 개발은 asp.net을 사용하는 웹 양식이었습니다. 강력하게 입력되고 쉽게 테스트할 수 있는 코드에 액세스할 수 있는 배경에서 이 전체 생태계에서 시작하는 것은 꽤 어려운 것 같습니다.
이것은 아마도 내가 이전에 언급한 것을 다시 해싱하는 것일 수 있지만 프런트 엔드에서는 무언가가 "좋은"방식으로 구현되는지에 대한 "의견"에 더 가깝다고 생각합니다.
어쨌든, 나는 React로 엉망이 되려고 노력하고 있습니다. 언젠가는 kritner.com에 있는 대부분의 자리 표시자 사이트를 좀 더 실질적인 것으로 바꾸고 싶습니다.
가장 먼저 시작하는 것이 합리적이라고 생각한 것은 페이지에 대한 일반적인 공유 레이아웃입니다.
실험을 위해 Code Sandbox을 사용할 것입니다. 코드 샌드박스는 한 번도 사용해 본 적이 없다면 React, Vue, TypeScript 포함 여부와 같은 다양한 기술 스택이 포함된 샘플 앱을 함께 배치하기 위한 플레이그라운드(또는 샌드박스…)를 허용합니다.
스텁 구성 요소
템플릿으로 시작React Typescript . 가장 먼저 할 일은 내 탐색이 연결될 몇 가지 페이지 스텁을 소개하는 것입니다.
About.tsx
import React from "react";
export default function About() {
return <div>About me</div>;
}
연락처.tsx
import React from "react";
export default function Contact() {
return <div>Contact</div>;
}
Home.tsx
import React from "react";
export default function Home() {
return <div>Home</div>;
}
위의 경우 클래스 구성 요소https://reactjs.org/docs/components-and-props.html#function-and-class-components가 아닌 함수 구성 요소를 사용하고 있습니다. 훨씬 더 단순해 보입니다.
라우팅
URL 라우팅
이것이 라우팅을 도입하기에 가장 적합한 장소인지 확실하지 않지만(그렇지 않을 것 같습니다) 아직 React의 규칙/표준에 대해 많이 알지 못하기 때문에 이것이 제가 할 일입니다. 라우팅을 포함하도록 App.tsx
를 업데이트하겠습니다.
앱의 시작 코드는 다음과 같습니다.
export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
라우팅을 위해 "react-router-dom"패키지를 코드 샌드박스로 가져옵니다.
이제 URL 라우팅을 지원하는 App 구성 요소에 라우팅을 추가합니다. 먼저 가져오기(몇 가지 추가 항목이 있습니다):
import { BrowserRouter, Route, Switch, Link } from "react-router-dom";
// Also importing the components that will be routed to
import Home from "./pages/Home";
import Contact from "./pages/Contact";
import About from "./pages/About";
URL 라우팅에 BrowserRouter , Switch 및 Route 을 사용할 것입니다. 이전에 만든 "홈", "정보"및 "연락처"구성 요소로 라우팅하려면 앱 구성 요소를 업데이트해야 합니다.
export default function App() {
return (
<BrowserRouter>
<Switch>
<Route path="/" component={Home} exact />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
</Switch>
</BrowserRouter>
);
}
루트 경로에 대한 "정확한"것이 필요해 보이지만 적어도 경로를 정의한 순서대로는 위의 내용이 매우 간단해 보일 것입니다. "/contact"는 "/"에서 첫 번째로 일치하는 것으로 보이며 정확한 값이 지정되지 않은 경우(또는 "/"가 정의된 마지막 경로인 경우) 연락처가 아닌 홈 구성 요소를 표시합니다.
이제 애플리케이션은 위에 정의된 경로에 응답해야 합니다.
내비게이션 라우팅
다음으로 링크 기반 탐색을 처리하기 위해 Link 을 사용하겠습니다.
<div>
<Link to="/">Home </Link>
<Link to="/about">About </Link>
<Link to="/contact">Contact </Link>
</div>
전체App.jsx
는 이제 다음과 같습니다.
import * as React from "react";
import { BrowserRouter, Route, Switch, Link } from "react-router-dom";
import Home from "./pages/Home";
import Contact from "./pages/Contact";
import About from "./pages/About";
import "./styles.css";
export default function App() {
return (
<BrowserRouter>
<div>
<Link to="/">Home </Link>
<Link to="/about">About </Link>
<Link to="/contact">Contact </Link>
</div>
<Switch>
<Route path="/" component={Home} exact />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
</Switch>
</BrowserRouter>
);
}
일부 라우팅 부분을 자체 구성 요소로 가지고 놀았지만 라우터 외부의 항목을 포함하려고 하면 오류가 발생했습니다. 나는 이것이 여전히 약간 리팩토링 될 수 있다고 생각하고 다른 사람들이 어떻게하는지 궁금합니다!
분명히 위의 스타일이나 그 성격의 어떤 것도 없습니다. 이것은 제가 더 배워야 할 또 다른 것입니다 ^^
참조:
import React from "react";
export default function About() {
return <div>About me</div>;
}
import React from "react";
export default function Contact() {
return <div>Contact</div>;
}
import React from "react";
export default function Home() {
return <div>Home</div>;
}
URL 라우팅
이것이 라우팅을 도입하기에 가장 적합한 장소인지 확실하지 않지만(그렇지 않을 것 같습니다) 아직 React의 규칙/표준에 대해 많이 알지 못하기 때문에 이것이 제가 할 일입니다. 라우팅을 포함하도록
App.tsx
를 업데이트하겠습니다.앱의 시작 코드는 다음과 같습니다.
export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
라우팅을 위해 "react-router-dom"패키지를 코드 샌드박스로 가져옵니다.
이제 URL 라우팅을 지원하는 App 구성 요소에 라우팅을 추가합니다. 먼저 가져오기(몇 가지 추가 항목이 있습니다):
import { BrowserRouter, Route, Switch, Link } from "react-router-dom";
// Also importing the components that will be routed to
import Home from "./pages/Home";
import Contact from "./pages/Contact";
import About from "./pages/About";
URL 라우팅에 BrowserRouter , Switch 및 Route 을 사용할 것입니다. 이전에 만든 "홈", "정보"및 "연락처"구성 요소로 라우팅하려면 앱 구성 요소를 업데이트해야 합니다.
export default function App() {
return (
<BrowserRouter>
<Switch>
<Route path="/" component={Home} exact />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
</Switch>
</BrowserRouter>
);
}
루트 경로에 대한 "정확한"것이 필요해 보이지만 적어도 경로를 정의한 순서대로는 위의 내용이 매우 간단해 보일 것입니다. "/contact"는 "/"에서 첫 번째로 일치하는 것으로 보이며 정확한 값이 지정되지 않은 경우(또는 "/"가 정의된 마지막 경로인 경우) 연락처가 아닌 홈 구성 요소를 표시합니다.
이제 애플리케이션은 위에 정의된 경로에 응답해야 합니다.
내비게이션 라우팅
다음으로 링크 기반 탐색을 처리하기 위해 Link 을 사용하겠습니다.
<div>
<Link to="/">Home </Link>
<Link to="/about">About </Link>
<Link to="/contact">Contact </Link>
</div>
전체
App.jsx
는 이제 다음과 같습니다.import * as React from "react";
import { BrowserRouter, Route, Switch, Link } from "react-router-dom";
import Home from "./pages/Home";
import Contact from "./pages/Contact";
import About from "./pages/About";
import "./styles.css";
export default function App() {
return (
<BrowserRouter>
<div>
<Link to="/">Home </Link>
<Link to="/about">About </Link>
<Link to="/contact">Contact </Link>
</div>
<Switch>
<Route path="/" component={Home} exact />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
</Switch>
</BrowserRouter>
);
}
일부 라우팅 부분을 자체 구성 요소로 가지고 놀았지만 라우터 외부의 항목을 포함하려고 하면 오류가 발생했습니다. 나는 이것이 여전히 약간 리팩토링 될 수 있다고 생각하고 다른 사람들이 어떻게하는지 궁금합니다!
분명히 위의 스타일이나 그 성격의 어떤 것도 없습니다. 이것은 제가 더 배워야 할 또 다른 것입니다 ^^
참조:
Reference
이 문제에 관하여(자체 메모 - React Router 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kritner/self-notes-react-router-getting-started-6fn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)