React Router, SPA,MPA
15115 ワード
▶スパとは?
▶MPAとは?
▶フレームワーク
▶ワードベース
▶︎ React Router(V6)
reactバージョンは16.8以上でなければなりません.
import React from 'react'
→ノードモジュールのレスポンスフォルダからレスポンスを取得する
▶ルーティング構造
import { BrowserRouter as Routes, Route } from 'react-router-dom';
3.path='pathは{}コンポーネントに入ります.
import { BrowserRouter as Routes, Route } from 'react-router-dom';
const Switch = () => {
return (
<Routes>
<Route path="/" element={<Landing />} />
</Routes>
);
}
1.ルーティングの親要素スイッチからルーティングに変更
<Router>
は一番外側にあり、ルーティング機能を中の子供たちに提供することを意味します.<Routes>
は、経路に従って変更すべき部分を(中の変更)と表記する.Routesの外に表示画面を変えても残る部分
つまり,ページ移動時に変更しない部分はRoutesの外に置かれる.(header, footer)
return (
<>
<Header />
<Routes>
<Route path="/" element={<Landing />} />
<Route path="/list" element={<Landing />} />
<Route path="/creation" element={<Create />} />
<Route path="/roulette/:id" element={<Roulette />} />
</Routes>
<Footer />
</>
);
2.『Route』の2つのアイテムを持つ。(path , element)
element = {<Main />}
をスクリーン上でレンダリングします.component
が使用されていたが、element
に置き換えられた. <Route path="/list/*" element={<Landing />} />
<Route path="/creation" element={<Create />} />
<Route path="/roulette/:id" element={<Roulette />} />
Routesファイルはindexです.jsをインポートし、レンダリングします.import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root'),
);
StrictModeは、アプリケーションの潜在的な問題を特定するツールです.参考資料:公式文書
3. this.props.history.push() -> useNavigate()
以前は、パラメータ受信素子として
history, match, location
を用いるHOCは、非ルーティング素子の場所でwithRouter()
を用いる必要があった.*HC高次構成部品:高次構成部品は、構成部品をインポートして新しい構成部品を返す関数です.
// v5
const history = useHistory();
history.push('/home');
history.replace('/home');
// v6
const navigate = useNavigate();
navigate('/home');
navigate('/home', {replace: true});
// v6 에서의 앞으로, 뒤로 가기 사용방법 변화
<button onClick={() => navigate(-2)}>Go 2 pages back</button>
<button onClick={() => navigate(-1)}>Go back</button>
<button onClick={() => navigate(1)}>Go forward</button>
<button onClick={() => navigate(2)}>Go 2 pages forward</button>
•Link componentとuseNavigate()の違い
- Link는 조건 없이 이동, props는 함수. 조건에 따라서 호출 할지말지 결정 가능.
•Link componentとa tagの違い
- SPA의 효율을 끌어올리기 위해 <Link to="/">
- <a>는 MPA. 주소가 바뀌면 새로 요청. 전체적으로 다시 가져옴.
—> 효율성 떨어짐
- Link component는 서버에 새로운 주소를 받아오지만 파일을 새로 요청하는 것이 아님.
- 리액트 라우터 돔에서 화면만 바꿔줌.
- 위에 메뉴바는 그대로 냅두고, 내용물만 바뀌는 경우 씀.
- Link 는 'to'라는 props 1개를 받고, 이동하는 경로를 넣으면 됌.
- 실제로 새로운 파일을 다운 받아야 하는 경우, a tag를 씀.
- 완전히 외부 링크로 갈 때, <a> 태그
参考資料:react-router 🚫 今日のミス
会社は反応初期設定を行い、Nav、Footerを適用しようとしたが、エラーが発生した.
3時間以上捕まえたようです.
ルータ内に他のルータのエラーはありません.
しかし、私はRouterを発表していません...?
アプリを見てみましたjsとroutes.jsは両方ともBrowserRouterで包まれています.ううう
忙しいのに楽屋に行って原因を闻いてみた.
気まずくて超感动...呜呜...
実際、この文章はreact-routerの更新前にrouterに関する文章を学ぶためです.
今、v 6に更新して整理し直しました.
今使っているのはjira、flow、zenkins、bitbucketなどです.
今まで使ったことのないツールなので、難しいです.ううう
一番大切なのはAWS...ㅠㅠS 3についての知識を学ぶ.
Zenkinsを使う理由->CI/CDも一緒に勉強します.
今週理解できるように勉強するつもりです.
私を理解して欲しい🙏..
間違いを知っているところがあればいつでもメッセージをお願いします!
Reference
この問題について(React Router, SPA,MPA), 我々は、より多くの情報をここで見つけました https://velog.io/@ryeon5789/React-Routerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol