Postei no chat (duas vezes), ninguém respondeu, então espero conseguir ajuda aqui.
Eu tenho um mixin isLoggedIn() que retorna true se o item estiver presente no localStorage e false se não estiver.
Minha pergunta é, como posso reavaliar o estado quando atualizo ou removo o item do formulário localStorage, porque tenho alguns elementos mostrados apenas se isLoggedIn for true?
E é certo usar v-show="isLoggedIn()" ou você sugeriria outra coisa, não sei qual é a melhor prática para isso?
Obrigado rapazes.
O problema aqui é que localStorage não é reativo, então você precisa de algo que seja reativo para acionar as alterações. Basicamente, você usa um objeto para representar o estado de login e, ao fazer login/logout, você modifica localStorage e esse objeto juntos (e inicializa esse objeto lendo de localStorage no carregamento do aplicativo).
Consulte http://vuejs.org/guide/application.html#State_Management
e https://auth0.com/blog/2015/11/13/build-an-app-with-vuejs/ que faz exatamente o que você está tentando fazer.
@yyx990803 Obrigado cara, este artigo é exatamente o que estou tentando fazer.
Qual é o melhor lugar para verificar o armazenamento local na inicialização do aplicativo para ver se o usuário já fez login em uma sessão anterior? No tutorial referenciado, eles apenas têm uma linha dentro do arquivo de inicialização / main.js
antes que o Vue seja inicializado. Já fiz algo parecido . Isso é recomendado?
Comentários muito úteis
O problema aqui é que localStorage não é reativo, então você precisa de algo que seja reativo para acionar as alterações. Basicamente, você usa um objeto para representar o estado de login e, ao fazer login/logout, você modifica localStorage e esse objeto juntos (e inicializa esse objeto lendo de localStorage no carregamento do aplicativo).
Consulte http://vuejs.org/guide/application.html#State_Management
e https://auth0.com/blog/2015/11/13/build-an-app-with-vuejs/ que faz exatamente o que você está tentando fazer.