Vue.js 计算属性未触发v-if块
我是Vue.js的新手,对watch/computed属性感到迷茫。我已经检查了其他答案,但似乎没有一个是有帮助的 我正在构建一个非常基本的身份验证检查机制,在该机制中,我将一个值存储在localStorage中,并检查它以查看是否可以显示组件 我的v-if块如果行为不符合预期,将在重新加载后触发,而不是触发预渲染。我做错了什么Vue.js 计算属性未触发v-if块,vue.js,Vue.js,我是Vue.js的新手,对watch/computed属性感到迷茫。我已经检查了其他答案,但似乎没有一个是有帮助的 我正在构建一个非常基本的身份验证检查机制,在该机制中,我将一个值存储在localStorage中,并检查它以查看是否可以显示组件 我的v-if块如果行为不符合预期,将在重新加载后触发,而不是触发预渲染。我做错了什么 一些内容 一些内容 导出默认值{ 名称:“应用程序”, 计算:{ isAuthenticated:函数(){ if(localStorage.getItem('au
一些内容
一些内容
导出默认值{
名称:“应用程序”,
计算:{
isAuthenticated:函数(){
if(localStorage.getItem('authenticated')='true'){
返回真值
}否则{
返回错误
}
}
},
}
您可以创建一个方法来检查经过身份验证的用户,并在created()或mounted()块中运行该方法。或者您可以使用vuex,这是一个更好的选项localStorage
不是被动的,因此计算属性的值永远不会从其初始值更改。然后使用方法并运行它预呈现(例如created())应该可以工作,但它不工作,它仍然需要页面刷新是否确实已验证()这真的是真的吗?这样做似乎可以正常工作:@OscarCarballal使用方法可以避免缓存问题,但当localStorage
的内容更改时,它仍然不会导致组件重新渲染。只有更改反应式数据才能做到这一点。您需要确保当您更改localStorage
的内容时,它也会更新一些反应性内容,然后让您的模板使用这些内容,而不是直接尝试使用localStorage
。@Zim是的,它会在正确的时间返回预期值。我也有同样的问题。if块在我重新加载之前不会重新计算。created()应该在渲染之前运行,但由于某些原因,if blocl没有反应。