1

私はvue.jsコンポーネント内のクロムブラウザのローカルストレージにアクセスしようとしています。Vue.js内でChrome拡張APIを使用するコンポーネント

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検査のコンソールは、この私に語ったものです: enter image description here

ので、私はそれがうまくいったと仮定した。 enter image description here

は手動でも私には何も表示されませんコンソールでlocalStorageをチェック::私は、デバッガタブを介してローカルストレージをチェックするときしかし、私は何も見えないので enter image description here

私はクロームでpersistetされていないデータを想定ブラウザ?

どのように私はこれを動作させることができます知っていますか?または私にヒントを与えますか?

+3

'localStorage'はchrome.storage.localがデータを保存する場所ではありません。 [documentation](https://developer.chrome.com/extensions/storage)を参照してください。後者は非同期であることにも注意してください。 – wOxxOm

+0

関連:[window.localStorage vs chrome.storage.local](https://stackoverflow.com/q/24279495) – Makyen

答えて

1

Chrome.storage APIとlocalStorage APIはどちらも異なります。 Chrome.storage APIは、拡張機能の特定のストレージニーズを満たすように最適化されています。これは、localStorage APIと同じストレージ機能を提供します。この2つの間には、storage APIがオブジェクトとして格納できるストリング内のデータを格納するlocalStorage APIと、バルクの読み書き操作とは非同期なので、localStorage APIよりも高速です。あなたがlocalStorage APIに保存したい場合。あなたはlocalStorage.myvarを使用してこの変数にアクセスすることができます

localStorage.removeItem("myvar"); 

のような項目を削除するには、

localStorage.getItem("myvar"); 

でアイテムを取得することができます

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

による

localStorage.myvar = "This is an example"; 

または

を行うことができます。希望すると助かります

+0

説明をありがとう。私は最終的にクロムストレージAPIの同期の違いの問題を発見しました – xetra11

+0

ストレージAPIはオブジェクトとしてではなくJSON文字列としてデータを保存します。そのため、保存されたものはJSONでなければなりません。 – Makyen

+0

'ストレージAPIはオブジェクトとしてここに保存できます 'https://developer.chrome.com/extensions/storage – Kumar

関連する問題