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.xdnf.cn/news/1421115.html

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

相关文章

Docker:docker在项目中常用的一些命令

简介   Docker 是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其依赖项打包到一个可移植的容器中&#xff0c;并发布到任何安装了 Docker 引擎的机器上。这些容器是轻量级的&#xff0c;包含了应用程序运行所需的所有东西&#xff0c;如代码、系统库、系统工具…

数据结构与算法===回溯法

文章目录 原理使用场景括号生成代码 小结 原理 回溯法是采用试错的思想&#xff0c;它尝试分步骤的去解决一个问题。在分步骤解决问题的过程中&#xff0c;当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候&#xff0c;它将取消上一步甚至是上几步的计算&#x…

Android 10.0 Launcher3定制folder文件夹2x2布局之二foldericon的2x2的显示布局

1.前言 在10.0的系统rom产品定制化开发中,在对Launcher3的folder文件夹功能定制中,要求folder文件夹跨行显示,就是 2x2布局显示,默认的都是占1格的,现在要求占4格显示,系统默认是不支持显示4格的,所以接下来需要分析相关的 功能,然后来实现这个功能 2.Launcher3定制fo…

递归式--三种求解时间复杂度的方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、代换法二、递归树法三.主方法总结 前言 学无止境&#xff0c;笔勤不辍。很久没有更新算法专栏了…笔者终于找到时间来更新了。今天&#xff0c;笔者给大家…

基于FPGA音视频矩阵-2K/4K分辨率解决方案

① 单板支持4进4出含4096x2160P30 及以下任意分辨率视频 ② 单板支持HDMI 接口、VGA接口、 DVI接口、光纤接口、SDI 接口、 HDBASET接口 ③ 接口输入分辨率自适应 ④ 接口输出分辨率任意配置 ⑤ 20ms广电级别切换速度以及延迟 ⑥ 图像纯RGB处理&#xff0c;色彩更准确 ⑦…

StarRocks 【新一代MPP数据库】

1、StarRocks 1.1、StarRocks 简介 StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing&#xff0c;MPP数据库是一种基于大规模并行处理技术的数据库系统&#xff0c;旨在高效处理大量数据。) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏…

易图讯三维电子沙盘-大数据处理服务

易图讯科技10名高级大数据工程师&#xff0c;高效、快速进行POI、DEM、高清卫星影像、地形地貌、路网、矢量地图等海量大数据处理服务。 免费专业提供POI、AOI、DEM、高清卫星影像、地形地貌、路网、矢量地图等海量大数据处理服务。 1年更新2次POI、高清卫星影像。

微软或将发布全新AI大模型,欲与GPT-4和Gemini一较高下

科技巨头微软正积极研发一款名为MAI-1的全新大型语言模型&#xff0c;该模型有望与谷歌Gemini、Anthropic的Claude以及OpenAI的GPT-4等顶尖模型展开竞争。 据The Information报道&#xff0c;这是微软自向OpenAI投资超过100亿美元获取其AI模型使用权以来&#xff0c;首次自主研…

18 【Aseprite 作图】工具栏介绍

1 在没有输入法的情况下&#xff0c; 按住Shift 大写的N&#xff0c;就可以快速新建图层 ctrl z 撤回这个图层 2 双击图层&#xff0c;可以修改图层名称和属性 3 按住图层&#xff0c;拖动图层&#xff0c;可以把图层拉到 组&#xff0c;就可以方便一组一组管理图层 4 保存的…

机器学习1——线性回归、误差推导

有监督——分类、回归 一、线性回归 对于一个线性方程&#xff0c;没办法拟合所有的数据点&#xff0c;但是要尽可能的覆盖尽可能多的点。 在下面的图中&#xff0c;x01。添加这一项的目的是&#xff1a;将数据矩阵补全&#xff08;比如年龄是x1、工资是x2&#xff0c;那么x0手…

java项目之车辆管理系统(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的车辆管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 车辆管理系统的主要使用者分…

WEB后端复习——JSP、EL、JSTL

JSP:Java Serve Pages(Java服务器页面) 运行在服务器的脚本、在静态网页HTML代码中嵌入java 优势特点 1.被编译后可以多次直接运行&#xff0c;代码执行效率高&#xff08;一次加载、多次可用&#xff09; 2.动态代码封装&#xff0c;组件可重用性高&#xff08;JavaBean EJ…

【recast-navigation-js】通过websocket获取navmesh数据并初始化

目录 说在前面目录结构websocket服务器前端结果 说在前面 操作系统&#xff1a;windows 11浏览器&#xff1a;edge版本 124.0.2478.97recast-navigation-js版本&#xff1a;0.29.0golang版本&#xff1a;1.21.5 目录结构 D:. │ go.mod │ go.sum │ main.go // websocket …

HCIE学习笔记----OSPF详解

OSPF邻居建立的条件 OSPF建立邻居“41”条件总结 4个一致 一个不一致 1.保证接口的前缀 网络信息一致 2.保证ospf区域号和区域类型一致 3.hello包间隔时间和死亡时间一致 4.认证类型和认证认证信息一致 5.路由器的ID不一致 保证唯一性 一-----OSPF 邻接关系建立过程与状…

LeetCode题练习与总结:二叉树的中序遍历--94

一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#xff1a;roo…

微服务思想以及实现

文章目录 前言一、什么时候需要拆分微服务1. 创业型项目2. 大型项目 二、怎么拆1. 拆分目标2. 拆分方式 三、微服务之间远程调用1. 实现方式2. 手动发送Http请求&#xff08;RestTemplate&#xff09;3. 服务注册中心3.1 原理3.2 Nacos注册中心3.3 服务注册3.4 服务发现(Discov…

ExcelVBA在选择区域(有合并)中删除清除空行

【问题】 关于删除空行&#xff0c;以前是用函数来完成工作的&#xff0c; 今天有人提出问题&#xff0c;传来这个文件&#xff0c; 现有数据&#xff0c;1w多行&#xff0c;其中有部分列有不同合并单元格&#xff0c;跨行也不一样。如果要进行筛选删除空行&#xff0c;有一定的…

从 Oracle 到 TiDB,国有大行打造本地生活 APP 新体验

导读 本文介绍了某国有大行推出的本地生活服务类 APP 在数字时代的创新应用实践。该 APP 利用金融科技和互联网平台模式&#xff0c;打造“金融非金融”的线上生态服务平台&#xff0c;满足了用户多样化的生活需求。为应对用户增长和数据量增加带来的挑战&#xff0c;该 APP 决…

C语言之指针初阶

目录 前言 一、内存与地址的关系 二、指针变量 三、野指针 四、const 五、传值调用与传址调用 总结 前言 本文主要介绍C语言指针的一些基础知识&#xff0c;为后面深入理解指针打下基础&#xff0c;因此本文内容主要包括内存与地址的关系&#xff0c;指针的基本语法&…

高精度原理介绍及代码实现

目录 高精度 引入 使用场景 实现原理 高精度加法 数据存储 加法实现 总代码 高精度减法 与加法的不同点&#xff1a; 总代码 高精度乘法 总代码 高精度除法 总结 总注意点 减法注意点 高精度 引入 所谓高精度并不是很高级难懂的东西&#xff0c;只是对传统的…