vue.js - 如何使模态在打开一次后具有错误值
问题描述
每当我加载我的组件时,我都会加载一个带有指令的模式,我希望它只发生一次。当用户按下 f5 时,我不想再显示此模式,除非他用按钮触发它。我该如何设置,我需要一个带有 localStorage 的计算函数吗?
零件
InstModal(:toggleModal="instructionModal" @ok="instructionModal = false")
设置
const instructionModal = ref(false)
setTimeout(() => (instructionModal.value = true), 2000)
解决方案
您需要 localStorage,以便您可以在不同的会话中保留它。你不需要计算来实现你想要的,tho。假设您想使用以下键将其存储在 localStorage 中instructionModalOpened
:
const instructionModal = ref(+localStorage.getItem('instructionModalOpened') || false)
setTimeout(() => {
instructionModal.value = true;
localStorage.setItem('instructionModalOpened', '1')
}, 2000);
但是,如果instructionModal
可以在您的代码的其他地方发生突变,您最好观看它,即:
const instructionModal = ref(+localStorage.getItem('instructionModalOpened') || false)
setTimeout(() => {
instructionModal.value = true;
}, 2000);
watch(instructionModal, (val) => {
if (!val) return;
localStorage.setItem('instructionModalOpened', '1')
});
推荐阅读
- objective-c - iOS - 无法将 .MOV 和 .jpg 保存为 LivePhoto - 显示错误 NSCocoaErrorDomain Code=-1 [目标 C]
- docker - 为什么没有在 docker swarm 中运行的 kafka 端口?
- reactjs - 如何在渲染中调用方法而不是componentDidUpdate?
- android - 如何安全退出 Android Camera2BasicFragment 并在下一个活动中显示捕获的图像?
- scala - Spark小数类型精度损失
- python - 从 azure blob 存储中读取多行
- php - 如果发现日期字符串在日期之间,则返回 pay_period_start 和 pay_period_end。如何?
- python - 用于 Win32 平台的 CMake find_package(PythonInterp 3.7 REQUIRED)
- amazon-web-services - 从 Athena 获取数据并粘合权限
- spring - 如何实现支持 Spring 分页的 feign 请求?