Data Fetching from API
***レコーダなしで無料で受講できるRealtJSコース、個人の参考**
通常、JSでデータを取得する方法はfetch()を使用します.
しかし、もっと良い方法があります.axiosはそれです.
△Axiosはfetchの上の小さな層で、後で勉強し直します.
このプロジェクトでは、YTSというAPIが使用されます.
YTSは違法トレン形式で映画をダウンロードするサイトなのでURLはどんどん変更されます.
だから私はNiko先生が固定したURLを使います.
該当するURLにアクセスします.
スクロールすることで多くの情報を知ることができます.
しかし、このAPIを直接使用するには、使用するデータ(授業でgrafthedataと表す)を把握する必要があります.
このプロセスでaxiosが使用されます.
まず、コードの内容を表示するよりも、
axiosを使用すると、必要なapiが得られたことを確認するだけです.
上を実行し、開発者ツールを使用してネットワークを確認します.以下に示します.
Axiosが何を求めているのかが見えます.
では、コードをよく見てみましょう.
レッスン内容により、
Axios.getは常に高速関数ではありません.
表示が少し遅い.
したがって、getMovies()を非同期関数(非同期関数)として宣言し、getMovies()が実行完了するまで時間がかかることを示す必要があります.
async()とawaitを使用して検証できます.
まず、async()を使用して、関数がタスクを待つ必要があることを通知します.
Axiosの前にwaitを追加し、axiosに待つ必要があることを伝えます.
上記のコードの全体的な流れを理解してみましょう.
まず、アプリケーションが表示されると州を定義します.isLoading=trueで、moviesという空の配列を生成します. render()でisLoadingがアクティブなため、画面に「Now Loading」が出力されます. アプリケーションが正常にマウントされたため、getMovies関数が呼び出されます. getMovies()は非同期で実行されます.すなわちaxiosです.getの完了を待つ.(await) では、私たちが得たapiを理解する必要があります.
上図に示すように、console.logを利用してshongで出力してみます.
私たちが最初に使用するデータはmovieのリストです.
次にmovieのリストを以下に示します.
data–data–data–映画に相当します.
したがって、Moviesは以下のようになります.data.data.映画を印刷すると
このようにして20個の映画カタログを抽出することができます.
しかし、そんなに無知に書けば、きれいにはなりません.
上記の図に示すように、apiのdata-data-moviesはより簡潔です.
(でも正直ここまでは思っていなかったような…)
今私たちがしなければならないのはgetmoviesの映画です.
すなわち,apiからaxiosで得られたmovieのlistを状態movies[]に入れる.
また、すべてのmovie listをインポートすると、ロードが終了するため、このセクションを変更する必要があります.
apiから映画のインポートに成功すると、
上のような窓が見えます!
しかし、ロードが完了すると、私たちが見たいのは「We are ready」という文だけではありません.
映画の情報を知りたいです.
追加のjsファイル(movies.js)を作成し、続行します.
PropType:
react素子のpropに渡す入力値のタイプを定義できます.
Functional componentのパラメータでpropsの特定値を取得する場合は、カッコで囲みます!
最後はアプリjsで関連コンテンツをレンダリングすればいいです.
レンダリングする内容はAppclassのstate内部のmovies[]データです.
したがって
Mapを利用して簡潔に仕上げました.
通常、JSでデータを取得する方法はfetch()を使用します.
しかし、もっと良い方法があります.axiosはそれです.
△Axiosはfetchの上の小さな層で、後で勉強し直します.
このプロジェクトでは、YTSというAPIが使用されます.
YTSは違法トレン形式で映画をダウンロードするサイトなのでURLはどんどん変更されます.
だから私はNiko先生が固定したURLを使います.
該当するURLにアクセスします.
スクロールすることで多くの情報を知ることができます.
しかし、このAPIを直接使用するには、使用するデータ(授業でgrafthedataと表す)を把握する必要があります.
このプロセスでaxiosが使用されます.
まず、コードの内容を表示するよりも、
axiosを使用すると、必要なapiが得られたことを確認するだけです.
上を実行し、開発者ツールを使用してネットワークを確認します.以下に示します.
Axiosが何を求めているのかが見えます.
では、コードをよく見てみましょう.
レッスン内容により、
Axios.getは常に高速関数ではありません.
表示が少し遅い.
したがって、getMovies()を非同期関数(非同期関数)として宣言し、getMovies()が実行完了するまで時間がかかることを示す必要があります.
async()とawaitを使用して検証できます.
まず、async()を使用して、関数がタスクを待つ必要があることを通知します.
Axiosの前にwaitを追加し、axiosに待つ必要があることを伝えます.
上記のコードの全体的な流れを理解してみましょう.
まず、アプリケーションが表示されると
上図に示すように、console.logを利用してshongで出力してみます.
私たちが最初に使用するデータはmovieのリストです.
次にmovieのリストを以下に示します.
data–data–data–映画に相当します.
したがって、Moviesは以下のようになります.data.data.映画を印刷すると
console.log(movies.data.data.movies;
このようにして20個の映画カタログを抽出することができます.
しかし、そんなに無知に書けば、きれいにはなりません.
上記の図に示すように、apiのdata-data-moviesはより簡潔です.
(でも正直ここまでは思っていなかったような…)
今私たちがしなければならないのはgetmoviesの映画です.
すなわち,apiからaxiosで得られたmovieのlistを状態movies[]に入れる.
また、すべてのmovie listをインポートすると、ロードが終了するため、このセクションを変更する必要があります.
This.setState({movies, isLoading : false});
と書くapiから映画のインポートに成功すると、
上のような窓が見えます!
しかし、ロードが完了すると、私たちが見たいのは「We are ready」という文だけではありません.
映画の情報を知りたいです.
追加のjsファイル(movies.js)を作成し、続行します.
PropType:
react素子のpropに渡す入力値のタイプを定義できます.
Functional componentのパラメータでpropsの特定値を取得する場合は、カッコで囲みます!
最後はアプリjsで関連コンテンツをレンダリングすればいいです.
レンダリングする内容はAppclassのstate内部のmovies[]データです.
したがって
Mapを利用して簡潔に仕上げました.
Reference
この問題について(Data Fetching from API), 我々は、より多くの情報をここで見つけました https://velog.io/@josuncom/React-Data-Fetching-from-APIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol