Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.
Предположим, у нас есть React Native приложение и веб-приложение. Некоторые браузерные API, включая Local Storage, недоступны в React Native (там используется Async Storage). Как бы вы реализовали единый интерфейс для стора с разными реализациями хранения данных для веба и React Native?
Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.
Например: get(key): Promise<string|null>, set(key,value): Promise<void>, remove(key): Promise<void>. Web-адаптер оборачивает синхронные операции, native-адаптер делегирует AsyncStorage. Общий store знает только контракт; ошибки доступа и гидратацию состояния обрабатывают явно, секреты требуют отдельного защищённого хранилища.