В аутентификации пользователя,
Я попытался изменить домашний дисплей и показать «Добро пожаловать» и «Выход»
Моя проблема в том, что значения v-if
не изменяются с router.push. Я должен обновить страницу, чтобы показать эти блоки
<template>
<div>
<form class="login" @submit.prevent="login">
<h1>Sign in</h1>
<label>Email</label>
<input required v-model="email" type="email" placeholder="Name"/>
<label>Password</label>
<input required v-model="password" type="password" placeholder="Password"/>
<hr/>
<button type="submit">Login</button>
</form>
</div>
</template>
<script>
export default {
data(){
return {
email : "",
password : ""
}
},
methods: {
login: function () {
let email = this.email
let password = this.password
this.$store.dispatch('login', { email, password })
.then(() => this.$router.push('/'))
.catch(err => console.log(err))
}
}
}
</script>
и app.vue:
Шаблон:
<span v-if="isLoggedIn"> {{user.email}} </span>
<span v-if="isLoggedIn"> | <a @click="logout">Logout</a></span>
в сценарии:
computed : {
isLoggedIn : function(){ return this.$store.getters.isLoggedIn}
}