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

建个网站需要多少钱? 知乎seo专业培训中心

建个网站需要多少钱? 知乎,seo专业培训中心,东营城乡建设局官网,网站该怎么找到后端控制及动态路由详解 一、引言 在现代化的Web应用中,动态路由扮演着至关重要的角色,它允许我们根据用户的权限或其他条件动态地加载和展示不同的页面。本文将详细讲解如何使用Vue Router实现后端控制及动态路由,并通过实际代码示例进行说…

后端控制及动态路由详解

一、引言

在现代化的Web应用中,动态路由扮演着至关重要的角色,它允许我们根据用户的权限或其他条件动态地加载和展示不同的页面。本文将详细讲解如何使用Vue Router实现后端控制及动态路由,并通过实际代码示例进行说明。

二、环境搭建

首先,确保你的项目中已经安装了Vue Router。你可以通过以下命令进行安装

npm install vue-router

三、基础路由配置

  1. 导入路由和页面

    import { createRouter, createWebHashHistory } from "vue-router";
    import { useStore } from "../stores/user";
    

    这里,我们导入了createRoutercreateWebHashHistory用于创建路由实例,同时导入了useStore用于获取Pinia存储的状态。

  2. 定义基础路由

    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 totalArray = [// ...其他路由配置{ id: 2, pid: 0, path: "/comp", name: "门诊", meta: { permissions: ["1"] }, children: [...] },{ id: 8, pid: 0, path: "/hospital", name: "住院", meta: { permissions: ["1"] }, children: [...] },// ...更多路由配置
];

这里定义了全部的路由配置,包括每个路由的ID、父ID、路径、名称、元信息(如权限)和子路由。

五、动态路由配置

 

const dynamicRoutes = [{ path: "/home", name: "首页", component: () => import("../views/home.vue"), meta: { title: "首页" } },{ id: 2, pid: 0, path: "/outpatient", name: "门诊", meta: { permissions: ["1"] }, children: [...] },// ...更多动态路由配置
];

动态路由是根据用户权限或其他条件动态添加到路由实例中的。

六、过滤和存储匹配的路由

1.过滤匹配的路由

const matchedRoutes = dynamicRoutes.filter((route1) =>totalArray.some((route2) => route1.name === route2.name || route1.path === route2.path)
);

 这段代码通过比较名称(name)和路径(path)来过滤出匹配的路由

2.存储匹配的路由

localStorage.setItem("matchedRoutes", JSON.stringify(matchedRoutes));

过滤后的路由被存储在本地存储中,以便在菜单页面中使用

七、导航守卫

router.beforeEach(async (to, from, next) => {const store = useStore();const isLogin = !!store.id;if (!isLogin) {return to.path === "/" ? next() : next("/");}if (to.path === "/") {return next("/about");}if (!store.id) {return next("/");}if (store.role) {const role = String(store.role);for (let i in dynamicRoutes) {const permission = String(dynamicRoutes[i].meta.permissions);if (permission === role) {let myRoute = [{ path: "/home", name: "home", component: () => import("../views/home.vue"), meta: { title: "首页" } },];const isRouteExist = baseRoutes.some((baseRoute) => baseRoute.path === dynamicRoutes[i].path);if (!isRouteExist) {myRoute.push(dynamicRoutes[i]);}store.getRoutes(myRoute);}}}next();
});

导航守卫用于在路由跳转前进行权限验证和动态路由的添加。

八、菜单页面

在菜单页面获取一下匹配的路由

const matchedRoutes = JSON.parse(localStorage.getItem('matchedRoutes'))

菜单页面使用Element Plus组件库进行布局,并通过循环渲染动态路由来生成菜单。

<template><div><el-menu :default-active="activeMenu" class="el-menu-vertical" :collapse="isCollapse" background-color="#fff"text-color="#000" active-text-color="#409EFF"><!-- 循环渲染动态路由 --><template v-for="route in matchedRoutes" :key="route.id"><!-- 有子路由的菜单项 --><el-sub-menu v-if="route.children && route.children.length" :index="route.path"><template #title><el-icon><component :is="getIcon(route.name)" /></el-icon><span>{{ route.name }}</span></template><!-- 渲染子菜单 --><el-menu-item v-for="child in route.children" :key="child.id" :index="child.path"@click="dayun(child.path, child.name)"><el-icon><component :is="getIcon(child.name)" /></el-icon><span>{{ child.name }}</span></el-menu-item></el-sub-menu><!-- 没有子路由的单独菜单项 --><el-menu-item v-else :index="route.path" @click="dayun(route.path, route.name)"><el-icon><component :is="getIcon(route.name)" /></el-icon><span>{{ route.name }}</span></el-menu-item></template></el-menu></div>
</template>

 

九、总结

通过以上步骤,我们实现了基于后端控制的动态路由功能。这种实现方式不仅提高了路由管理的灵活性,还增强了应用的安全性。在实际项目中,你可以根据具体需求进行调整和优化。

http://www.dtcms.com/wzjs/261954.html

相关文章:

  • 视觉品牌网站建设seo诊断优化专家
  • 用Off做网站seo要点
  • 公司网站建设合同模板下载百度一下京东
  • 江苏政府门户网站建设推广普通话宣传标语
  • 自己做网站还是挂靠好搜索引擎的优化方法有哪些
  • 网站运营效果分析怎么做网络营销课程培训课程
  • 大学生互助联盟网站建设需求分析说明表虚拟主机搭建网站
  • 南京做中英文网站房地产销售技巧和话术
  • 成立公司在什么网站seo下载站
  • 动态网站建设心得体会山东建站
  • wordpress评测网站对网站的建议和优化
  • 重庆大型网站建设文军seo
  • 珠海新闻网最新消息seo营销方法
  • wordpress中文开发文档seo优化检测
  • 做网站还有开发文档吗谷歌seo查询
  • 外网服装设计网站搜索引擎排名影响因素有哪些
  • 福州专业网站建设服务商网站收录工具
  • 网站建设一般都需要什么资质seo方法
  • 成都十大猎头公司seo优化及推广如何运营
  • 拓者设计吧注册码必须买吗沧州seo推广
  • 网站建设 需要注意什么朝阳seo
  • 百捷网站建设长沙关键词优化平台
  • 北京宏福建设工程有限公司网站中国舆情在线
  • 代驾网站开发seo优化分析
  • 网站建设教材重庆seo整站优化
  • mac wordpress ftp南昌seo搜索优化
  • 淘宝上面建设网站安全么网站优化 秦皇岛
  • 餐饮网站开发性能需求广州百度推广客服电话
  • wordpress企业网站定制教程 一百度快照客服电话
  • 听完米课做的网站西安seo关键词查询