2021.05.09
6632 ワード
*netflixクローンページ共通ロードコンポーネントの作成
-必須の実装
App.AppLoadingは、vue内の各コンポーネントのAPI要求を確認することによってロード状態を表示します.vue構成部品を作成する
現在アクセスしているコンポーネントで発生しているすべてのAPI要求が完了したかどうかを確認するために使用できる論理を参照します.
アクセスした構成部品については、キャッシュデータを使用してAPI[]を再要求しないでください.
ハイブリッド、プラグイン、およびVue-routerナビゲータを使用して汎用論理処理を参照[]
2021.05.09
🎉 TODO
汎用ロードコンポーネントを作成します.[✔]
ページにアクセスした場合は、キャッシュを使用したページで、現在のページをキャッシュされたページに登録します.
キャッシュされたデータがあり、キャッシュされたページを使用している場合は、キャッシュされたデータがロードされます.
🎉 1.AxiosキャッシュとAPIキャッシュの使用
キャッシュとは?
ディスクキャッシュとは
2.キャッシュをAxiosアダプタとして使用
2.1
headers: { "Cache-Control": "no-cache" }
Axiosオプションに適用した場合の要求ヘッダの違いheaders: { "Cache-Control": "no-cache" }
ヘッダーの相違を要求adapter: cacheAdapterEnhancer(axios.defaults.adapter)
デフォルトでは、キャッシュはすべてのAPI要求に適用されます.同じAPI要求が発生した場合、ネットワーク要求は行わず、キャッシュされたデータを取得する.良い方法:リンクを直接クリックまたはリフレッシュする場合は、新しいデータが受信されていることを確認し、ページに戻るか前進するときにキャッシュされたデータを使用します.
2.3 Axiosキャッシュの適用
const instance = axios.create({
baseURL: process.env.VUE_APP_TMDB_END_POINT,
headers: { "Cache-Control": "no-cache" },
params: {
api_key: process.env.VUE_APP_TMDB_API_KEY,
},
//1.
adapter: cacheAdapterEnhancer(axios.defaults.adapter, {
enabledByDefault: false,
}),
});
// 영화 리스트
export const fetchMovies = async (category, page) => {
page || (page = 1);
const url = `/movie/${category}?page=${page}`;
return await movieAxios.get(url, {
// 2.
forceUpdate: //
// 3.
cache: true,
});
};
APIにキャッシュを適用して、有用な映画のリストを取得します.enabledByDefault: false
オプションデフォルトでキャッシュを無効にします.forceUpdate: true
キャッシュされたデータを使用せずに新規データを要求する.したがって、この部分では、ページがリフレッシュされているか否かを判断し、後ろ/前に進むか否かを判断し、true/false
オプションを適用する必要がある.cache: true
キャッシュを使用するように設定Reference
この問題について(2021.05.09), 我々は、より多くの情報をここで見つけました https://velog.io/@kyh196201/2021.05.09テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol