vue.js - 用户第一次访问页面时如何删除工具提示?
问题描述
我想在用户第一次登录时在路由器链接上显示工具提示和气泡,并在他访问页面时将其删除。
路由已经设置并且工作正常。在我的App.vue里面:
<template>
<div id="app" >
<div id="nav">
<router-link to="/home">Home</router-link>
<router-link to="/User">{{$t('user-text')}}
<div class="tooltip">
<span class="badge">!</span>
<span class="tooltiptext">{{ $t('visit-page-for-first-time') }}</span>
</div>
</router-link>
</div>
</div>
</template>
工具提示正在显示,但目前并未消失。当用户访问该页面至少一次时,我将如何删除它?
解决方案
您可以使用 cookie 或本地存储标志来确定用户之前是否访问过该页面。
使用本地存储的示例:
<template>
<div id="app" >
<div id="nav">
<router-link to="/home">Home</router-link>
<router-link to="/User">{{$t('user-text')}}
<div class="tooltip">
<span class="badge">!</span>
<span class="tooltiptext" v-if="showTooltip">{{ $t('visit-page-for-first-time') }}</span>
</div>
</router-link>
</div>
</div>
</template>
<script>
export default {
data() {
return {
showTooltip: false
}
},
created() {
const alreadyVisited = localStorage.getItem('already_visited');
if (!alreadyVisited) {
this.showTooltip = true;
this.setAlreadyVisited();
}
},
methods: {
setAlreadyVisited() {
localStorage.setItem('already_visited', true)
}
},
watch: {
$route (to, from) {
this.showTooltip = false;
}
}
}
</script>
默认情况下,这将隐藏工具提示。然后在created
钩子中,我们检查带有 key 的 localStorage 项目是否already_visited
存在,如果不存在,我们将显示工具提示。否则我们不渲染它。
推荐阅读
- javascript - 数据表上的引导按钮未呈现
- azure - 无法在 Databricks 中为 ADLS Gen2 创建挂载点
- android-fragments - 在我自己的应用程序上显示来自其他应用程序的活动
- java - String 的 indexOf(String obj) 方法在没有 String 对象的情况下如何工作?
- r - 按组移动窗口不同计数
- php - 从绳子上剪下来并放在同一绳子上的其他位置
- vb.net - 动态填充 ListBox vb.net 的有效方法
- xamarin - Xamarin Listview:滚动时标签 IsVisible 绑定消失
- c - 阻止调用“dlsym”(RTLD_NEXT)
- node.js - Angular - 如何指定与系统上安装的版本不同的 node.js 版本?