通知提示怎么实现手动关闭后不再自动显示?
我用 Vue 做了个页面顶部的通知提示,希望用户点“关闭”按钮后就彻底隐藏,但每次刷新页面它又出现了。明明已经加了 v-if 控制,是不是状态没保存?
试过用 localStorage 存 isShow 状态,但好像没生效,不知道是逻辑写错了还是时机不对。
<template>
<div v-if="showNotice" class="notice">
这是一条重要通知!
<button @click="closeNotice">关闭</button>
</div>
</template>
<script>
export default {
data() {
return { showNotice: true }
},
methods: {
closeNotice() {
this.showNotice = false
}
}
}
</script>
showNotice,刷新页面就重置回初始值了。用localStorage是对的方向,但你可能漏了读取和写入的时机。关键点有两个:一是组件挂载时得先从
localStorage里读状态,二是关闭时得同步写进去。另外要注意localStorage存的是字符串,得手动转成布尔值。改法如下:
这样改完,用户点关闭后,页面刷新也不会再显示了。
另外提醒一句,别把敏感信息存在
localStorage里——虽然这里只是个状态标记,但养成习惯很重要。