2017-02-16 68 views
0

我正在開發一個Vue.js應用程序,我正在嘗試使用多個組件進行系統日誌記錄。Vue.js - 使用v-on:點擊和v鏈接在一起

在我App.vue組分(其是 「主」 成分和具有NAV-bar)的有此按鈕:

<a class="nav-item" v-link="'login'" v-if="!user.authenticated">Login</a> 

... 

import auth from '../auth' 

export default { 
data(){ 
    return{ 
    user = auth.user 
    } 
} 
} 

在一個其它文件(/auth/index.js)予定義「身份驗證」方法,因爲這樣:

... 
    user: { 
    authenticated: false 
    }, 

    login(email, password) { 
    axios.post(LOGIN_URL, { 
     email, 
     password 
    }).then((response) => { 
     this.user.authenticated = true; 
     this.user = response.data; 
     router.go('/home'); 
    }) 
    .catch((error)=>{ 
     console.log(error); 
    }); 
    } 

然後,我有另外一個組件名稱Login.vue一個處理登錄模板的看法和所謂的「auth.login」的方法與所需的PARAMS。

問題是我想從App.vue更新用戶名auth.user的值他登錄後。我應該怎麼做?我是否必須管理v-on:點擊和v-link優先級,並提出一種新方法?

編輯:

我也想

回答

0

我設法找到一個解決方案加入這個使用beforeRouteEnter方法,通過我不是成功:

watch: { 
    $route() { 
    this.user = auth.user 
    } 
}, 

繼文檔here