javascript - Vue JS v-if不更新登录数据
问题描述
我是第一次使用 Vue JS,我有一个导航栏,显示两个按钮“登录”和“注册”,第三个按钮“注销”,除非用户登录,否则不会显示。
我将这些按钮包裹在 a中<template v-if="authenticated">
,<template v-else>
登录表单和注册表单是一个简单的 Bootstrap 4 模式
我切换authenticated
变量的方式是这样的
data: function() {
return {
authenticated: false
}
},
methods: {
logout: function() {
this.$session.destroy()
}
},
created() {
this.authenticated = this.$session.exists()
},
我的导航栏在一个单独的组件中,我的登录和注册表单在一个单独的模式中。
<template v-if="authenticated">
<li class="nav-item">
<a href="#" v-on:click="logout" class="nav-link">تسجيل الخروج</a>
</li>
</template>
<template v-else>
<li class="nav-item">
<a class="nav-link" data-target="#signup" data-toggle="modal" href="#signup">إنشاء حساب</a>
</li>
<li class="nav-item">
<a class="nav-link" data-target="#login" data-toggle="modal" href="#login">دخول</a>
</li>
</template>
虽然当我登录时authenticated
它会改变。
解决方案
我觉得这是一个普遍的问题。强制组件重新渲染的一种可能方法是在使用组件时添加具有完整路径值的“键”道具。例如:
<Navbar :key="$route.fullPath"></Navbar>
推荐阅读
- excel - 如何隐藏 Excel 应用程序并显示用户表单?
- python - 这是我的函数或 Python 中的 docx.Document 的缺陷吗
- laravel - Laravel nova如何挂钩创建方法逻辑以传递默认数据而不在表单中显示该字段?
- c# - 测试未显示在带有 Visual Studio 2017 的 specflow + nunit3 中
- reactjs - 更改 MUI 文本字段的多个组件根
- javascript - 在jquery数据表jquery中禁用排序
- database - 我在数据库中需要多少张表
- excel - 电源查询,我如何获得 url 地址
- java - 无法创建选定的首选项页面。自动激活捆绑包 org.eclipse.m2e.core.ui 时出错 (597)
- php - 导入脚本后,引导滑块停止工作