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

营销型企业网站一般具有哪些功能sem和seo是什么职业

营销型企业网站一般具有哪些功能,sem和seo是什么职业,asp做微网站设计,结构设计软件有哪些在 Vue.js 中,动态路由是一种根据不同用户权限或其他因素动态改变路由列表的功能。这种机制允许开发者根据后端提供的权限数据动态渲染前端路由,实现多用户权限系统,不同用户展示不同的导航菜单。 动态路由的配置 动态路由的配置涉及到前端…

在 Vue.js 中,动态路由是一种根据不同用户权限或其他因素动态改变路由列表的功能。这种机制允许开发者根据后端提供的权限数据动态渲染前端路由,实现多用户权限系统,不同用户展示不同的导航菜单。

动态路由的配置

动态路由的配置涉及到前端路由的动态加载和解析。通常,动态路由的数据存储在数据库中,前端通过接口获取当前用户对应的路由列表并进行渲染。以下是实现动态路由的基本步骤:

  1. 静态路由配置:首先,需要配置静态路由,如登录页、首页等。这些路由通常不会改变,可以直接写在路由配置文件中。

// 创建路由实例
const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: allRoutes
})
// 所有路由定义(静态+动态)
const allRoutes = [// 基础路由{path: '/',name: 'login',component: () => import("@/views/LoginView.vue")},{path: '/404',name: '404',component: () => import('@/views/Error/404View.vue')},// 动态路由容器(登录后内容){path: '/layout',name: 'layout',component: () => import('@/Layout/MainLayout.vue'),children: [] // 初始为空,动态注入路由},
]

动态路由获取:在用户登录后,前端调用后端接口获取用户对应的权限类型role。

// 需要权限控制的路由配置(扁平化结构更易管理)
const dynamicRouteConfigs = [{path: '/home', // 注意使用相对路径name: 'home',component: () => import('@/views/HomeView.vue'),meta: { title: '首页', icon: 'House',roles: ['*'] // *表示所有登录用户}},{path: 'user/list',name: 'UserList',component: () => import('@/views/user/ListView.vue'),meta: { title: '用户列表',roles: ['1','2']}},{path: 'user/role',name: 'UserRole',component: () => import('@/views/user/RoleView.vue'),meta: { title: '角色管理',roles: ['1']}}
]

路由过滤的函数

// 权限过滤方法修正
const filterRoutes = (routes, roles) => {console.log('全部的路由',routes);return routes.filter(route => {const requiredRoles = route.meta?.roles || [];console.log(requiredRoles);// 允许所有用户或角色匹配return requiredRoles.includes('*') || requiredRoles.includes(roles+'');});
};

动态添加路由,先清空已有的动态路由,然后再调用添加路由的函数进行添加,

// 动态添加路由到layout
const addDynamicRoutes = (roles) => {// 清空已有动态路由const layout = router.getRoutes().find(r => r.name === 'layout')layout.children.forEach(child => {router.removeRoute(child.name)})// 过滤并添加新路由const allowedRoutes = filterRoutes(dynamicRouteConfigs, loginStore().roles); allowedRoutes.forEach(route => { router.addRoute('layout', route); });console.log(allowedRoutes);sessionStorage.setItem('menuPath',JSON.stringify(allowedRoutes));//存储的筛选过的动态路由sessionStorage.setItem('menuName',JSON.stringify(router.getRoutes()));//存储的所有动态路由console.log(router.getRoutes());// 确保404最后处理router.addRoute({ path: '/:pathMatch(.*)*',redirect: '/404'})
}

 导航守卫部分,路由跳转前的操作。

获取用户状态存储实例,检测登录状态;判断用户未登录时直接跳转到登录页进行登录;已登录访问登录页处理,防止已登录用户重复访问登录页;动态路由注入。

使用router.addRoute()注入路由;路由跳转处理,清除旧路由(避免重复);

// 路由守卫修改部分(router/index.ts)
router.beforeEach(async (to, from, next) => {const store = loginStore()const isLogin = !!store.id// 未登录状态处理if (!isLogin) {return to.path === '/' ? next() : next('/')}// 已登录但访问登录页时重定向if (to.path === '/') {return next('/home')}// 动态路由加载逻辑if (!store.routesLoaded) {try {// 直接从store获取已保存的角色信息const userRoles = store.rolesconsole.log(userRoles);// 如果角色信息不存在则抛出错误if (!userRoles || userRoles.length === 0) {throw new Error('用户角色信息未获取')}// 添加动态路由addDynamicRoutes(userRoles)// 在添加路由后打印console.log('当前所有路由:', router.getRoutes().map(r => r.path))// 更新加载状态store.setRoutesLoaded(true)// 使用replace方式跳转避免重复记录历史return next({ ...to, replace: true })} catch (error) {console.error('路由加载失败:', error)// 清除用户状态并跳转登录页store.$reset()return next('/')}}next()
})

最后,总结整个流程,强调关键点,帮助用户全面理解路由守卫的工作机制和实现动态路由加载的正确方法。

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

相关文章:

  • asp.net做毕业设计网站深圳seo网络推广
  • 家庭网络组建方案武汉seo招聘网
  • 网站做任务赚佣金沈阳cms模板建站
  • 央企做的好的网站武汉seo网站优化排名
  • 局域网内服务器做网站2023最近的新闻大事10条
  • 网站模板使用磁力最好用的搜索引擎
  • 北京网站制作一般多少钱西安疫情最新消息1小时内
  • 网站建设及推广服务的合同范本app制作一个需要多少钱
  • 给网站做解答是干嘛的制作app平台需要多少钱
  • 可以自己买个服务器做网站吗太原网站制作推广
  • 建设网站比较好公司吗线上推广渠道
  • 24小时学会网站建设seo教学
  • 比较好用的免费素材网长沙网站seo优化排名
  • 做灯箱到哪个网站找业务seo外链平台
  • 网络管理系统页面武汉百度搜索优化
  • 做网站加盟简述网站建设流程
  • 网站开发需要什么开发工具营销网站建设教学
  • 线上WordPress移到本地网络优化大师手机版
  • 制作软件的网站神马关键词快速排名软件
  • 网站建设遵循原则网络工具
  • 建设银行宁波分行招聘网站关键词的优化和推广
  • 有什么网站可以做电子如何让百度快速收录网站文章
  • 用什么软件做网站seo好链接推广平台
  • 做类似简书的网站360安全网址
  • 网站要什么软件做东莞网站公司哪家好
  • 一级域名免费网站怎么申请短视频seo询盘获客系统
  • 怎么做和京东一样网站泉州全网营销推广
  • 网站开发怎么学习全网品牌推广公司
  • 淘宝网站怎样做深圳网站优化推广
  • wordpress命令安装目录结构seo概念的理解