javascript - 如何用数据更新v-if?

标签 javascript vuejs2 navbar vue-reactivity

我正在使用 vueJS 创建一个简单的应用程序,但我在 react 性方面遇到了一些问题。

当用户连接到应用程序时,他会获得 JWT,我将此 JWT 存储在本地存储中。为了验证用户是否已登录,我只需检查 token 是否存在。

首先,这是一个好方法吗?

现在我正在尝试更新导航栏,当用户未登录时,我有 2 个按钮“注册”“登录”,当他登录时,我希望显示“断开连接”按钮,而另外两个按钮消失.

我的导航栏组件内部带有“v-if”,用于显示或不显示按钮。

目前我在 data() 中设置了一个 bool 值“isLogged”,如何让 vueJS 监视该数据并在该数据更新时更新我的​​组件?

    <div class="navbar-item" v-if="!isLogged">
        <div class="buttons">
            <a @click="$router.push('/login')" class="button nav-button is-outlined">
                CONNEXION
            </a>
            <a @click="$router.push('/register')" class="button nav-button is-outlined">
                INSCRIPTION
            </a>
        </div>
    </div>
    <a @click="disconnect" class="navbar-item" v-if="isLogged">
        Déconnexion
    </a>
    data() {
        return {
            isLogged: this.$jwt.hasToken()
        }
    }

我希望更新导航栏而无需刷新组件。

最佳答案

使用计算值代替数据。

computed: {
    isLogged() {
        return this.$jwt.hasToken()
    }
}

关于javascript - 如何用数据更新v-if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55598559/

相关文章:

javascript - 片段 url 的正则表达式,但不是完整的

html - 如何确定v内容的大小

vue.js - 从自定义表槽中删除 THEAD、TBODY、TR HTML 元素

vue.js - 如何从 vue 中的回调访问本地组件变量?

html - 悬停和列表上的下拉菜单

javascript - 使用按钮而不是滚动条滚动 css、html、javascript

javascript - 在调整窗口大小时在导航栏上添加 'More options'

javascript - NavLink 组件不允许网站渲染并显示其中所有元素的奇怪错误

javascript - 带条件的 JQuery 选择框循环

javascript - 放大可见图像的中心?