O armazenamento de dados no LocalStorage é útil, mas não é uma boa solução quando você armazena dados que precisam ser compartilhados em vários dispositivos ou navegadores.
Por exemplo, digamos que você queira mostrar um modal bem -vindo a todos os novos usuários que se inscrevem no seu produto. Se você usar o LocalStorage para rastrear, se um usuário já viu esse modal, seus usuários continuarão a obter a experiência repetidamente toda vez que trocará de dispositivos ou navegadores.
É aí que entra o RemoteStorage.
Instale a biblioteca usando seu gerenciador de pacotes favorito:
npm install remote-storageOu simplesmente incluí -lo em seu HTML:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >Importe a biblioteca e use -a como você faria 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!
}É isso!
O RemoteStorage usa IDs de usuário para identificar usuários. Um ID de usuário é uma string que identifica exclusivamente um usuário. Pode ser o que você quiser, mas recomendamos o uso de um UUID não-digno para impedir que os usuários adivinhem outros IDs de usuário e acessem seus dados.
O ID do usuário está definido quando você cria uma nova instância do remotoStorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )Se você não fornecer um ID de usuário, o RemoteStorage gerará um UUID aleatório que mudará sempre que o usuário visitar seu site. Isso é útil para testes, mas derrota o objetivo da remoção de remoção, pois os dados não persistirão entre dispositivos ou navegadores.
O RemoteStorage usa IDs de instância para identificar a instância do aplicativo que está fazendo a solicitação. Um ID da instância é uma string que identifica exclusivamente uma instância de aplicativo. Normalmente, você usaria o mesmo ID da instância para todas as solicitações da mesma instância do aplicativo.
O ID da instância está definido quando você cria uma nova instância do remotoStorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} ) Oferecemos um servidor comunitário hospedado gratuito em https://api.remote.storage (o comportamento padrão se nenhum serverAddress for fornecido). Este servidor hospedado não deve ser usado para aplicativos de produção, mas é ótimo para testar e prototipagem.
Para usar um servidor diferente, basta passar na opção serverAddress ao criar uma nova instância do remotoStorage:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )O servidor pode ser aumentado usando o Docker em alguns minutos. Consulte a documentação do servidor para obter mais informações.
A remoção de remoção deve ser usada apenas para dados não sensíveis. Recomendamos usá-lo para itens como preferências do usuário, configurações e outros dados não sensíveis. Devido à natureza da API pública, não é uma boa opção para armazenar dados confidenciais, como senhas ou PII.
O LocalStorage é uma API do navegador que permite armazenar dados no navegador. Os dados são armazenados localmente no dispositivo do usuário e não são compartilhados em dispositivos ou navegadores. A RemoteStorage é uma biblioteca que combina a API LocalStorage com um servidor remoto para persistir dados entre os navegadores e dispositivos.
O RemoteStorage pode ser usado sem qualquer autenticação, mas é altamente recomendável usar o JSON Web Tokens (JWT) para autenticar solicitações ao servidor. Isso pode ser feito definindo a variável de ambiente JWT_SECRET em .env para o seu segredo JWT para o servidor. Consulte a documentação do servidor para obter mais informações.
Solicitações de tração são sempre bem -vindas. Observe que, se você quiser propor alterações drásticas, abra um problema para discussão primeiro. Isso garantirá que seu PR seja aceito antes de você começar a trabalhar nele.
Para quaisquer problemas existentes que ainda não tenham um colaborador designado, sinta -se à vontade para comentar o problema se quiser trabalhar nele. Atribuiremos o problema a você se acharmos que você é um bom ajuste.
Fazendo alterações: implemente sua correção ou recurso de bug, escreva testes para cobri -lo e verifique se todos os testes estão passando. Garanta que seu compromisso aproveite mensagens semânticas de comprometimento e que sua mensagem de confirmação siga o formato convencional de comete. Em seguida, abra uma solicitação de tração para a filial principal.