当前位置: 首页 > wzjs >正文

珠海编程培训机构重庆做网络优化公司电话

珠海编程培训机构,重庆做网络优化公司电话,做精神科网站,中国水利教育培训网站在Vue.js中,前端控制通常指的是通过Vue的响应式系统、组件化、路由、状态管理等技术来实现对前端应用的控制和管理 一、前端路由控制基础 使用 vue-router 管理路由,通过路由守卫和动态添加路由实现权限控制。 1. 安装和配置 npm install vue-router…

在Vue.js中,前端控制通常指的是通过Vue的响应式系统、组件化、路由、状态管理等技术来实现对前端应用的控制和管理

一、前端路由控制基础

使用 vue-router 管理路由,通过路由守卫和动态添加路由实现权限控制。

1. 安装和配置
npm install vue-router@4
//路由实例
const router = createRouter({history: createWebHashHistory(),
});

二、动态路由实现原理

根据用户权限动态生成路由表,通过 router.addRoute() 添加路由

1. 定义路由模板(静态+动态)
//基础路由
const baseRoutes = [{path: "/",name: "login",component: () => import("../views/login.vue"),},{path: "/totalTwo",component: () => import("../views/total/totalTwo.vue"),children: [],},{path: "/totalOne",component: () => import("../views/total/totalOne.vue"),children: [],},{path: "/home",name: "home",component: () => import("../views/home.vue"),meta: { title: "首页" },},
];
//=============== 动态路由配置
const dynamicRoutes = [{path: "/about",name: "about",component: () => import("../views/aboutPage.vue"),meta: { requiresAuth: true, permissions: ["2"] },},{path: "/dashboard",name: "Dashboard",component: () => import("../views/Dashboard.vue"),meta: { requiresAuth: true, permissions: ["1"] },},
];
console.log(dynamicRoutes, "全部路由");
// 路由实例
const router = createRouter({history: createWebHashHistory(),routes: [...baseRoutes, ...dynamicRoutes], // 初始化时合并路由  
});
2. 动态添加路由
  // 第一层循环:过滤有权限的路由const allowedRoutes = dynamicRoutes.filter((route) => {return store.permissions?.some((perm) =>route.meta.permissions.includes(perm));});// 第二层循环:添加路由allowedRoutes.forEach((route) => {if (!router.hasRoute(route.name)) {// 删除parentRoute.name参数和path修改router.addRoute(route); // 直接添加为顶级路由}});
}

三、路由守卫实现权限控制

使用全局前置守卫验证权限

// router/index.js
router.beforeEach((to, from, next) => {const isAuthenticated = localStorage.getItem('token')// 需要登录但未登录if (to.meta.requiresAuth && !isAuthenticated) {next('/login')}// 已登录但访问/loginelse if (to.path === '/login' && isAuthenticated) {next('/dashboard')}// 检查路由权限else if (to.meta.role && !userRoles.includes(to.meta.role)) {next('/404') // 无权限页面}else {next()}
})

四、动态菜单生成

根据过滤后的路由生成导航菜单

<!-- 在侧边栏组件中 -->
<template><div v-for="route in accessibleRoutes" :key="route.path"><router-link :to="route.path">{{ route.meta?.title }}</router-link><div v-if="route.children"><!-- 递归处理子路由 --></div></div>
</template><script>
import { computed } from 'vue'
import { useRouter } from 'vue-router'export default {setup() {const router = useRouter()const accessibleRoutes = computed(() => {return router.options.routes.filter(route => !route.meta?.hidden && hasPermission(route)})return { accessibleRoutes }}
}
</script>
http://www.dtcms.com/wzjs/296627.html

相关文章:

  • 服务周到的做网站seo排名优化的网站
  • 中国哪家网站做仿古做的好b站推广软件
  • 网站建设办什么手续中囯联通腾迅
  • wordpress页面找不到该网页搜索引擎优化seo优惠
  • 怎样做幼儿园网站网络推广靠谱吗
  • 做网站公司上班违法吗微信视频号可以推广吗
  • 网站维护的工作内容推广产品的方式有哪些
  • 山东政府网站建设北京互联网公司排名
  • wordpress 筛选插件seo学习
  • 网站建设的目的定位盈利模式和功能百度收录在线提交
  • 佛山制作网站设计报价网页百度
  • 自己怎么做短视频网站日本shopify独立站
  • 美食网站策划书范文美国搜索引擎浏览器
  • 湖北外贸网站建设多少钱seo人才
  • 乐清市网站建设设计百度公司电话
  • 龙岩做网站公司百度开户推广
  • 邯郸做移动网站价格表网站的优化公司
  • 成都十大营销策划公司新媒体seo培训
  • 疫情太原最新消息辽宁好的百度seo公司
  • 政府网站架构工具好用搜索引擎排名
  • 小公司网站建设怎样做网络推广
  • 织梦做单页面网站网站推广的工作内容
  • 阿里云 做购物网站网站免费外链网站seo发布
  • 榆林建设局网站友链交换
  • word怎么做网页丹东网站seo
  • 仿苹果手机 网站源码西安搜索引擎优化
  • 福州营销网站建设模板网店网络推广方案
  • 政务信息网站建设制度seo挂机赚钱
  • 常熟做公司网站超级seo工具
  • 自己有网站怎么做优化建站优化公司