Idb-keyval предоставляет простой и удобный интерфейс для
работы с IndexedDB, абстрагируя большинство сложностей работы с
асинхронным хранилищем браузера. Основным инструментом для настройки
собственной базы данных является функция createStore,
которая позволяет создавать отдельные хранилища с индивидуальными
параметрами.
createStoreimport { createStore } from 'idb-keyval';
const store = createStore(dbName, storeName);
dbName — имя базы данных (тип: string), в
которой будет создаваться хранилище.storeName — имя конкретного хранилища данных (тип:
string) внутри базы.Оба параметра являются обязательными для явного создания собственного пространства хранения.
dbName)Имя базы определяет, в какой физической базе IndexedDB будут храниться данные. При указании одного и того же имени базы в разных частях приложения данные будут сохраняться в одной базе, что позволяет организовать общие или глобальные настройки.
Особенности:
idb-keyval создаёт
её автоматически.user-settings,
app-cache).storeName)Хранилище (object store) — это логическая коллекция
данных внутри базы. С помощью имени хранилища можно разделять различные
типы данных в одной базе, избегая конфликтов ключей и обеспечивая
структурированное хранение.
Особенности:
todos, cache,
preferences).createStoreimport { createStore, set, get, del } from 'idb-keyval';
// Создание собственной базы и хранилища
const userStore = createStore('user-database', 'settings');
// Сохранение значения
set('theme', 'dark', userStore);
// Получение значения
get('theme', userStore).then(value => {
console.log(value); // 'dark'
});
// Удаление значения
del('theme', userStore);
В данном примере создаётся база user-database с
хранилищем settings. Все операции (set,
get, del) применяются только к этому
хранилищу, не затрагивая другие базы или хранилища.
Использование нескольких хранилищ позволяет организовать хранение данных по категориям. Каждое хранилище изолировано друг от друга:
const cacheStore = createStore('app-database', 'cache');
const prefsStore = createStore('app-database', 'preferences');
set('lastFetched', Date.now(), cacheStore);
set('language', 'ru', prefsStore);
Idb-keyval автоматически управляет версией базы при
добавлении новых хранилищ. Если база уже существует, но указано новое
хранилище, IndexedDB увеличивает версию базы и создаёт новый объект
store.
Практическое значение:
dbName определяет физическую базу IndexedDB.storeName создаёт логическое хранилище внутри
базы.createStore позволяет разделять данные по
категориям и изолировать операции между хранилищами.Эффективное применение параметров createStore
обеспечивает структурированное, безопасное и удобное хранение данных,
упрощает поддержку и масштабирование приложений на
JavaScript.