Vuex getter 上的 v-if

use*_*789 1 javascript vue.js vuex

我正在使用 vuex getters isLoggedIn 来检查用户是否登录。

<div v-if="isLoggedIn" class="ml-2 py-2 group relative">...</div>
Run Code Online (Sandbox Code Playgroud)
data() {
            return {
                isLoggedIn: this.$store.getters['auth/isLoggedIn']
            }
        },
Run Code Online (Sandbox Code Playgroud)

这不起作用。但是如果我不将 getter 的值设置为 data 并直接在 v-if 中检查条件,那么它将起作用。像这样的东西:

// This works for me.
<div v-if="this.$store.getters['auth/isLoggedIn']" class="ml-2 py-2 group relative">...</div>
Run Code Online (Sandbox Code Playgroud)

我不知道有什么区别?谢谢。

app*_*ple 5

使用computed,data只执行一次

computed:{ 
   isLoggedIn(){return this.$store.getters['auth/isLoggedIn']} 
}
Run Code Online (Sandbox Code Playgroud)