Vue3实战笔记(19)—封装菜单组件

文章目录

  • 前言
  • 一、封装左侧菜单导航组件
  • 二、使用步骤
  • 三、小彩蛋
  • 总结


前言

在Vue 3中封装一个左侧导航菜单组件是一项提升项目结构清晰度和代码可复用性的关键任务。这个过程不仅涉及组件的设计与实现,还需考虑其灵活性、易用性以及与Vue 3新特性的紧密结合。以下是对这一过程的简介:


一、封装左侧菜单导航组件

继续开发,封装一个左侧菜单,在目录src\components\navigation下创建文件Navigation.vue:


<template><!-- <v-card> --><!-- <v-layout> --><v-navigation-drawerv-model="drawer":rail="rail"permanent@click="rail = false"><v-list-itemprepend-avatar="https://randomuser.me/api/portraits/men/88.jpg"title="John Leider"nav><template v-slot:append><v-btnvariant="text"icon="mdi:mdi-chevron-left"@click.stop="rail = !rail"></v-btn></template></v-list-item><v-divider></v-divider><v-list density="compact" nav><v-list-item v-for="nav in navigation" :key="nav.id" :prepend-icon="nav.icon" :title=nav.name value="home"></v-list-item></v-list></v-navigation-drawer><!-- </v-layout> --><!-- </v-card> --></template><script  lang='ts' setup name="Navigation">import { ref } from 'vue';let drawer=ref(true)let rail=ref(false)//false代表展开//菜单示例,后面会动态获取let navigation = ref([{"id":"1","name":"系统管理","path":"/system","hidden":false,"icon":"mdi:mdi-minus","component":"","redirect":"noDirect","children": [{        "id":"11","name":"用户管理","path":"/user","hidden":false,"icon":"mdi:mdi-account","component":"","redirect":"noDirect","children":[] }]},{"id":"2","name":"开发工具","path":"/system","hidden":false,"icon":"mdi:mdi-tools","component":"","redirect":"noDirect"},{"id":"3","name":"UI元素","path":"/contact","hidden":false,"icon":"mdi:mdi-ubisoft","component":"","redirect":"noDirect"},{"id":"4","name":"联系我们","path":"/contact","hidden":false,"icon":"mdi:mdi-contacts","component":"","redirect":"noDirect"},])
</script>

二、使用步骤

引入导航菜单组件并使用:


<template><v-app><Navigation app="false"></Navigation><v-main></v-main></v-app>
</template><script lang="ts">
import Navigation from "@/components/navigation/Navigation.vue"
</script>

运行效果:
在这里插入图片描述

三、小彩蛋

封装过程中遇到个有趣的事情,我即使没有导入组件:

import Navigation from “@/components/navigation/Navigation.vue”

也可以使用,各种查找发现了这个:
在这里插入图片描述
大概意思就是如果在components目录下创建的组件会被自动导入,不用自己导入也可以直接使用。

按照说明发现了这个文件,这个文件应该是插件自动生成的:
在这里插入图片描述
以后有时间可以再了解一下unplugin-vue-components吧。


总结

左侧导航菜单组件通常是Web应用程序中不可或缺的一部分,用于提供直观的页面导航结构。在Vue 3中,利用Composition API进行封装,可以创建一个既强大又灵活的组件,以适应不同的项目需求。

注意,本系列实战笔记使用的是Vuetify,很多组件都是使用了Vuetify提供的组件

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

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

相关文章

如何恢复删除的文件?收好6个恢复策略!

“我经常在操作电脑时可能会有误删文件的情况发生&#xff0c;如果我不小心删除了重要的文件&#xff0c;应该使用什么方法来恢复它们呢&#xff1f;求解答&#xff01;” 在使用电脑时&#xff0c;我们可能一个手滑就误删了重要的文件。当文件删除后&#xff0c;如果没有掌握相…

用调试的方式来阅读复杂的C++工程代码以及调试技巧

目录 1 用调试的方法阅读代码 1.2 从外到里,从整体到局部 1.2 从里到外阅读 2 调试技巧 2.1 打断点位置问题 2.2 增加调试代码 </

win10安装mysql8.0+汉化

一、官网安装 MySQL 1. 在mysql官网进行下载页面 2. 下滑页面&#xff0c;选择 MySQL community download 3.下载windows版本 4.选择第二个download 5.不用登陆&#xff0c;no thanks&#xff0c;just start my download. 6.下载 二、安装 1. 双击安装 2. 选 Full->next 3…

depcheck检查项目中未被使用的依赖

depcheck是一个用于分析项目中依赖项的工具&#xff0c;可以查看&#xff1a;每个依赖项是如何使用的&#xff0c;哪些依赖项是无用的&#xff0c;以及哪些依赖项在package.json 1、安装 npm install -g depcheck # 必须全局安装2、可配置文件.depcheckrc&#xff08;不配置 直…

开源模型应用落地-CodeQwen模型小试-集成langchain(四)

一、前言 通过学习代码专家模型&#xff0c;开发人员可以获得高效、准确和个性化的代码支持。这不仅可以提高工作效率&#xff0c;还可以在不同的技术环境中简化软件开发工作流程。代码专家模型的引入将为开发人员带来更多的机会去关注创造性的编程任务&#xff0c;从而推动软件…

kafka管理工具 kafka-ui 的 k8s 部署

背景 实际使用中&#xff0c;部署好kafka集群后&#xff0c;需要管理集群&#xff0c;那么一个好的web控制台就显得尤为重要了。 直接上部署代码&#xff0c;亲测可用 开源链接 https://github.com/provectus/kafka-ui 效果预览 部署 配置文件 kafka-ui-cm 注意&#x…

【轮转数组】力扣python

1.python切片 这里nums[:]代表列表 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)nums[:]nums[-k%n:]nums[:-k%n] 2.边pop边push 0代表插入的位置 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)fo…

搭建一个根据语义相似度进行文本去重服务

背景 1、在做大模型训练的时候&#xff0c;我们需要进行数据集的处理&#xff0c;而很多情况下我们收集到的数据集会存在重复数据&#xff0c;针对去重&#xff0c;有两种&#xff0c;一种是完全重复&#xff0c;也就是数据集里面有一个A&#xff0c;还有存在了着另外一个A&am…

花趣短视频源码淘宝客系统全开源版带直播带货带自营商城流量主小游戏功能介绍

1、首页仿抖音短视频 &#xff0c;关注 &#xff0c;我的 本地 直播 可发布短视频 可录制上传 2、商城页面 广告位、淘口令识别、微信登录、淘宝登录、淘宝返佣、拼多多返佣、京东返佣、唯品会返佣、热销榜、聚划算、天猫超市、9.9包邮、品牌特卖、新人攻略 、小米有品、优惠加…

不知摄像机网段IP地址?别担心,这里有解决之道

在数字化、智能化的今天&#xff0c;摄像机作为安全监控和日常记录的重要工具&#xff0c;其应用越来越广泛。然而&#xff0c;在实际使用中&#xff0c;我们可能会遇到一些问题&#xff0c;比如忘记了摄像机的网段IP地址&#xff0c;这往往会让我们感到头疼。那么&#xff0c;…

LearnOpenGL(十五)之深度测试

一、深度缓冲 深度缓冲就像颜色缓冲(Color Buffer)&#xff08;储存所有的片段颜色&#xff1a;视觉输出&#xff09;一样&#xff0c;在每个片段中储存了信息&#xff0c;并且&#xff08;通常&#xff09;和颜色缓冲有着一样的宽度和高度。深度缓冲是由窗口系统自动创建的&a…

Linux操作系统基础题库

一. 单选题&#xff08;共2题&#xff0c;40分&#xff09; 1. (单选题)Linux操作系统自诞生至今&#xff0c;有数十万的程序开发人员参与到了它的开发与完善中&#xff0c;如今Linux已发展成为是一个成熟、稳定的操作系统。从以下选项中选出关于Linux特点描述完全正确的一项。…

C++的相关知识集

1、C概述 1 两大编程思想 c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c继承了c语言高效&#xff0c;简洁&#xff0c;快速和可移植的传统。 2 起源 与c语言一样&#xff0c;c也是在贝尔实验室诞生的&#xff0c;Bjarne Stroustrup(本贾尼斯特劳斯特卢普)在2…

解决kali linux ssh连接失败

kali linux 默认ssh是禁止root登录的 为了通过 SSH 进入你的 Kali Linux 系统&#xff0c;你可以有两个不同的选择。第一个选择是创建一个新的非特权用户然后使用它的身份来登录。第二个选择&#xff0c;你可以以 root 用户访问 SSH 。为了实现这件事&#xff0c;需要在SSH 配…

企业任职资格机制的剖析

任职资格是指为了保证工作目标的实现&#xff0c;任职者必须具备的知识、技能、能力和个性等方面的要求。它常常以胜任职位所需的学历、专业、工作经验、工作技能、能力加以表达。近年来&#xff0c;员工能力的开发得到越来越多企业的重视&#xff0c;为有效提升员工能力&#…

AI早班车5.11

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

(二)Spring教程——Spring框架特点

Spring框架是为了简化企业级应用开发而创建的&#xff0c;其强大之处在于对Java SE和Java EE开发进行全方位的简化&#xff0c;Spring还对常用的功能进行封装&#xff0c;可以极大地提高Java EE的开发效率。 Spring的应用极其广泛&#xff0c;无论是服务器开发还是任何Java应用…

虽然工作好久好久了,Spring 框架还是很有必要反复的去思考去理解

各位客观老爷们&#xff0c;此篇为移花接木&#xff0c;借花献佛 --> 访问链接地址↓ https://blog.csdn.net/weixin_44207403/article/details/106736102?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171539922216800184117607%2522%252C%2522scm%2…

粒子奇观:用Processing创造宇宙级的动态效果

前言: 👋 今天,我们将一起探索宇宙的奥秘,不是在星空下,而是在Processing的代码世界中。这是我们的第八篇文章,我们将深入粒子系统的神奇领域,学习如何创造出令人惊叹的动态效果。 粒子系统:构建动态世界的基石 🔨 粒子系统是计算机图形学中用于模拟复杂自然现象…

经纬恒润亮相AutoSec中国汽车网络安全及数据安全合规峰会

近日&#xff0c;由谈思实验室、谈思汽车、上海市车联网协会联合举办的AutoSec 8周年年会暨中国汽车网络安全及数据安全合规峰会在上海举办。本次大会主要聚焦数据合规、汽车网络与数据安全趋势与挑战、软件供应链安全、车辆网络安全、网络安全管理等话题。经纬恒润作为智能网联…