首页 > 其他分享 >Vue 3 中实现引导页

Vue 3 中实现引导页

时间:2024-06-03 14:57:32浏览次数:25  
标签:引导 Vue const 实现 vue router import ID

 Vue 3 中实现引导页五秒后自动进入首页,并在进入首页时检查用户ID的逻辑

  1. 使用组合式API (setup)
  2. 使用Vue Router进行页面导航
  3. 在首页组件中检查用户ID
  4. 如果无用户ID,导航回登录页面
1. 设置引导页组件
<template>  
  <transition name="fade">  
    <div v-if="showSplash">  
      <!-- 引导页内容 -->  
      <h1>欢迎来到引导页</h1>  
    </div>  
  </transition>  
</template>  
  
<script>  
import { ref, onMounted } from 'vue';  
  
export default {  
  setup() {  
    const showSplash = ref(true);  
  
    onMounted(() => {  
      setTimeout(() => {  
        showSplash.value = false;  
        // 假设你有一个方法用于导航到首页  
        navigateToHomePage();  
      }, 5000);  
    });  
  
    const navigateToHomePage = () => {  
      // 你可以使用router的push方法来导航  
      // 假设你已经设置了Vue Router并且可用  
      router.push('/home');  
    };  
  
    // 注意:你需要从外部引入router实例,或者通过provide/inject或其他方式获取  
    // 这里为了简化,我们假设router已经在上下文中可用  
    // 实际开发中,你可能需要使用provide/inject或在父组件中传入router  
  
    return {  
      showSplash  
    };  
  }  
};  
</script>  
  
<style scoped>  
/* 过渡动画样式 */  
.fade-enter-active, .fade-leave-active {  
  transition: opacity 0.5s;  
}  
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {  
  opacity: 0;  
}  
</style>
2. 设置首页组件

在首页组件中,你需要检查用户ID。这通常是通过检查Vuex状态、localStorage、sessionStorage、cookies或API调用等来实现的。

<template>  
  <div>  
    <!-- 首页内容 -->  
    <h1>欢迎来到首页</h1>  
  </div>  
</template>  
  
<script>  
import { onMounted } from 'vue';  
import { useRouter } from 'vue-router';  
  
export default {  
  setup() {  
    const router = useRouter();  
  
    onMounted(() => {  
      // 检查用户ID的逻辑(这里只是一个示例)  
      const userId = localStorage.getItem('userId'); // 假设用户ID存储在localStorage中  
  
      if (!userId) {  
        // 如果没有用户ID,导航到登录页面  
        router.push('/login');  
      }  
    });  
  
    return {};  
  }  
};  
</script>
3. 设置Vue Router

确保你已经设置了Vue Router,并且包含了登录页、引导页和首页的路由。

import { createRouter, createWebHistory } from 'vue-router';  
import LoginPage from './views/LoginPage.vue';  
import SplashPage from './views/SplashPage.vue';  
import HomePage from './views/HomePage.vue';  
  
const routes = [  
  { path: '/login', component: LoginPage },  
  { path: '/splash', component: SplashPage },  
  { path: '/home', component: HomePage },  
  // ... 其他路由  
];  
  
const router = createRouter({  
  history: createWebHistory(process.env.BASE_URL),  
  routes,  
});  
  
export default router;
4. 在你的主应用中使用Vue Router

在你的主Vue应用实例中,你需要安装并使用Vue Router。

import { createApp } from 'vue';  
import App from './App.vue';  
import router from './router'; // 引入上面创建的router实例  
  
const app = createApp(App);  
app.use(router);  
app.mount('#app');
注意事项
  • 确保你已经正确设置了Vue Router和所有必要的路由。
  • 根据你的应用程序逻辑,用户ID的存储和检索方式可能会有所不同(例如,从Vuex、API调用等)。
  • 如果你的应用程序涉及用户身份验证,你可能需要添加更多的安全措施来防止未经授权的用户访问受限页面。

标签:引导,Vue,const,实现,vue,router,import,ID
From: https://blog.csdn.net/woliuhuaqiangla/article/details/139414763

相关文章

  • 反转链表(递归和迭代两种实现)
    1#defineIOstd::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)2#definebug(x)cout<<#x<<"is"<<x<<endl;3#include<bits/stdc++.h>4usingnamespacestd;5typedeflonglongll;6structNode{7intx......
  • Vue3.0+typescript+Vite+Pinia+Element-plus搭建vue3框架!
    使用Vite快速搭建脚手架命令行选项直接指定项目名称和想要使用的模板,Vite+Vue项目,运行(推荐使用yarn)#npm6.xnpminitvite@latestmy-vue-app--templatevue#npm7+,需要额外的双横线:npminitvite@latestmy-vue-app----templatevue#yarnyarncreatevite......
  • datax修改 hdfsReader源码实现空文件及目录为空时,程序退出不抛出异常
    最近在使用datax_202309时,有任务需要将hive的数据按天同步到mysql,由于同步的表由业务生成,故可能有的表当天是没有数据产生,就会抛出出现下面的错误:问题:datax读取hive分区表时,datax-hdfsReader读取空目录报错问题描述:com.alibaba.datax.common.exception.DataXException:Code:[......
  • 无需公网IP、无需云服务器,实现远程直连NAS该怎么做?
    手机图片、视频太多,存储空间不够用怎么办?出门在外无法直连家中NAS,远程访问NAS速度慢?自建私有云、多媒体服务器,如何多人远程共享媒体资源?可以归纳为以下几种主要方案:1、使用内网穿透工具:内网穿透的原理是依靠一台具有公网IP的服务器作为请求的中转站,从而从公网访问内网主机......
  • MyBatis实现MySQL表字段及结构的自动增删
    前言在开发过程中,总会涉及到数据库表结构字段的增加或者删除,或者是索引的增加和减少,这个时候能把修改表结构字段这些工作都交给程序来进行,那能大大方便开发。正好有一个现成的工具可以在springboot里面实现这个流程。介绍mybatis-enhance-actable上述是gitee链接。这个工具是m......
  • 记 Codes 开源免费研发管理平台 —— 日报与工时融合集中式填报的创新实现
    继上一回合生成式全局看板的创新实现后,本篇我们来讲一讲日报与工时融合集中式填报的创新实现。  市面上所有的研发管理软件,大多都有工时相关功能,但是却没有日报功能,好像也没什么问题,但是在使用过程中体验非常不好,为什么呢?项目管理对于基层工作人员来说,主要解决这三个问题:开展......
  • Nginx实现缓存
    目录资源列表基础环境关闭防火墙关闭内核安全机制修改主机名一、安装httpd二、安装nginx准备nginx源配置nginx启动部分页面不缓存(可选)测试在client节点请求nginx关闭httpd请求nginx        本文详细记录了nginx实现缓存的配置步骤,nginx是一个非常优秀......
  • PsShutdown 工具的基本用法和操作流程,帮助他们在远程管理中更方便地实现计算机的关机
    PsShutdown是PSTools工具集中的一款工具,用于远程关闭或重启计算机。以下是PsShutdown工具的初级应用大纲示例:PsShutdown初级应用大纲工具介绍简要介绍PsShutdown工具的作用和功能,以及如何使用它来远程关闭或重启计算机。安装与配置指导用户如何下载、安装和......
  • SMOGN算法Python实现:解决回归分析中的数据不平衡
      本文介绍基于Python语言中的smogn包,读取.csv格式的Excel表格文件,实现SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。  在不平衡回归问题中,样本数量的不均衡性可能导致模型在预测较少类别的样本时表现较差;为了解决这个问题,可以使用SMOTE(Sy......
  • Vue3简单项目流程分享——工作室主页
    Vue3简单项目流程分享——工作室主页零、写在最前以下是项目相关的一些链接:源代码GitHub仓库(需要魔法上网):仓库网页示例(需要魔法上网):网页示例UI图(来源@设计师杨贺):MasterGo主页补充:由于时间关系,该网页没有适配手机端,最佳展示效果为网页端1440p宽度。如果你想要运行源代码:......