chrome存储在更新扩展时会受到怎样的影响



如果用户将数据添加到扩展chrome.storage.local/sync,则扩展会因为发布了新版本而更新。chrome.storage.local/sync还是会重置?

不,它将是相同的。

实际上,在存储中有一些"架构版本"变量是很常见的,如果数据格式随更新而更改,您可以使用这些变量来升级存储。

但是,重要的是要记住,卸载扩展将完全擦除存储,如果启用了同步,则包括sync存储。

如果在更新扩展时未调用chrome.storage.sync.set,则保留旧数据。

如果状态键值在更新过程中发生变化,则需要清除数据,否则会累积大量丢弃的值。

const initData = { a: 10, b: 20 };
// Use old value if there is one
// If a new value is added, the value of `initData` is used by default
chrome.storage.sync.get(dataRaw => { 
  const data = Object.entries(initData).reduce((acc, [k, v]) => {
    return { ...acc, [k]: dataRaw[k] === undefined ? v : dataRaw[k] };
  }, {});
 // Clean up unwanted data
  chrome.storage.sync.clear(() => chrome.storage.sync.set(data));
});

最新更新