Vue element-plus 导航栏 [el-menu]

导航栏 [el-menu]


Menu 菜单 | Element Plus

el-menu有很多属性和子标签,为网站提供导航功能的菜单。

常用标签:

它里面有两个子标签。el-menu-item,它其实就是el-menu每一个里面的item,item就是真实匹配到路由的每个栏目,不带有伸缩功能,具备真正内容的。

没有内容的是带有伸缩功能的,是一个功能模块的合并,也就是一个集合的展示,它没有本身的一个页面,真正的页面展示是在每一个item里面。

应该menu里面,除了item之外还有sub item,sub item里面还有item。

常用属性:

mode:它决定了横向还是纵向的menu,这里的场景是纵向的。

collapse:它提供了折叠的能力,如果为true就直接折叠了,如果为false就不折叠了。这里只有纵向需要折叠,横向是不需要折叠的。

菜单栏有router模式,当你使用router模式的时候,它会将侧边的导航栏和你的pass进行关联,也就是和router下面的pass进行相应的关联。每次点击item,那么就跳转到对应的pass页面了。这样菜单栏就不需要单独维护,只需要维护路由规则就行了。

上面第一块代码,概要的页面,component:Layout它是全局导入的方式,它就是整体布局。icon就是侧边栏的icon,这里就是整体布局。

下面有children,它也是有子的pass,也是叫home。这里面写了它的名字,它的icon,还有它正真的一个页面。

在整体布局下面有一个children。它的子pass叫做/home。

会基于这个路由生成一个概要,生成一个概要的item。这里会去做一个判断,如果只有一个children的情况下,children的legnth为1的情况下,那么其实就是一个item。

如果children的长度大于1的情况下,那么其实就是sub menu,里面才是一个一个的item,这些item从子路由里面来。这里其实就是for循环将里面的item通过循环从子的路由里面来。点击匹配的key其实就是它的path,这样就可以直接跳转到它的pass。

以后所有的路由规则,要不里面是一个children,要不里面是多个children。像套娃一样,这里有个外层Layout,这个是控制整体布局的。然后里面会有正真的内容页面的。如果child唯一的话就展示为一个item,如果children为多个,那么就展示为一个sub menu加上item的方式。

APP.vue直接显示整体布局Layout,而layout布局里面还有一个root view,在main里面,用来显示其他布局的,这样架子就搭起来了。

 第一步:写router规则


import { createRouter,createWebHistory} from "vue-router";

import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

//全局导入整体布局
import Layout from '@/layout/Layout.vue'

const routes = [
    {
        path: '/test',
        component: () =>import('@/views/test/Test.vue'),
        meta: {title: "测试页"}
    },
    {
        path: '/login',
        component: () =>import('@/views/login/Login.vue'),
        meta: {title: "测试页"}
    },
    {
        path: '/layout',
        //layout是公用的,所有的都使用这个整体布局
        component: () =>import('@/layout/Layout.vue'),
        meta: {title: "整体布局"}
    },
    //写两个path不多于吗?因为两个path作用不一样,第一个path可以不写
    //但是后面会有一个redirect的规则,斜杠/会自动跳转到->/home,不能更加细粒度进行控制
    //这个是单独item的情况,
    {
        path: '/home',
        component: Layout, //整体布局,其实最后布局都是main和整体布局组合起来
        children: [
            {
                path: '/home',
                name: '概要', //这个是放在侧边栏的
                icon: 'odometer',
                meta: {title: '概要'},//浏览器的标题
                component:() =>import('@/views/home/Home.vue')//整体布局中main的视图
            }
        ]
    },
    //sub menu的情况
    {
        path: '/workload',
        name: '工作负载',
        component: Layout, //整体布局
        icon: 'menu',
        children: [
            {
                path: '/workload/Deployment',
                name: 'Deployment', //这个是放在侧边栏的名字
                meta: {title: 'Deployment'},//浏览器的标题
                component:() =>import('@/views/deployment/Deployment.vue') //整体布局中main的视图
            },
            {
                path: '/workload/Pod',
                name: 'Pod', //这个是放在侧边栏的名字
                meta: {title: 'Pod'},//浏览器的标题
                component:() =>import('@/views/pod/Pod.vue') 
            },

        ]
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes
})

NProgress.inc(100)
NProgress.configure({ easing: 'ease', speed: 200, showSpinner: false })


router.beforeEach((to, from, next) => {
    // 启动进度条
    NProgress.start()
    // 设置头部
    if (to.meta.title) {
          document.title = to.meta.title
    } else {
          document.title = "k8s管理平台"
    }
    //放行
    next()
})


router.afterEach(() => {
    // 关闭进度条
    NProgress.done()
})

// 抛出路由实例, 在 main.js 中引用
export default router

                <el-main  style="background-color:royalblue">
                   <router-view></router-view>
                </el-main>

el-main里面就放入一行代码,这里面就放入router-view。

从App.vue进来有路由占位符,然后到了home这个地方,到了home这个pass。

<template>
  <router-view></router-view>
</template>

home pass找到对应的router的配置

    {
        path: '/home',
        component: Layout, //整体布局,其实最后布局都是main和整体布局组合起来
        children: [
            {
                path: '/home',
                name: '概要', //这个是放在侧边栏的
                icon: 'odometer',
                meta: {title: '概要'},//浏览器的标题
                component:() =>import('@/views/home/Home.vue')//整体布局中main的视图
            }
        ]
    },

找到这个配置之后会去先加载整体布局。在整体布局里面又有main,在main的地方又有router-view,这里的router会被children子的视图加载进去,子视图被加载到了layout里面。layout又被加载到了App.vue里面。

                <el-main  style="background-color:royalblue">
                   <router-view></router-view>
                </el-main>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[优选算法专栏]专题十五:FloodFill算法(二)

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

剑指offer--数组中重复的数字

一.题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 算法1.排序,然后遍历,时间复杂度O(nlogn),空…

openstack云计算(二)——使用Packstack安装器安装一体化OpenStack云平台

初步掌握OpenStack快捷安装的方法。掌握OpenStack图形界面的基本操作。 一【准备阶段】 &#xff08;1&#xff09;准备一台能够安装OpenStack的实验用计算机&#xff0c;建议使用VMware虚拟机。 &#xff08;2&#xff09;该计算机应安装CentOS 7&#xff0c;建议采用CentO…

【Java面试题】Redis中篇(高可用:主从复制、哨兵、集群)

文章目录 高可用14.Redis如何保证高可用&#xff1f;15.Redis的主从复制&#xff1f;16.Redis主从有几种常见的拓扑结构&#xff1f;17.Redis的主从复制原理了解吗&#xff1f;18.说说主从数据同步的方式&#xff1f;19.主从复制存在的问题&#xff1f;20.Redis Sentinel(哨兵)…

Swap交易所系统开发流程与区块链交易所系统规划方案

随着区块链技术的迅速发展&#xff0c;交易所在加密货币行业中扮演着至关重要的角色。Swap交易所因其独特的去中心化交易模式备受关注。在本文中&#xff0c;我们将深入探讨Swap交易所系统的开发流程&#xff0c;并详细介绍区块链交易所系统的规划方案&#xff0c;以帮助读者更…

智慧城市数字孪生,综合治理一屏统览

现代城市作为一个复杂系统&#xff0c;牵一发而动全身&#xff0c;城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维&#xff0c;从构成城市诸多要素、结构、功能等方面入手&#xff0c;系统推进…

算法沉淀 —— 深度搜索(dfs)

算法沉淀 —— 深度搜索&#xff08;dfs&#xff09; 一、计算布尔二叉树的值二、求根节点到叶节点数字之和三、二叉树剪枝四、验证二叉搜索树五、二叉搜索树中第K小的元素 一、计算布尔二叉树的值 【题目链接】&#xff1a;2331. 计算布尔二叉树的值 【题目】&#xff1a; …

Pyhon 大模型常见的微调方式,LLMs常见的Finetune方式;chatglm3微调实战;大模型微调通俗易懂总结

一、 LLMs微调 微调&#xff08;Fine-tuning&#xff09;是指在一个已经训练好的神经网络模型基础上&#xff0c;使用额外的数据集或调整超参数&#xff0c;以实现特定任务的训练过程。在微调中&#xff0c;通常会固定预训练模型的大部分参数&#xff0c;只调整最后几层或特定层…

Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

盲水印脚本安装说明_bwm、_bwmforpy

此工具需要python2/python3 脚本下载地址https://gitcode.com/chishaxie/BlindWaterMark/tree/master?utm_sourcecsdn_blog_hover 直接下载压缩包解压 在python里面添加两个库&#xff0c;python.exe目录上方输入cmd pip install opencv-python python.exe -m pip install …

docker部署实用的运维开发手册

下载镜像 docker pull registry.cn-beijing.aliyuncs.com/wuxingge123/reference:latestdocker-compose部署 vim docker-compose.yml version: 3 services:reference:container_name: referenceimage: registry.cn-beijing.aliyuncs.com/wuxingge123/reference:latestports:…

Gparted工具 初始化磁盘

Gparted工具 初始化磁盘 1、安装 没有此工具请先安装&#xff1a; yum install epel-release yum install gparted yum install yum-utils git gnome-common gcc-c yum-builddep gparted 2、打开Gparted工具&#xff0c;初始化磁盘 使用具有root权限的普通用户打开gparted&…

回溯算法|40.组合总和II

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex, vector<bool>& used) {if (sum target) {result.push_back…

OSPF不规则区域以及OSPF的数据库和优化OSPF的LSA

OSPF的不规则区域 远离骨干非骨干区域不连续骨干-----区域水平分割 解决方案&#xff1a; 1.tunnel ---点到点GRE 在合法与非法ABR(在两个区域之间&#xff0c;但没有连到骨干area0)间建立隧道&#xff0c;然后将其宣告于OSPF协议中&#xff1b; 缺点&#xff1a;1、周期和…

Web应急响应

2024年护网将至&#xff0c;最近我将分享一些红蓝对抗的一些技巧&#xff0c;应急响应、信息收集相关的知识概念以及相关技巧。 目录 1. 黑客攻击流程 2. webshell流量特征 1.1.菜刀特征 1.2.冰蝎3.0 &#xff1a; 1.3.冰蝎2.0&#xff1a; 1.4.冰蝎3.11流量特征 1.5.蚁…

cocos使用playable ads adapter打包试玩广告报错RangeError: Invalid string length

前言 最近有做试玩广告的需求&#xff0c;引擎用的cocos&#xff0c;打包使用的playable ads adapter插件。不过最近打包遇到个奇怪的问题&#xff0c;就是通过插件打包报错RangeError: Invalid string length。因为之前也用空包和早期项目测试过都能顺利打包&#xff0c;经过…

数码管时钟--LABVIEW编程

一、程序的前面板 1.获取系统时钟&#xff0c;年月日&#xff0c;时分秒&#xff0c;用14个数码管显示。 2.闹钟设定小时和分钟。 二、程序的后面板 三、程序运行图 四、程序源码 源程序可以在百度网盘自行下载&#xff0c;地址链接见下方。 链接&#xff1a;https://pan.b…

健身运动蓝牙耳机什么牌子好?五大业内顶级优品推荐

在当下这个健身热潮席卷的时代&#xff0c;越来越多的人开始注重运动与健康&#xff0c;而音乐作为运动时的最佳伴侣&#xff0c;无疑为锻炼过程增添了不少乐趣。为了在运动时享受音乐&#xff0c;一款优质的健身运动蓝牙耳机显得尤为重要&#xff0c;市场上各大品牌纷纷推出自…

python对接百度云车牌识别

注册百度智能云&#xff0c;选择产品服务。 https://console.bce.baidu.com/ 每天赠送200次&#xff0c;做开发测试足够了。 在应用列表复制 AppID , API Key ,Secret Key 备用。 SDK下载地址 https://ai.baidu.com/sdk#ocr 下载SDK文件&#xff0c;解压&#xff0c;…

如何在Plesk面板备份网站

本周有一个客户&#xff0c;购买Hostease的Windows虚拟主机&#xff0c;咨询我们的在线客服&#xff0c;询问Windows虚拟主机Plesk面板是否提供备份功能。我们为用户提供教程&#xff0c;用户很快完成了数据备份。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对您…