Используйте API расширения Chrome в компоненте Vue.js

1

Я пытаюсь получить доступ к локальному хранилищу chrome extension ergo в браузере Chrome в моем компоненте vue.js.

ServerList.vue

    <template>
      <div>
        <server-list :server-descriptions="serverDescriptions"/>
      </div>
    </template>

    <script>
      import ServerList from "./ServerList.vue"

      chrome.storage.sync.set({'foo': 'hello', 'bar': 'hi'}, function() {
        console.log('Settings saved');
      });

      chrome.storage.sync.get(['foo', 'bar'], function(items) {
        console.log('Settings retrieved', items);
      });
    [...]

   </script>

Этот код находится внутри моего popup.html, и это то, что консоль проверки popup.html говорит мне об этом: Изображение 174551

Поэтому я полагал, что это сработало. Но когда я проверяю локальное хранилище через вкладку отладчика, я ничего не вижу: Изображение 174551

Даже проверка localStorage в консоли вручную не показывает мне ничего: Изображение 174551

Поэтому я предполагаю, что данные не сохраняются в моем браузере Chrome?

Кто-нибудь знает, как я могу заставить это работать? Или дать мне подсказку?

Теги:
vue.js
google-chrome-extension
google-chrome-storage

1 ответ

1
Лучший ответ

Chrome.storage api и localStorage api - это разные вещи. Chrome.storage api оптимизирован для удовлетворения конкретных потребностей хранения расширений. Он обеспечивает те же возможности хранения, что и локальный API. Есть много различий между этими двумя, как localStorage API хранит данные в строках, где хранилище api может быть сохранено как объекты и оно асинхронно с объемными операциями чтения и записи, поэтому оно быстрее, чем localStorage api. Если вы хотите сохранить в localStorage api. Вы можете сделать это,

localStorage.myvar = "This is an example";

или же

localStorage.setItem("myvar", "This is an example");

Вы можете получить товар

localStorage.getItem("myvar");

Удалить элемент как

localStorage.removeItem("myvar");

вы можете получить доступ к этой переменной, используя localStorage.myvar. Надеюсь, поможет

  • 0
    Спасибо за разъяснения. Наконец-то я обнаружил проблему в разнице между синхронизацией api хранилища файлов
  • 0
    API хранилища хранит данные в виде строк JSON, а не объектов. Вот почему все, что хранится, должно быть в формате JSON.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню