Vue3使用Vue Router实现前端路由控制

 更新时间:2024年10月16日 09:56:07   作者:前进的胖子  
在现代Web应用中,前端路由控制是非常重要的一部分,它可以帮助我们将不同的页面内容展示给用户,同时保持用户在浏览不同页面时的连贯性,本文将介绍如何使用Vue Router来实现前端路由控制,需要的朋友可以参考下

Vue3 使用 Vue Router实现前端路由控制

首先,我们需要安装Vue Router。在项目根目录下运行以下命令:

npm install vue-router@next

安装完成后,我们可以开始编写代码了。首先,我们需要导入createRoutercreateWebHistory函数,以及我们自定义的视图组件。

import HomeView from '../views/HomeView.vue'
import AdminView from '@/views/AdminView.vue'
import AboutView from '../views/AboutView.vue'
import ChildenList from '@/views/childenList.vue'

接下来,我们需要创建一个路由实例,并配置我们的路由规则。在这个例子中,我们有三个主页面:首页(HomeView)、关于页面(AboutView)和管理员页面(AdminView)。我们还定义了一个子路由(ChildenList),用于显示关于页面下的子页面。

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: HomeView
    },
    {
      path: '/about',
      name: 'about',
      children: [  
        {  
          path: 'ChildenList',  
          name: 'ChildenList',  
          component: ChildenList,  
          meta: { requiresAuth: true, role: 'admin' }
        }],
      //  component:AboutView,
    },
    {
      path: '/admin',
      name: 'admin',
      component:AdminView,
      meta: { requiresAuth: true, role: 'admin' }
    }
  ]

为了实现权限控制,我们需要在路由守卫中添加一些逻辑。在每个路由规则中,我们可以添加一个meta属性来指定该路由是否需要认证以及对应的角色。在这个例子中,我们为/about/admin路由设置了requiresAuthrole属性

router.beforeEach((to, from, next) => {
  const user = "name" // 假设这是从localStorage获取用户信息的函数
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // 这个路由需要权限
    if (!user || (to.meta.role && user !== to.meta.role)) {
      // 用户未登录或者角色不匹配
      next({ path: '/about'}) // 重定向到登录页面
    } else {
      // 用户已登录且角色匹配
      next()
    }
  } else {
    // 这个路由不需要权限
    next()
  }
})

最后将router导出

export default router

在main.js/main.ts引入

最后挂载routerView用于动态渲染与当前活跃路由匹配的组件

到此这篇关于Vue3使用Vue Router实现前端路由控制的文章就介绍到这了,更多相关Vue3 Vue Router路由控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue报错Cannot read properties of undefined (...)类型的解决办法

    vue报错Cannot read properties of undefined (...)类型的解决办法

    这篇文章主要给大家介绍了关于vue报错Cannot read properties of undefined (...)类型的解决办法,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-04-04
  • Vue3将虚拟节点渲染到网页初次渲染详解

    Vue3将虚拟节点渲染到网页初次渲染详解

    这篇文章主要为大家介绍了Vue3将虚拟节点渲染到网页初次渲染详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • VUE中v-on:click事件中获取当前dom元素的代码

    VUE中v-on:click事件中获取当前dom元素的代码

    这篇文章主要介绍了VUE中v-on:click事件中获取当前dom元素的代码,文中同时给大家提到了v-on:click获取当前事件对象元素的方法,需要的朋友可以参考下
    2018-08-08
  • vue3 Class 与 Style 绑定操作方法

    vue3 Class 与 Style 绑定操作方法

    数据绑定的一个常见需求场景是操纵元素的 CSS class 列表和内联样式,因为 class 和 style 都是 attribute,我们可以和其他 attribute 一样使用 v-bind 将它们和动态的字符串绑定,这篇文章主要介绍了vue3 Class 与 Style 绑定操作方法,需要的朋友可以参考下
    2024-05-05
  • vue中使用v-if隐藏元素时会出现闪烁问题的解决

    vue中使用v-if隐藏元素时会出现闪烁问题的解决

    这篇文章主要介绍了vue中使用v-if隐藏元素时会出现闪烁问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue动态绑定组件子父组件多表单验证功能的实现代码

    vue动态绑定组件子父组件多表单验证功能的实现代码

    这篇文章主要介绍了vue动态绑定组件子父组件多表单验证功能的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • 深入浅析Vue 中 ref 的使用

    深入浅析Vue 中 ref 的使用

    在之前的前端开发中,为了实现我们的需求,通常采用的方案是通过 JS/Jquery 直接操纵页面的 DOM 元素,得益于 Jquery 对于 DOM 元素优异的操作能力,我们可以很轻易的对获取到的 DOM 元素进行操作。这篇文章主要介绍了Vue 中 ref 的使用 ,需要的朋友可以参考下
    2019-04-04
  • vue全局方法plugins/utils的实现示例

    vue全局方法plugins/utils的实现示例

    很多时候我们会在全局调用一些方法,本文主要介绍了vue全局方法plugins/utils的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Vue使用electron转换项目成桌面应用方法介绍

    Vue使用electron转换项目成桌面应用方法介绍

    Electron也可以快速地将你的网站打包成一个原生应用发布,下面这篇文章主要给大家介绍了关于Vue和React中快速使用Electron的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 配置vue全局方法的两种方式实例

    配置vue全局方法的两种方式实例

    vue项目中有一些方法需要在多个页面调用,但为了避免在每个页面都import进来,可以把方法加到原型上去,这样在每个组件中都能使用了,下面这篇文章主要给大家介绍了关于配置vue全局方法的两种方式,需要的朋友可以参考下
    2021-09-09

最新评论