をリダイレクトして、ホーム・ページにリダイレクト:Vuex状態は、値がint型vuexストアを設定し、私は、ユーザーがログインするには、このメソッドを持っているVue.jsで
login: function() {
axios.post(this.BASE_URL + "/login", {
username: this.username,
password: this.password,
}).then((res) => {
this.$store.commit('setIsAuthenticated', true);
this.$store.commit('setToken', res.data.token);
this.$store.commit('setPhoto', res.data.photo);
this.$store.commit('setUsername', res.data.username);
window.location.href = '/home'; //<-The problem
}
例変異:
setToken: function (state, token) {
state.token = token;
},
setUsername: function (state, username) {
state.username = username;
},
App.vue
(ルートコンポーネント)で
、私は計算された値としてストアから値を得る:
computed: {
isAuthenticated() {
return this.$store.state.isAuthenticated;
},
token() {
return this.$store.state.token;
} ,
私がwindow.location.href = '/home';
をコメントアウトすると、Vue.jsコンソールにログインが成功し、値がストアに設定されていますが、ページが/home
にリダイレクトされるとすぐに、すべてのストア値が空になります。 なぜこれが起こり、どうやって解決するのだろうか?
UPDATE: 私はこのようroutes.js
でVUE-ルータを使用しています:
import webLogin from './components/webLogin.vue';
import showAll from './components/showAll.vue';
export default [
{path:'/', component: showAll },
{path:'/add', component: addJoke } ,
{path: '/login', component: webLogin},
]
あなたはVueのルータを使用していますか? – str
はい私はvueルータを使用します。 – Karlom
'window.location.href'はまったく新しいページを読み込みます。データがページ要求を超えて利用可能になる必要がある場合は、そのデータをどこかに保持する必要があります。私は 'localStorage'と今のところ行くつもりです – Phil