首页 > 其他分享 >4、vue3总组件/入口文件/路由设置

4、vue3总组件/入口文件/路由设置

时间:2024-08-01 10:29:19浏览次数:14  
标签:登录 vue3 next path 组件 router login 路由

1、安装element-plus依赖包

npm i element-plus

 2、项目主组件修改(App.vue)

<script lang="ts" setup>
import { ElConfigProvider } from 'element-plus'
import { ElDialog } from "element-plus"
// 将 Element Plus 的语言设置为中文
import zhCn from "element-plus/es/locale/lang/zh-cn"
// 修复 dialog 打开时右侧出现抖动的问题
ElDialog.props.lockScroll.default = false

</script>

<template>
  <ElConfigProvider :locale="zhCn">
    <router-view />
  </ElConfigProvider>
</template>

<style scoped>
</style>

  

 3、项目入口配置(main.ts)

1)下载路由依赖包:npm i vue-router

 2)创建路由实例

 

import {
    createRouter, createWebHistory
} from 'vue-router'

// 路由配置表
const routes = [
    {
      path: '/login',
      name: 'login',
      component: () => import(/* webpackChunkName: "about" */ '@/views/login/login.vue'),
      meta: { title: '登录' }
    },
    {
      path: '/',
      redirect: '/workbench'
    },
    {
      path: '/workbench',
      name: 'workbench',
      // route level code-splitting
      // this generates a separate chunk (about.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: () => import(/* webpackChunkName: "about" */ '@/views/workbench/index.vue'),
      meta: { title: '工作台' }
    },
  ]
  
// 创建 router 实例,然后传 `routes` 配置
const router = createRouter({
  history: createWebHistory(), 
  routes,
})

// 登录权限判断也可以写在main.js文件中==>router.beforeEach((to, from, next) => {next()})
// 路由导航守卫(拦截器)的作用就是控制页面的访问状态
// beforeEach 是全局前置守卫,任何页面的访问都要经过这里
// to:要去的路由信息
// from:来自哪里的路由信息
// next:放行方法
router.beforeEach((to, from, next) => {
    // 如果要访问的页面不是 /login,校验登录状态
    // 如果没有登录,则跳转到登录页面
    // 如果登录了,则允许通过
  
    const token = window.localStorage.getItem('token')
  
    // 校验非登录页面的登录状态
    if (to.path !== '/login' && to.path !== '/register') {
      if (token) {
        // 已登录,允许通过
        next()
      } else {
        // 没有登录,跳转到登录页面
        next('/login')
      }
    } else {
      // 登录&注册页面,正常允许通过
      next()
    }
  })
  
  router.afterEach((to, from) => {
    if (from.path !== '/Login' && from.path !== '/' && to.path === '/Login') {
      window.location.reload()
    }
  })
  
  
  // 我们在组件中使用的 this.$router 其实就是这个模块中的 router
  export default router
  

3)创建子组件

 4)配置main.ts(全局导入以及项目初始化)

 

标签:登录,vue3,next,path,组件,router,login,路由
From: https://www.cnblogs.com/kakashi-feng/p/18336119

相关文章

  • Vue3选择框选择不同的值输入框刷新变化
    场景:新增的时候根据选择框的不同来改变输入信息例如:实现方式:这个输入框我做的是业务字典实际的值是0和1,在点击选择框的时候用v-if判断选择的值是1还是0,如果是0则是一个输入信息,如果是1则又是另一个输入信息。实现代码片: <el-row:span="24"v-if="formData.courseTyp......
  • SpringCloud+Vue3主子表插入数据(芋道)
    目的:多表联查获取到每个班级里面所有的学生上课的信息。点击消课插入到消课主表和消课子表,主表记录班级信息,消课人员信息,上课时间。子表记录上课学员的信息,学员姓名、手机号、班级名称、班级类型、上课时间、老师名称前端:<template><Dialog:title="dialogTitle"v-mode......
  • 如何使用“pyroute2”“添加”通过“get”接收的路由?
    不幸的是,pyroute2模块的文档相当具体,所以我找不到我遇到的一个特定问题的答案。我的目标是保存一个特定表(让我们将其命名为表A)中的所有路由,然后恢复它们。我可以(显然)接收路由转储并使用单个命令清除表:IPRoute().flush_routes(table=A)路线存储为字典......
  • vue3 自定义渲染,渲染函数实现,配置渲染render函数,低代码配置自定义渲染函数核心实现
    代码父组件<template><divclass="component-name"><!--全局自动的icon--><Extend:render="render"/></div></template><scriptsetuplang="ts">import{ref,reac......
  • 动态之美:Laravel动态路由参数的实现艺术
    动态之美:Laravel动态路由参数的实现艺术在Web开发中,路由是应用程序的神经系统,它负责将请求映射到相应的处理逻辑。Laravel框架提供了一种强大而灵活的路由系统,允许开发者定义动态路由参数,从而创建更具动态性和可扩展性的Web应用。本文将深入探讨Laravel的动态路由参数,解释......
  • 饮冰十年-人工智能-Vue3-67-组件间数据交互
    上一篇:饮冰三年-人工智能-Vue-66Vue组件化很久以前我对Vue2的组件间数据交互做过学习,兜兜转转再用Vue已经是Vue3版本。Vue3组件间数据交互1、准备工作环境准备使用Vite创建一个新的Vue3项目功能介绍该功能由APPVue+4个组件组成  ......
  • element-plus中el-container组件的重要用法详解
    el-container是ElementPlusUI框架中的一个布局容器组件,用于实现页面的布局结构。它主要用于管理和组织页面中的内容,提供了灵活的布局方式。下面详细解释一下el-container的重要用法和特性:1.基本用法el-container提供了三种基本布局方式:horizontal、vertical和vertica......
  • 【动态路由协议】RIP
    一、前导知识       动态路由协议分类:               1.IGP(内部网关协议,位于同一个自治系统内)                       1.1距离矢量路由协议                               RIP(距离矢......
  • 加油,为Vue3提供一个可媲美Angular的ioc容器
    为什么要为Vue3提供ioc容器Vue3因其出色的响应式系统,以及便利的功能特性,完全胜任大型业务系统的开发。但是,我们不仅要能做到,而且要做得更好。大型业务系统的关键就是解耦合,从而减缓shi山代码的生长。而ioc容器是目前最好的解耦合工具。Angular从一开始就引入了ioc容器,因此在业务......
  • vue3屏幕适配
    通过两个插件来实现  postcss-pxtorem和  amfe-flexible 在main.js中导入import"amfe-flexible";在vite.config.js中配置css:{postcss:{plugins:[postcssPxtoRem({rootValue:192,//根据使用的ui组件?定义根元素大小?......