将City组件的数据存入缓存,缓存中有就取缓存,没有则发送http请求

一、有缓存取缓存,没有缓存设置缓存

技术要点

  1. localStorage.setItem()
  2. localStorage.getItem()
  3. JSON.parse()
  4. JSON.stringify()
  1. export default {
  2. name: "City",
  3. data() {
  4. return {
  5. hotCities: [],
  6. cities: "",
  7. isLoading: true
  8. };
  9. },
  10. mounted: async function() {
  11. var cities = localStorage.getItem("cities");
  12. var hotCities = localStorage.getItem("hotCities");
  13. if (hotCities && cities) {
  14. this.hotCities = JSON.parse(hotCities);
  15. this.cities = JSON.parse(cities);
  16. this.isLoading = false;
  17. } else {
  18. var url =
  19. "https://easy-mock.com/mock/5d313b5dcac88245d6b0b79a/movie/city";
  20. var res = await this.axios.get(url);
  21. var data = res.data.data;
  22. this.handleCity(data);
  23. }
  24. },
  25. methods: {
  26. handleCity(data) {
  27. var { hotCities, cities } = data;
  28. this.hotCities = hotCities;
  29. this.cities = cities;
  30. localStorage.setItem("hotCities", JSON.stringify(hotCities));
  31. localStorage.setItem("cities", JSON.stringify(cities));
  32. this.isLoading = false;
  33. }
  34. }
  35. };
  36. </script>