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

news2025/1/11 23:57:20

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.测试

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

中文状态下:

在这里插入图片描述

英文状态下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ranger集成Solr

前言 对已经在正常使用的Ranger开启Solr存储审计日志。 可以手动安装或者使用ranger admin自带的solr安装程序来安装。当然官网也说了&#xff0c;用户可以选择手动安装然后集成&#xff0c;只要你足够勇敢 &#xff1a;&#xff09; 我们这里选择使用Ranger自带的安装程序来…

深度学习之:强化学习 Reinforcement Learning

文章目录认识强化学习Sparse RewardSupervised Learning v.s. RLRL 玩游戏Policy-based & Value-basedPolicy-based训练模型的三步骤定义目标函数衡量目标函数的好坏RL 的目标函数的好坏&#xff08;reward 总和的期望&#xff09;如何求得 Rθˉ\bar{R_{\theta}}Rθ​ˉ​…

win10系统+3060显卡驱动+cuda11.5+cudnn8.3安装

显卡驱动和一些cuda库安装教程 目的 本教程为了让大家能更好的了解和能更快的对显卡进行环境配置。 需注意&#xff0c;本教程的配置仅仅针对显卡NVIDA RTX 3060。 其他显卡对应的配置的流程雷同&#xff0c;仅仅是环境版本的不同。 显卡需要牢固的插装在PCI/PCI-E&#xff0…

如何发现循环中的规律?动作分解

第五章循环结构程序设计 计算机最擅长的就是重复 重复再重复 循环 就是重复 使用循环结构的条件&#xff1a;2个&#xff1a; 1 需要三个或以上的 同样的操作 多个 三就是多&#xff0c;事不过三&#xff0c;三人成虎&#xff0c;三人行必有我师焉 也就是多个操作 2. 必…

如何在 Python 和 Pandas 中使用正则表达式

什么是正则表达式 Regex 代表Regular Expression&#xff0c;是一种用于在文本中搜索模式的表达式。简而言之&#xff0c;它将匹配与模式对应的每个单词或单词组。在 Python 中&#xff0c;您可以使用正则表达式来搜索单词、替换单词、匹配一个单词或一组单词。基本上所有事情…

C语言每日亿题(三)

文章目录一.二分查找二.第一个错误的版本三.搜索插入位置一.二分查找 原题传送门&#xff1a;力扣 题目&#xff1a; 在有序序列中查找&#xff0c;用二分的方法是非常有效的&#xff0c;但仅限于有序&#xff0c;如果是无序&#xff0c;二分查找是用不了的。 现在我直接来…

Spring cloud Ribbon负载均衡实战

Spring cloud Ribbon负载均衡一、简介二、负载均衡不同方案的区别1、集中式负载均衡&#xff08;服务器负载均衡&#xff09;2、进程内负载均衡&#xff08;客户端负载均衡&#xff09;三、负载均衡策略1、轮询策略&#xff08;默认&#xff09;2、权重轮询策略3、随机策略4、最…

导入vue+springboot前后端分离项目

1、环境 1、前端 nodejs 12.1.0vscode或者webstorm 2、后端 jdk1.8maven3.6.3&#xff08;3以上即可&#xff09;sqlyogidea 1、导入数据库 点击右键创建同名的数据库 将sql文件导入到数据库中 右键编辑文件&#xff0c;ctrla选中全部语句&#xff0c;ctrlc进行复制&…

Go 实现选择排序算法及优化

Go 实现选择排序算法及优化选择排序图片演示普通算法优化算法小结耐心和持久胜过激烈和狂热。 哈喽大家好&#xff0c;我是陈明勇&#xff0c;今天分享的内容是使用 Go 实现选择排序算法。如果本文对你有帮助&#xff0c;不妨点个赞&#xff0c;如果你是 Go 语言初学者&#xf…

一只脚踏入数据结构的大门,如何用C语言实现一个单链表(超超超详解,我的灵魂受到了升华)

目录 0.前言 1.什么是链表 1.1链表简介 1.2链表的分类 1.3为什么要有链表&#xff08;vs顺序表&#xff09; 1.3.1顺序表的缺点 1.3.2 链表的优点 1.3.3 顺序表的优点是链表的缺点 1.4.为什么选择实现结构最简单的单链表 2* 什么是单链表&#xff08;两种理解逻辑&…

window10+TensorRT-8.2.5.1+yolov5 v6.2 c++部署

一、准备工具 1.1、visual studio下载安装 参考&#xff1a;vs2019社区版下载教程&#xff08;详细&#xff09;_Redamancy_06的博客-CSDN博客_vs2019社区版 1.2、显卡驱动cudacudnn安装 参考&#xff1a;win10系统3060显卡驱动cuda11.5cudnn8.3安装_Bubble_water的博客-CS…

手写Spring3(Bean构造函数的类实例化策略)

文章目录目标项目结构一、代码实现1、新增getBean接口2、定义实例化策略接口3、JDK 实例化4、Cglib 实例化5、创建策略调用二、测试1、准备2、测试用例3、测试结果目标 上一篇文章&#xff0c;我们实例化对象&#xff0c;是通过无参的构造方式生成 所以今天是解决包含参数的构…

docker镜像的导入导出,并发布到服务器上

比如我本地的vue项目&#xff0c;先打包编译为一个镜像&#xff1a; docker build -t cvport . 不会编译的可以看我这篇文章&#xff1a;使用docker构建vue项目并成功运行在本地和线上_1024小神的博客-CSDN博客 开始将镜像保存为一个tar文件&#xff1a; docker save -o cvp…

基于java+springmvc+mybatis+jsp+mysql的高校学术交流平台

项目介绍 高校学术交流平台是基于java编程语言&#xff0c;mysql数据库&#xff0c;ssm框架&#xff0c;idea开发工具开发&#xff0c;本系统有管理员和用户两个角色&#xff0c;其中用户可以注册登陆系统&#xff0c;查看校园资讯&#xff0c;学术交流帖子&#xff0c;发布帖…

Akka 学习(五)消息传递的方式

目录一 消息传递方式1.1 消息不可变1.2 ASK消息模式1.3 Tell消息模式1.4 Forward消息模式1.4 Pipe消息模式有4种核心的Actor消息模式&#xff1a;Tell、Ask、Forward和Pipe。一 消息传递方式 在这里&#xff0c;将从Actor之间发送消息的角度来介绍所有关于消息传递的概念。 ● …

【多线程(六)】并发工具类的基本使用、ConcurrentHashMap1.7版本及1.8版本底层原理分析

文章目录6.并发工具类6.1 并发工具类-Hashtable6.2 并发工具类-ConcurrentHashMap基本使用6.3 并发工具类-ConcurrentHashMap1.7原理6.4 并发工具类-ConcurrentHashMap1.8原理6.5 并发工具类-CountDownLatch6.6并发工具类-Semaphore总结6.并发工具类 6.1 并发工具类-Hashtable…

一文看懂MySQL中order by排序语句的原理

order by 是怎么工作的&#xff1f; 表定义 CREATE TABLE t1 ( id int(11) NOT NULL, city varchar(16) NOT NULL, name varchar(16) NOT NULL, age int(11) NOT NULL, addr varchar(128) DEFAULT NULL, PRIMARY KEY (id), KEY city (city)) ENGINEInnoDB;SQL语句可以…

零基础入门JavaWeb——Vue的生命周期

一、概念 在编程领域&#xff0c;生命周期是一个很常见的概念。一个对象从创建、初始化、工作、释放、清理和销毁&#xff0c;会经历很多环节的演变。 二、Vue对象的生命周期 三、生命周期钩子函数 Vue允许在特定的生命周期环节中通过钩子函数加入我们的代码。 3.1 示例代码…

基于双向LSTM模型进行电力需求预测(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;主要研究方向是电力系统和智能算法、机器学…

尚硅谷笔记——求和案例纯react版、redux精简版

家人们天气冷啦注意保暖呀&#xff0c;不要像我一样因为冷而不想起床学习&#xff0c;冬日里也不能放弃训练 看了两遍尚硅谷的redux课程&#xff0c;把reduc案例代码重新敲了一次为了加深印象还是写个播客把&#xff0c;强烈推荐大家看尚硅谷课太细致啦 redux 是什么&#x…