[TIL] 20210514_clone coding
9281 ワード
元のエンコーダをリカバリクローン符号化する過程で、いくつかの新しい知識を学びます.
axios APIの呼び出し
オペレーティング環境によれば、ブラウザ内のXMLHttpRequestオブジェクトまたはノード.js上のhttp api を使用 ES 6 API を使用
変換要求及び応答データ HTTP要求キャンセル HTTP要求と応答を自動的にJSON形式 に変更する
今回のクローン符号化ではaxios要求apiを用い,同期処理のために以下の操作を行った.
apiリクエストが完了しなくても、次のタスクを続行できないためです.
パッケージ関数の前にasyncキーワードを書き、待機しているターゲット関数の前にawaitを書きます.このオブジェクトはaxios関数であるべきです.
次の内容が含まれます.react-router-dom
axios APIの呼び出し
Axios公式githubはAxiosをPromiseベースのHTTPクライアントと呼んでいる.
fetch関数よりaxiosが好きだと言われていますが、原因は何ですか?
次の切符が答えになるかどうか分からない.
JSONも自動変換できますよね!
AxiosはPromiseベースで、async/awaitコードを非常に容易に実現できます.長所がたくさんありますね
以下の特徴があります.参考にしてください.
変換
今回のクローン符号化ではaxios要求apiを用い,同期処理のために以下の操作を行った.
apiリクエストが完了しなくても、次のタスクを続行できないためです.
パッケージ関数の前にasyncキーワードを書き、待機しているターゲット関数の前にawaitを書きます.このオブジェクトはaxios関数であるべきです.
次の内容が含まれます.
// Home 컴포넌트
class Home extends React.Component {
...
// 비동기를 동기적으로 처리하는 꿀팁
getMovies = async () => {
const { data: { data: { movies } } } = await axios.get('url')
// api 호출이 완료되면 상태를 변경해줍니다.
this.setState({ movies, isLoading: false })
}
...
}
react-router-dom
単一ページアプリケーション(SPA)を実装する際に最も一般的なルータの1つです.
応答としてSPAを実装することは、要求された構成部品のみがローカルレンダリングされることを意味する.それを助けたのはreact-router-domです.
まず、パッケージを使用するには、端末で次のコマンドを使用してパッケージをダウンロードします.npm install react-router-dom
中にはHashRouterとRouteがあります
HashRouter
ルーターにはBrowserRouterとHashRouterの2種類があります.
あるブログによると、BrowserRouterはHTML 5のhistory locationを使ってUIを更新している.
HashRouterはURLハッシュを利用したルーターです.静的ページに最適です.
この違いについては、ブログの記録を単独で行う必要があります.
一般的に要求と応答からなるダイナミックページが作成されるため、BrowserRouterが一般的に使用される.
クローンコードはHashRouterを使用しています.
Route
リクエストされたpathnameに対応する構成部品をレンダリングします.
すべての構成部品は一度にレンダリングされません.とても面白いです.
使用例
ホーム素子にexcept={true}を書き込むのは、リアクターが素子を読み取ると、そのURLに含まれるすべての素子が取得されるからである.以下の場合、except={true}を書かずに「/about」のエレメントを呼び出すと、「/about」に対応するエレメント「/」と「/about」が読み込まれます.import { HashRouter, Route } from "react-router-dom";
function App() {
return <HashRouter>
<Navigation />
<Route path='/' exact={true} component={Home}/> // 각 path에 해당하는 컴포넌트를 불러옵니다.
<Route path='/about' component={About}/>
<Route path='/movie/:id' component={Datail}/>
</HashRouter>
}
Link
リンクタグはhtmlのaタグとよく似ています.ただし、aタグはSPAを実施するのに適していない.aラベルの特性はページを移動すると画面が再ロードされるため
ただし、リンクラベルはURLを変更するだけで、画面を再ロードすることなく、ページの移動を許可します.
使用方法はaリンクと少し異なります.aリンクはhrefに移動するurlを指定します.ただし、リンクタグはurlをtoオブジェクトのpathname値として指定します.// a 링크
<a href="서울특별시 url">서울특별시</a>
// Link 태그
<Link to={pathname: "여수시 url"}>여수시</Link>
urlに移動するときにstateをオブジェクトのパラメータに渡すこともできます.次のコードは、その使用例です.function Movie({id, year, title, summary, poster, genres}) {
return (
<Link to={{
pathname: `/movie/${id}`,
state: {
year,
title,
summary,
poster,
genres
}
}}>
...
</Link>
)
注意!!!
リンクタグはルータでのみ使用できます.上に見たHashRouterかBrowserRouterを覚えていますか?
クローンコードを行い、これまで知らなかった情報を多く得た.
クローンコードを続けます.
Reference
この問題について([TIL] 20210514_clone coding), 我々は、より多くの情報をここで見つけました
https://velog.io/@still3028/TIL-20210514clone-coding
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
npm install react-router-dom
import { HashRouter, Route } from "react-router-dom";
function App() {
return <HashRouter>
<Navigation />
<Route path='/' exact={true} component={Home}/> // 각 path에 해당하는 컴포넌트를 불러옵니다.
<Route path='/about' component={About}/>
<Route path='/movie/:id' component={Datail}/>
</HashRouter>
}
リンクタグはhtmlのaタグとよく似ています.ただし、aタグはSPAを実施するのに適していない.aラベルの特性はページを移動すると画面が再ロードされるため
ただし、リンクラベルはURLを変更するだけで、画面を再ロードすることなく、ページの移動を許可します.
使用方法はaリンクと少し異なります.aリンクはhrefに移動するurlを指定します.ただし、リンクタグはurlをtoオブジェクトのpathname値として指定します.
// a 링크
<a href="서울특별시 url">서울특별시</a>
// Link 태그
<Link to={pathname: "여수시 url"}>여수시</Link>
urlに移動するときにstateをオブジェクトのパラメータに渡すこともできます.次のコードは、その使用例です.function Movie({id, year, title, summary, poster, genres}) {
return (
<Link to={{
pathname: `/movie/${id}`,
state: {
year,
title,
summary,
poster,
genres
}
}}>
...
</Link>
)
注意!!!リンクタグはルータでのみ使用できます.上に見たHashRouterかBrowserRouterを覚えていますか?
クローンコードを行い、これまで知らなかった情報を多く得た.
クローンコードを続けます.
Reference
この問題について([TIL] 20210514_clone coding), 我々は、より多くの情報をここで見つけました https://velog.io/@still3028/TIL-20210514clone-codingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol