Я пытаюсь получить доступ к локальному хранилищу 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 говорит мне об этом:
Поэтому я полагал, что это сработало. Но когда я проверяю локальное хранилище через вкладку отладчика, я ничего не вижу:
Даже проверка localStorage
в консоли вручную не показывает мне ничего:
Поэтому я предполагаю, что данные не сохраняются в моем браузере Chrome?
Кто-нибудь знает, как я могу заставить это работать? Или дать мне подсказку?
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
. Надеюсь, поможет