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

diy建站系统网络营销企业培训

diy建站系统,网络营销企业培训,电子商务网站建设基础项目实训,上海松江做网站建设在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/224024.html

相关文章:

  • wordpress播放网盘视频企业网站优化哪家好
  • 深圳网络推广优化win10优化软件
  • 网站开发概要设计邵阳seo优化
  • 五金弹簧东莞网站建设建站开发
  • 网站开发经理具备什么知识临沂seo网站管理
  • 石家庄做网站公司的电话爱站网长尾关键词搜索
  • 日本樱花云服务器wan长沙seo关键词排名
  • 北京住房与城乡建设网站长春网站建设公司
  • 58同城房产信息苏州百度快照优化排名
  • 贵州省城乡与建设厅网站网页怎么做
  • 做一个网站的详细教学怎样精选关键词进行网络搜索
  • 嘉兴平湖网站建设友情链接发布
  • 网站建设高级 上海台州关键词优化推荐
  • 国内html5网站欣赏福州百度推广优化排名
  • 怎样做网站的ico图片网站访问量查询工具
  • 网站建设公司公司网站设计与制作
  • wordpress翻页数字爱采购seo
  • 公司后台网站怎么做深圳有实力的seo公司
  • 动态网站cdnseo是指搜索引擎优化
  • 做哪类网站没有版权问题发免费广告电话号码
  • 自助建网站系统源码国内免费b2b网站大全
  • 泉州网站外包网络营销技术
  • 南京建站在线咨询广东深圳今天最新通知
  • 國家建设协会官方网站如何在百度上添加自己的店铺
  • 金堂网站建设seo是什么品牌
  • 做建材那个B2B网站内贸人流量多廊坊seo排名优化
  • 公司关于网站建设的通知网站开发与设计
  • 如何建设网站的目录结构层收录网站的平台有哪些
  • 公司建站模版网络营销推广方案策划书
  • 建设网站图最新军事新闻事件今天