Как хранить данные из API в localStorage с VueJS

Моя практика простого SPA с VueJS требует, чтобы я слушал API и сохранял некоторые из его данных в localStorage браузера, однако я все еще не очень опытен с VueJS, поэтому я не знаю, как взять конкретные данные и сохранить его в LS, чтобы зарегистрированные пользователи могли видеть свою информацию позже.

API извлекает МНОГО информации, пока я хочу получить только адрес электронной почты и имя пользователя.

Это код на данный момент:

<script>
    import axios from 'axios';
  import jsonpAdapter from 'axios-jsonp';

  export default {
    data() {
      return {
        info: 'placeH',
        data: []
      }
    },
    mounted: function(){
      axios({
        url: 'APIplaceholder'
        adapter: jsonpAdapter
      }).then((res) => {

      });
    }
  }
</script>

Моя проблема сейчас в том, что я не знаю, как выбрать только конкретную информацию (API возвращает много информации, но мне нужны только адрес электронной почты и имя), которую я хочу, а затем сохранить ее в localStorage.

Я думаю, что лучше всего было бы также сохранить его в файл JSON в LS.

Затем сохраните его в локальном хранилище. Я предлагаю вам использовать async / await.

Piterden 30.09.2018 18:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
6 180
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы получаете объект response со свойством data, который представляет запрошенный user следующим образом:

mounted: function(){
  axios({
    url: 'APIplaceholder'
    adapter: jsonpAdapter
  }).then((res) => {     
        localStorage["name"]=res.data.name
        localStorage["email"]=res.data.email
  });
}

localStorage хранит только строки. Это означает, что localStorage.setItem("apiData", res.data) сохранит строку "[Object object]" в localStorage, а не объект res.data.

Вы должны использовать JSON.stringify() и JSON.parse() для установки и получения элементов из localStorage.

.then((res) => {
     localStorage.setItem("apiData", JSON.stringify(res.data));
});

вы можете получить их,

var data = JSON.parse(localStorage.getItem("apiData"));

тогда вы можете получить доступ к данным с помощью оператора (точка), например data.userName.

Надеюсь, это поможет.

Чтобы убедиться, правильно ли я понимаю: первый аргумент «apiData» - это то, что будет сохранено, а второй - res.data - это фактические данные, взятые из API? что означает, что res.data получит "[email protected]", а затем он будет передан и сохранен в "apiData"? Если да, то разве нет необходимости преобразовывать это в json?

Dasphillipbrau 30.09.2018 19:08

да вы правы. localStorage хранит только строки. Я обновил свой ответ.

Sankha Karunasekara 30.09.2018 19:24

Другие вопросы по теме