当前位置: 首页 > news >正文

vue3实现自定义导航菜单

一、创建项目

        1. 打开HBuilder X

图1

        2. 新建一个空项目

        文件->新建->项目->uni-app

        填写项目名称:vue3demo

        选择项目存放目录:D:/HBuilderProjects

        一定要注意vue的版本,当前选择的版本为vue3

图2

        点击“创建”之后进入项目界面

图3

        其中各文件的作用

        (1)pages是存放页面的文件夹

        (2)Static是存放图片等资源的文件夹

        (3)Manifest.json是项目的配置文件

        (4)Pages.json是项目的页面配置文件

二、自定义导航菜单实现

        在 Vue 3 中实现自定义导航菜单涉及多个步骤,包括创建组件、定义数据、处理路由(如果使用Vue Router),以及应用样式。

        1. 创建导航菜单组件

        (1)新建组件存放的文件夹。在项目vue3demo上右键->新建->目录,目录名称:components(不能更改)。

        (2)在components下,创建一个新的Vue组件文件,比如NavMenu.vue,用于定义导航菜单的结构和样式。

图4

        添加路由链接: 在你的Vue组件中,你可以使用<router-link>组件来创建导航链接。当用户点击这些链接时,Vue Router会根据URL的变化自动渲染对应的组件,实现页面之间的无刷新切换。

        代码如下:

<template><nav class="nav-menu"><ul><li v-for="item in menuItems" :key="item.name"><router-link :to="item.route">{{ item.name }}</router-link></li></ul></nav>
</template><script>export default {name: 'NavMenu',data() {return {menuItems: [{ name: '首页', route: '/pages/index/index' },{ name: '列表', route: '/pages/list/list' },{ name: '关于', route: '/pages/about/about' },{ name: '联系', route: '/pages/contact/contact' },// 添加更多菜单项],};},};
</script><style>
.nav-menu {position: fixed; /* 固定定位 */bottom: 0; /* 底部对齐 */left: 0; /* 左侧对齐 */width: 100%; /* 全宽 */background-color: #ccc; /* 背景颜色 */color: #fff; /* 文字颜色 */text-align: center; /* 文字居中 */padding: 10px 0; /* 内边距 */box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1); /* 底部阴影 */
}
.nav-menu ul {list-style: none; /* 移除列表样式 */padding: 0; /* 移除内边距 */margin: 0; /* 移除外边距 */display: flex; /* Flexbox布局 */justify-content: center; /* 子项居中 */
}
.nav-menu li {margin: 0 15px; /* 子项之间的间距 */
}
.nav-menu a {color: #fff; /* 链接颜色 */text-decoration: none; /* 移除下划线 */
}
.nav-menu a:hover {color: #007bff;
}
</style>

        2. 配置路由(使用Vue Router)

        (1)Vue 3项目中安装Vue Router

        确保项目环境:确保你的开发环境中已经安装了Node.js(可以直接在官网https://nodejs.org/zh-cn下载安装)和npm。

        安装Vue Router:在你的项目根目录下,打开命令行工具(可以直接打开HBuilder X的“终端”),并运行命令来安装Vue Router:npm install vue-router。

图5

        (2)创建路由配置       

        在项目根目录下,创建一个名为router的文件夹,并在其中新建一个index.js文件。在 router/index.js中配置Vue Router的路由规则。

//从vue-router包中导入了createRouter和createWebHistory函数。
import { createRouter, createWebHistory } from 'vue-router';
//以下为示例,当前案例没有用到
import Index from '../pages/index/index.vue';
import List from '../pages/list/list.vue';
import About from '../pages/about/about.vue';
import Contact from '../pages/contact/contact.vue';// 定义路由规则
const routes = [//每个路由规则都是一个对象//包含path(路径)、name(路由名称,可选)、component(要渲染的组件)等属性//以下为示例,当前案例没有用到{ path: '/', name: 'Index', component: Index },{ path: '/list', name: 'List', component: List },{ path: '/about', name: 'About', component: About },{ path: '/contact', name: 'Contact', component: Contact },// 可以添加更多路由
];// 创建路由实例并传入路由规则和路由历史记录模式
const router = createRouter({history: createWebHistory(process.env.BASE_URL),routes,
});export default router;

        (3)使用路由:在你的主入口文件(通常是main.js)中引入并使用这个路由实例。在main.js文件中任意位置增加下面的代码:

import './router/index.js'

        3. 在主应用组件中使用导航菜单组件

        在你的主应用组件中,引入并使用NavMenu组件。本示例是在/pages/index/index.vue中。插入的内容为下图红色框中的部分。

图6

<template><view class="content"><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view></view><div id="app"><NavMenu /><router-view /></div>
</template><script>import NavMenu from '/components/NavMenu.vue';export default {components: {NavMenu,},data() {return {title: 'Hello'}},onLoad() {},methods: {}}
</script><style></style>

三、效果

图7

        注意事项

        确保Vue Router版本与Vue 3兼容。

       如果你不使用Vue Router,可以简单地将<router-link>替换为<a>标签,并设置相应的href属性。

相关文章:

vue3实现自定义导航菜单

一、创建项目 1. 打开HBuilder X 图1 2. 新建一个空项目 文件->新建->项目->uni-app 填写项目名称&#xff1a;vue3demo 选择项目存放目录&#xff1a;D:/HBuilderProjects 一定要注意vue的版本&#xff0c;当前选择的版本为vue3 图2 点击“创建”之后进入项目界面 图…...

[2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(2))

方法一&#xff08;string&#xff09;&#xff1a; #include <iostream> #include <string> using namespace std;// 检查是否为回文数 bool isPalindrome(int n) {string str to_string(n);int left 0, right str.size() - 1;while (left < right) {if (s…...

EDA软件研发的DevOps平台

1&#xff1a;什么是DevOps DevOps是十几年前&#xff0c;在互联网比较火的词&#xff0c;实际上就是ci/cd平台的另外一种说法&#xff0c;核心是说打破研发&#xff0c;测试&#xff0c;运维的边界&#xff0c;能够将整个产品开发的流程快速循环起来&#xff0c;随时可发版&a…...

从单机缓存到分布式缓存那些事

作者&#xff1a;秦怀 1 缓存前世今生 1.1 故事从硬件开始 Cache 一词来源于 1967 年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义&#xff0c;用于电脑工程领域。当时没有 Cache&#xff0c;CPU 和内存都很慢&#xff0c;CPU 直接访…...

[Ubuntu20] Gym入门,Mujoco

OpenAI Gym是 OpenAI 出的研究强化学习算法的 toolkit&#xff0c;对于强化学习算法来说&#xff0c;大部分的论文环境都已经被 OpenAI 的 gym 环境集成&#xff0c;我们可以很便利的使用该工程来测试自己的强化学习算法&#xff0c;与他人的算法做一个对比。 Gym 官网 Github…...

Linux(ubuntu)系统的一些基本操作和命令(持续更新)

操作&#xff1a; Ctrl Alt T&#xff08;打开命令终端&#xff09; Ctrl Shift &#xff08;放大命令终端窗口&#xff09; Ctrl c&#xff08;退出当前在终端运行的程序&#xff09; 在命令终端窗口按Tab键可以补全要写的命令 命令&#xff1a; pwd&#xff08;查…...

【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?

【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化&#xff1f; 重要性&#xff1a;★★ NLP Github 项目&#xff1a; NLP 项目实践&#xff1a;fasterai/nlp-project-practice 介绍&#xff1a;该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用&am…...

android 安全sdk相关

前述 在网上有看到许多android安全sdk相关的内容&#xff0c;有重复的也有比较新鲜的内容&#xff0c;这里做一个整体的合集&#xff0c;以及后续又看到一些比较新的东西会一起放在这里。 android内sdk目前可以分为以下几个部分&#xff08;有一些部分可能会存在一些重合&#…...

NVR监测软件EasyNVR多个NVR同时管理:录播主机的5条常见问题与解决办法

视频监控广泛应用于城市治安、交通管理、商业安保及家庭监控等领域。在使用EasyNVR平台管理多个NVR设备时&#xff0c;尤其是涉及到海康录播主机的场景中&#xff0c;使用者可能会遇到一些常见问题。本文将探讨海康录播主机的五个常见问题及其解决办法。 1、海康录播主机的5条常…...

Z2400027基于Java+SpringBoot+Mysql+thymeleaf引擎的图书馆管理系统的设计与实现 代码 论文

图书馆管理系统的设计与实现 一、项目背景与简介二、系统总体功能三、运行环境与技术选型四、系统架构与模块划分五、系统界面截图六、源码获取 一、项目背景与简介 项目背景&#xff1a; 随着信息技术的不断发展和图书资源的日益丰富&#xff0c;图书馆作为知识传播和学习的重…...

完美解决Docker pull时报错:https://registry-1.docker.io/v2/

1、错误描述 rootubuntu-database:/opt/dify/docker# docker compose up -d [] Running 9/9✘ api Error context canceled …...

A051-基于Spring Boot的网络海鲜市场系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

【组件】前端ElementUi 下拉Tree树形组件 带模糊搜索自动展开高亮功能 树结构 封装为组件使用

【组件】前端ElementUi 下拉Tree树形组件 带模糊搜索自动展开高亮功能 树结构 【组件】前端ElementUi 下拉Tree树形组件 带模糊 https://live.csdn.net/v/436057 单独使用 <template><div><el-popoverstyle"overflow-y: auto; "placement"bottom…...

Blender 运行python脚本

Blender 运行python脚本 步骤 1&#xff1a;打开 Blender 首先&#xff0c;打开 Blender 软件。你可以从官方网站 [blender.org]( 下载最新的 Blender 版本&#xff0c;并按照安装向导进行安装。 步骤 2&#xff1a;打开“文本编辑器”面板 在 Blender 的默认布局中&#xff…...

递归:求fib数列的第n项,前几项是1,1,2,3,5,每一项都等于前面两项的和:JAVA

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 求fib数列的第n项&#xff0c;前几项是1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5,每一项都等于前面两项的和 输入描述: 输入一个整数n&#xff0c;n<46 输出描述: 输出一个…...

三分钟快速掌握——Linux【vim】的使用及操作方法

一、vim的使用 vim是一个文本编辑器 非常小巧轻便 1.1如何进入vim编辑器 方法一&#xff1a; 首先使用touch 1.c 创建一个源文件 然后使用vim 1.c进入 方法二&#xff1a; 直接使用指令 vim 2.c 会直接创建一个2.c的源文件 退出时记得保存&#xff08;使用wq或者x&am…...

Wrapper包装类

包装类又叫封装类&#xff0c;Java的数据类型有两种&#xff0c;基础数据类型是基础的&#xff0c;从狭义的角度看它们不是面向对象的&#xff0c;在引用数据类型中&#xff0c;有八个引用数据类型对应了八个基础数据类型&#xff0c;这个八个引用数据类型就叫做基础数据类型的…...

MySQL高级(六):全局锁、表锁和行锁

全局锁 (Global Lock) 定义 全局锁作用于整个 MySQL 实例。加上全局锁后&#xff0c;整个数据库实例会被锁定&#xff0c;其他线程无法对数据库中的任何表或数据进行读写操作。 使用方式 通过命令 FLUSH TABLES WITH READ LOCK (FTWRL) 来加全局锁。 特点 影响范围&#…...

【CLIP】3: semantic-text2image-search允许局域网访问

前后端都是局域网的在同一局域网内的其他设备上,打开浏览器,访问 http://192.168.50.197:5173/。前端 前端默认是本地的 (semantic-text2image-search) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/01_semantic-text2image-search/frontend# npm run dev> web@…...

FPGA实现GTP光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案本博已有的FPGA驱动USB通信方案 3、工程详细设计方案工程设计原理框图输入Sensor之-->OV5640摄像头输入Sensor之-->芯片解码的…...

docker搭建nginx

一. 直接启动nginx镜像 1. 下载nginx镜像 docker pull nginx 2. 运行镜像 docker run -p 8080:80 --name web -d nginx 3. 网址查看 xx.xx.xx.xx:8080 二. 挂在文件启动nginx镜像 1. 拷贝docker文件到本地 docker cp web:/etc/nginx/nginx.conf /root/data/config/nginx…...

Java 17的新特性及其对现代Java开发的影响

Java 17作为一个长期支持&#xff08;LTS&#xff09;版本&#xff0c;于2021年9月14日发布&#xff0c;引入了多项重要的新特性&#xff0c;这些特性不仅提高了Java语言的表现力和安全性&#xff0c;还优化了性能。本文将详细介绍Java 17的关键新特性&#xff0c;并探讨这些特…...

【Flink】快速理解 FlinkCDC 2.0 原理

快速理解 FlinkCDC 2.0 原理 要详细理解 Flink CDC 原理可以看看这篇文章&#xff0c;讲得很详细&#xff1a;深入解析 Flink CDC 增量快照读取机制 (https://juejin.cn/post/7325370003192578075)。 FlnkCDC 2.0&#xff1a; Flink 2.x 引入了增量快照读取机制&#xff0c;…...

使用R的数据包快速获取、调用各种地理数据

数据一直是科学研究绕不开的话题&#xff0c;为了方便快捷的获取各种地理数据&#xff0c;许多R包被开发出来&#xff0c;今天介绍一些方便快捷的数据R包。 rnaturalearth 包使 Natural Earth 数据可用。自然地球特征包括 1&#xff1a;10m、1&#xff1a;50m 和 1&#xff1a…...

scrapy豆瓣爬虫增强-批量随机请求头

1.1 豆瓣爬虫增强,中间件随机请求头 1.2 清除原有的中间件,进行中间件测试 1.3 导入全新的中间件 1.4 运行爬虫,这个时候的请求头是固定的 1.5 强化对agent的输出,会舍弃输出cookie,使输出更明了 1.6 转移输出请求头位置 新增输出 造成这样问题的原因是Douban/Douban/settings…...

基于华为昇腾910B,实战InternLM个人小助手认知微调

本文将带领大家基于华为云 ModelArts&#xff0c;使用 XTuner 单卡微调一个 InternLM 个人小助手。 开源链接&#xff1a;&#xff08;欢迎 star&#xff09; https://github.com/InternLM/InternLM https://github.com/InternLM/xtuner XTuner 简介 XTuner 是一个高效、灵…...

Electron文件写入、读取(作用:公共全局变量,本地存储)

Electron文件写入、读取&#xff08;作用&#xff1a;公共全局变量&#xff0c;本地存储&#xff09; 使用Node.js的fs模块 也可以直接使用Node.js的fs模块来实现本地文件的读写操作 // electron/main.jsconst fs require(fs);// 写入文件localhost.txt fs.writeFileSync(lo…...

水体分割检测 包含YOLOV,COCO,VOC三种标记的数据集包含 857张图片

说明 水体分割检测指的是利用深度学习模型进行水体区域的分割和检测。YOLO&#xff08;You Only Look Once&#xff09;是一种流行的实时目标检测算法&#xff0c;其主要特点是速度快&#xff0c;适合于实时场景下的目标检测。 在水体分割检测中&#xff0c;可以使用YOLO算法来…...

Harbor安装、HTTPS配置、修改端口后不可访问?

Harbor安装、HTTPS配置、修改端口后不可访问&#xff1f; 大家好&#xff0c;我是秋意零。今天分享Harbor相关内容&#xff0c;安装部分可完全参考官方文档&#xff0c;写的也比较详细。 安装Harbor 官方文档&#xff1a;https://goharbor.io/docs/2.12.0/install-config/ …...

正定矩阵(Positive Definite Matrix)的定义与性质

正定矩阵&#xff08;Positive Definite Matrix&#xff09;的定义与性质 正定矩阵在优化、机器学习、信号处理等领域中有广泛应用。以下是其定义、几何解释及性质。 1. 定义 一个 n n n \times n nn 的实对称矩阵 A A A 是正定矩阵&#xff0c;当且仅当它满足以下等价条…...

网站推广员如何做/什么是论坛推广

队长链接&#xff1a;http://www.cnblogs.com/zhanghongjian/p/7608590.html html书写规范 1. 文档类型声明及编码: 统一为html5声明类型<!DOCTYPE html>; 编码统一为<meta charset”gbk” />, 书写时利用IDE实现层次分明的缩进; 2. 非特殊情况下样式文件必须外链至…...

网站正能量免费下载/平台推广是什么

1.安装setuptools2.yum install -y mysql-devel python-devel gcc否则会报错&#xff1a;command gcc failed with exit status 13.python setup.py install转载于:https://www.cnblogs.com/biboxie/p/4233422.html...

廊坊开发区规划建设局网站/1000个关键词

做一件事&#xff0c;如果觉得难那就对了。容易达成的事&#xff0c;没有经过努力获取到的是没有成就感的。人生就像上坡&#xff0c;更高处的风景更值得期待。中国人民大学与加拿大女王大学金融硕士项目给予你前行的力量。 我们每个人的一生中&#xff0c;都是在不断攀登一座…...

网站开发制作公司简介/百度指数是什么

参考&#xff1a;http://www.cnblogs.com/denny402/p/5073427.html转载于:https://www.cnblogs.com/573177885qq/p/5805027.html...

南昌集团制作网站公司/网站关键词优化排名公司

第一步&#xff1a;引入Jsoup和lang和lang3的依赖&#xff1a;Jsoup是HTML解析器lang和lang3这两个包里有转换所需的工具类org.jsoupjsoup1.11.3commons-langcommons-lang2.6org.apache.commonscommons-lang33.4第二步&#xff1a;直接使用即可&#xff1a;import org.apache.c…...

微网站免费建站系统/互联网广告投放代理公司

使用RD Client来远程桌面 可能你会觉得奇怪&#xff0c;team viewer和向日葵之类的难道不香吗&#xff1f;看起来他们两个都是实现了远程桌面的功能&#xff0c;好像没必要特地用Windows自带的RD Client进行内网穿透之后远程桌面。 实际上team viewer之类的在我的使用范围内不…...