Arco Pro最佳实践,路由与菜单

  • 1.路由
  • 2.菜单
  • 3.测试

1.路由

路由通常都和菜单绑定在一起,为了减少维护的量,Arco直接通过路由表生成了菜单。

首先,需要先了解一下路由表的配置

现在我们来解析一下仪表盘的路由代码(dashboard.ts):

import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';const DASHBOARD: AppRouteRecordRaw = {path: '/dashboard',name: 'dashboard',component: DEFAULT_LAYOUT,meta: {locale: 'menu.dashboard',requiresAuth: true,icon: 'icon-dashboard',order: 0,},children: [{path: 'workplace',name: 'Workplace',component: () => import('@/views/dashboard/workplace/index.vue'),meta: {locale: 'menu.dashboard.workplace',requiresAuth: true,roles: ['*'],},},{path: 'monitor',name: 'Monitor',component: () => import('@/views/dashboard/monitor/index.vue'),meta: {locale: 'menu.dashboard.monitor',requiresAuth: true,roles: ['admin'],},},],
};export default DASHBOARD;

解析如下片段:

path: '/dashboard',  // 一级路径
name: 'dashboard',   // 路由名称
component: DEFAULT_LAYOUT, // 要跳转的视图,这里要跳转到页面的基本布局
meta: {locale: 'menu.dashboard',  // 菜单名字requiresAuth: true,   // 需要登录鉴权icon: 'icon-dashboard',  // 设置图标order: 0,   // 排序路由菜单项。如果设置该值,值越高,越靠前
},

路由 Meta 元信息:

  • roles:配置能访问该页面的角色,如果不匹配,则会被禁止访问该路由页面
  • requiresAuth:是否需要登录鉴权
  • icon:菜单配置icon
  • locale:一级菜单名(语言包键名)
  • hideInMenu:是否在左侧菜单中隐藏该项
  • hideChildrenInMenu:强制在左侧菜单中显示单项
  • activeMenu:高亮设置的菜单项
  • order:排序路由菜单项。如果设置该值,值越高,越靠前
  • noAffix:如果设置为true,标签将不会添加到tab-bar中
  • ignoreCache:如果设置为true页面将不会被缓存

https://arco.design/iconbox/libs,字节提供的图标库,可以满足基本需求啦!

然后再来看一下子菜单:

children: [{path: 'workplace',name: 'Workplace',component: () => import('@/views/dashboard/workplace/index.vue'),meta: {locale: 'menu.dashboard.workplace',requiresAuth: true,roles: ['*'],  // 允许所有用户访问},},{path: 'monitor',name: 'Monitor',component: () => import('@/views/dashboard/monitor/index.vue'),meta: {locale: 'menu.dashboard.monitor',requiresAuth: true,roles: ['admin'],  // 只允许管理员用户访问},},
],

2.菜单

新增一个菜单项的步骤:

views/dashboard 中新增一个 kaka文件夹,并在其中新增 index.vue

我们以添加一个表单为例:

<template><a-form :model="form"><a-row :gutter="16"><a-col :span="8"><a-form-item field="value1" label="Value 1" label-col-flex="100px"><a-input v-model="form.value1" placeholder="please enter..." /></a-form-item></a-col><a-col :span="8"><a-form-item field="value2" label="Value 2" label-col-flex="80px"><a-input v-model="form.value2" placeholder="please enter..." /></a-form-item></a-col><a-col :span="8"><a-form-item field="value3" label="Value 3" label-col-flex="80px"><a-input v-model="form.value3" placeholder="please enter..." /></a-form-item></a-col></a-row><a-row :gutter="16"><a-col :span="16"><a-form-item field="value4" label="Value 4" label-col-flex="100px"><a-input v-model="form.value4" placeholder="please enter..." /></a-form-item></a-col><a-col :span="8"><a-form-item field="value5" label="Value 5" label-col-flex="80px"><a-input v-model="form.value5" placeholder="please enter..." /></a-form-item></a-col></a-row></a-form>{{ form }}
</template><script lang="ts">import { reactive } from 'vue';export default {name: 'Kaka',setup() {const form = reactive({value1: '',value2: '',value3: '',value4: '',value5: '',});return {form,};},};
</script>

接着:在路由表中新增监控页的路由配置:

{path: 'kaka',name: 'kaka',component: () => import('@/views/dashboard/kaka/index.vue'),meta: {locale: 'menu.dashboard.kaka',requiresAuth: true,roles: ['*'],
},

随后,新增语言包:

内容如下:

en-US.ts:(英文支持)

export default {'menu.dashboard.kaka': 'XiaoQian',
};

zh-CN.ts:(中文支持)

export default {'menu.dashboard.kaka': '小钱',
};

最后,在国际化语言包中引入:(src/locale/zh-CN.ts

并在下面使用它:

src/locale/en-US.ts文件同理:



3.测试

访问网站测试,新的导航已经添加成功啦!

中文状态下:

英文状态下:

Arco Pro最佳实践,路由与菜单相关推荐

  1. python组件的react实现_React-Router动态路由设计最佳实践

    写在前面 随着单页应用(SPA)概念的日趋火热,React框架在设计和实践中同样也围绕着SPA的概念来打造自己的技术栈体系,其中路由模块便是非常重要的一个组成部分.它承载着应用功能分区,复杂模块组织, ...

  2. Angular应用内路由(In App Route)的最佳实践

    Angular官网里关于路由开发的最佳实践指导: In Angular, the best practice is to load and configure the router in a sepa ...

  3. nodejs 实践:express 最佳实践(六) express 自省获得所有的路由

    nodejs 实践:express 最佳实践(六) express 自省获得所有的路由 某些情况下,你需要知道你的应用有多少路由,这在 express 中没有方法可以.因此我这边曲线了一下,做成了一个 ...

  4. ant design pro (三)路由和菜单

    一.概述 参看地址:https://pro.ant.design/docs/router-and-nav-cn 二.原文摘要 路由和菜单是组织起一个应用的关键骨架,我们的脚手架提供了一些基本的工具及模 ...

  5. mongodb数据合并设计_「时间序列数据」和MongoDB(二)-模式设计最佳实践

    在上一篇博客文章时间序列数据与MongoDB:第一部分-简介中,我们介绍了时间序列数据的概念,然后介绍了一些可以用于帮助收集时间序列应用程序需求的发现问题.对这些问题的回答有助于指导支持大容量生产应用 ...

  6. EDAS微服务应用同城容灾最佳实践

    简介:大多数业务应用只要做到同城双活,就可以避免掉大多数数据中心不可用故障.本实践就是帮助大家高效.低成本地实现自己的业务应用具备同城双活容灾能力. 作者:神鱼,阿里云解决方案架构师 前言 上云目前已 ...

  7. 阿里巴巴数据库分库分表的最佳实践

    点击▲关注 "数据和云"   给公众号标星置顶 更多精彩 第一时间直达 1.阿里巴巴分布式数据层发展和演变 业务数据从原来的单库单表模式变成了数据被拆分到多个数据库,甚至多个表中, ...

  8. vue svg sprite loader_Vue项最佳实践

    资源 Vue-CLI 3.0:https://cli.vuejs.org/zh/guide/webpack.html vue-element-admin:https://github.com/PanJ ...

  9. 《AngularJS深度剖析与最佳实践》一1.3 创建项目

    本节书摘来自华章出版社<AngularJS深度剖析与最佳实践>一书中的第1章,第1.3节,作者 雪狼 破狼 彭洪伟,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

最新文章

  1. 本田da屏怎么进wince系统_弥补小型车短板,东风本田全新LIFE“来福酱”上市
  2. C#语法之fixed 语句
  3. what should you do at the new arrival of the place
  4. 读取Assets中文件的内容
  5. JNI学习积累之一 ---- 常用函数大全
  6. 从qq服务器删除误收邮件,如何恢复从qq邮箱删除的电子邮件
  7. 计算机24点游戏几把,24点游戏规则和解题方法
  8. ES10新特性_数组方法扩展flat_与flatMap---JavaScript_ECMAScript_ES6-ES11新特性工作笔记059
  9. python学习-python学习笔记(一)python简介和基础
  10. 剥开比原看代码03:比原是如何监听p2p端口的
  11. 一元三次方程求解(求根) - 盛金公式法
  12. 团队管理14--盘点团队
  13. 设计模式知我所见。。。
  14. 排除美颜相机等第三方相机直接调用系统相机处理方法
  15. 萌新首发,C/C++(通讯录管理系统)希望大家多多关注、点赞
  16. 垂直水平居中的方法总结和适用场景
  17. 欧拉角(Euler angles)
  18. win7计算机无法连接投影仪,win7系统下投影仪无法输出信号到电脑的解决方法
  19. 攻防世界——robots
  20. 【Kotlin】Kotlin 教程

热门文章

  1. webpack打包php资源,webpack不打包指定的js文件
  2. 旅行箱包在旅行中是必不可少的用品
  3. 【渝粤题库】国家开放大学2021春2507学前儿童艺术教育(音乐)题目
  4. mysql中要创建choose数据库_在MySQL中要创建choose数据库,应该使用命令“crea
  5. 升级鸿蒙系统无法连接服务器,升级到鸿蒙系统后经常提示当前无网络,请检查后重试的说明...
  6. Matplotlib实践之折线图练习
  7. 少年三国志鸿蒙星宿碎片箱,老司机良心总结!少年三国志名将升星碎片开图鉴两不误...
  8. python hashlib解密_python 加密解密
  9. python爬虫中遇到的难题作文_关于困难的作文10篇
  10. 旺店通·旗舰奇门和金蝶云星空接口打通对接实战