Хранение данных в LocalStorage полезно, но это не хорошее решение, когда вы храните данные, которые необходимо обмениваться на нескольких устройствах или браузерах.
Например, допустим, вы хотите показать приветственный модал всем новым пользователям, которые подписываются на ваш продукт. Если вы используете LocalStorage для отслеживания, если пользователь уже видел этот модал, ваши пользователи будут продолжать получать опыт снова и снова каждый раз, когда они меняют устройства или браузеры.
Вот где появляется удаленное состояние. Используя тот же API, что и LocalStorage, Remotestorage позволяет легко читать и записывать данные на лету при сохранении состояния в разных браузерах и устройствах, чтобы обеспечить лучший пользовательский опыт.
Установите библиотеку, используя ваш любимый диспетчер пакетов:
npm install remote-storageИли просто включите его в свой HTML:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >Импортируйте библиотеку и используйте ее, как будто вы будете LocalStorage:
import { RemoteStorage } from 'remote-storage'
const remoteStorage = new RemoteStorage ( { userId : "my-user-id" } )
const hasSeenNewFeature = await remoteStorage . getItem ( 'hasSeenNewFeature' )
if ( ! hasSeenNewFeature ) {
await remoteStorage . setItem ( 'hasSeenNewFeature' , true )
// Highlight your new and exciting feature!
}Вот и все!
Remotestorage использует идентификаторы пользователей для идентификации пользователей. Идентификатор пользователя - это строка, которая уникально идентифицирует пользователя. Это может быть все, что вы хотите, но мы рекомендуем использовать неиспользуемый UUID, чтобы пользователи не догадались на другие идентификаторы пользователей и доступ к своим данным.
Идентификатор пользователя устанавливается при создании нового экземпляра Remotestorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )Если вы не предоставите идентификатор пользователя, Remotestorage будет генерировать случайный UUID, который будет изменяться каждый раз, когда пользователь посещает ваш сайт. Это полезно для тестирования, но побеждает цель удаленного проживания, поскольку данные не будут сохраняться на разных устройствах или браузерах.
Remotestorage использует идентификаторы экземпляра для идентификации экземпляра приложения, который делает запрос. Идентификатор экземпляра - это строка, которая однозначно идентифицирует экземпляр приложения. Как правило, вы используете один и тот же идентификатор экземпляра для всех запросов из одного экземпляра приложения.
Идентификатор экземпляра установлен при создании нового экземпляра Remotestorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} ) Мы предлагаем бесплатный хостированный сервер сообщества по адресу https://api.remote.storage (поведение по умолчанию, если не предоставляется serverAddress ). Этот размещенный сервер не должен использоваться для производственных приложений, но он отлично подходит для тестирования и прототипирования.
Чтобы использовать другой сервер, просто передайте опцию serverAddress при создании нового экземпляра Remotestorage:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )Сервер может быть развернут, используя Docker через несколько минут. Смотрите документацию сервера для получения дополнительной информации.
Удаленное пятно должно использоваться только для нечувствительных данных. Мы рекомендуем использовать его для таких вещей, как пользовательские предпочтения, настройки и другие нечувствительные данные. Из -за характера публичного API, он не подходит для хранения конфиденциальных данных, таких как пароли или PII.
LocalStorage - это API браузера, который позволяет хранить данные в браузере. Данные хранятся локально на устройстве пользователя и не совместно используются между устройствами или браузерами. Remotestorage - это библиотека, которая объединяет API LocalStorage с удаленным сервером, чтобы сохранить данные в браузерах и устройствах.
Remotestorage может использоваться без аутентификации, но мы настоятельно рекомендуем использовать JSON Web Tokens (JWT) для аутентификации запросов на сервер. Это можно сделать, установив переменную среды JWT_SECRET в .env для вашего секрета JWT для сервера. Смотрите документацию сервера для получения дополнительной информации.
Запросы на вытягивание всегда приветствуются. Обратите внимание, что если вы собираетесь предложить радикальные изменения, сначала обязательно откройте проблему для обсуждения. Это гарантирует, что ваш PR будет принят, прежде чем вы начнете работать над ним.
Для любых существующих вопросов, которые еще не имеют назначенного участника, не стесняйтесь комментировать проблему, если вы хотите поработать над этим. Мы назначим вам проблему, если думаем, что вы хорошо подходите.
Внесение изменений: реализуйте исправление или функцию ошибки, запишите тесты, чтобы покрыть его и убедиться, что все тесты проходят. Убедитесь, что ваш коммит использует сообщения о семантическом коммите и что ваше сообщение о коммите следует за обычным форматом Commits. Затем откройте запрос на тягу в главную ветвь.