位置: IT常识 - 正文

Vue3点击侧边导航栏完成切换页面内组件(WEB)(vue侧边栏导航,右侧显示对应内容)

编辑:rootadmin
Vue3点击侧边导航栏完成切换页面内组件(WEB)

推荐整理分享Vue3点击侧边导航栏完成切换页面内组件(WEB)(vue侧边栏导航,右侧显示对应内容),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue实现侧边栏导航滑动,vue侧边菜单,vue导航栏点击选中状态,vue侧边栏导航,右侧显示对应内容,vue点击侧边栏进行内容切换,vue点击侧边栏进行内容切换,vue侧边菜单栏导航,vue实现侧边导航栏,内容如对您有帮助,希望把文章链接给更多的朋友!

Vue3点击侧边导航栏完成切换页面组件

目录效果思路过程获取当前点击DOM并添加点击class将其它的导航未点击项isclick样式类去除完整代码导航代码显示页面代码路由设置感谢效果

点击左侧导航,右面页面切换。

思路

使用router-view显示点击后需要切换的组件,需要先完成网页的结构。侧面导航 + 页面显示部分 如: 设置一个class属性,点击元素时给当前元素额外添加一个class类。给导航中每个点击项添加上点击事件,当点击当前项时其它项的class变成原本的,当前元素添加一个当前点击的class类,而组件切换则由router完成,使用router-link to 完成路由路径切换。 当前点击模式类代码:

.isclick {background: #e9feff;color: #0bbfbc;}过程获取当前点击DOM并添加点击class

这里需要注意,触发事件的元素对象(不一定是绑定事件的对象,会因为事件冒泡变化),所以我们需要获取绑定事件的元素对象。

$event:当前触发的是什么事件 $event.target:触发事件的元素对象(不一定是绑定事件的对象) $event.currentTarget:绑定事件的元素对象

此处需要使用: e.currentTarget

Vue3点击侧边导航栏完成切换页面内组件(WEB)(vue侧边栏导航,右侧显示对应内容)

改变选中元素的class: e.currentTarget.className = ‘nav-item isclick’ 其中nav-item为未点击时的navitem样式类,isclick为点击后更改的样式类,原来样式只有一个nav-item,再添加一个isclick。

将其它的导航未点击项isclick样式类去除

得到点击项的其它兄弟节点

var domList = e.currentTarget.parentNode.children

parentNode 是得到父节点 children 是得到子节点 当前元素的父节点的所有子节点,是一个列表

将所有节点的点击样式类去除

for(let d=0;d<domList.length;d++){domList[d].className = 'nav-item'}

遍历当前所有节点的兄弟节点,并修改class。

完整代码导航代码

导航组件代码:

<template><div class="nav"><ul><li v-for="item in NavList" class="nav-item" @click="clickNav($event)"><div><img class="nav-icon" :src="item.icon" width="20px" height="20px" alt="sy" /><router-link :to="item.url">{{item.title}}</router-link></div></li></ul><div class="nav-img-box" style="margin-top: 108px;"><img src="@/assets/装饰图.png" alt="zs" /></div></div></template><script setup>import { ref,reactive } from 'vue'var NavList = reactive([{title: "合作伙伴",url: "/partner",icon: require("@/assets/首页-选中.png")},{title: "客户列表",url: "/customer",icon: require("@/assets/客户列表.png")},{title: "订单列表",url: "/order",icon: require("@/assets/财务列表.png")},{title: "物料列表",url: "/materials",icon: require("@/assets/标签列表.png")},{title: "成员管理",url: "/corpuser",icon: require("@/assets/员工列表.png")},{title: "收益概览",url: "/income",icon: require("@/assets/员工列表.png")},{title: "价格配置",url: "/price",icon: require("@/assets/员工列表.png")},{title: "系统设置",url: "/setting",icon: require("@/assets/员工列表.png")}])function clickNav(e) {var domList = e.currentTarget.parentNode.childrenfor(let d=0;d<domList.length;d++){domList[d].className = 'nav-item'}console.log('点击',e.currentTarget)e.currentTarget.className = 'nav-item isclick'}</script><style scoped>li {list-style-type: none;}a {text-decoration: none;color: #39475A;}.nav {width: 200px;height: 100%;background: #FFFFFF;box-shadow: 3px 0px 6px 0px rgba(82, 82, 82, 0.14);}.nav ul {margin-top: 32px;padding: 0;}.nav-item {width: 200px;height: 46px;font-family: PingFangSC-Medium;font-size: 16px;color: #39475A;letter-spacing: 0;line-height: 46px;font-weight: 500;}.nav-item div {margin-left: 17px;height: 46px;line-height: 46px;}.nav-item div img {width: 20px;height: 20px;}.nav-icon {vertical-align: middle;margin-right: 7px;padding-bottom: 6px;}.isclick {background: #e9feff;color: #0bbfbc;}.nav-img-box img {width: 200px;height: 416px;}</style>

代码中的icon: require(“@/assets/员工列表.png”)为导航图标,需要注意,如果不用require,直接写图片的地址的话可能出现无法找到图片的问题,图片的地址在html中使用时会被转码,出现类似%E9%A6%96%E9%A1%B5-%E9%80%89%E4%B8%AD.png的情况。

显示页面代码<template> <div class="page-body"> <PageNav></PageNav> <router-view /> </div> <div class="bottom"> <PageBottom></PageBottom> </div></template><script setup>import PageNav from "@/components/PageNav"import PartnerView from "@/views/PartnerView"import PageBottom from "@/components/PageBottom.vue"</script><style scoped>.page-body { display: flex;}</style>

其中PageNav为前面的导航代码

路由设置

router.js中代码如下

import { createRouter, createWebHistory } from 'vue-router'import PartnerView from '../views/PartnerView.vue'import CustomerView from '../views/CustomerView.vue'import OrderView from '@/views/OrderView'import MaterialsView from '../views/MaterialsView'import CorpUserView from '@/views/CorpUserView'import InComeView from '@/views/InComeView'import PriceView from '@/views/PriceView'import SettingView from '@/views/SettingView'const routes = [ { path: '/', name: 'index', component: PartnerView, redirect: 'partner', }, { path: '/partner', name: 'partner', component: PartnerView }, { path: '/customer', name: 'customer', component: CustomerView }, { path: '/order', name: 'order', component: OrderView }, { path: '/materials', name: 'materials', component: MaterialsView }, { path: '/corpuser', name: 'corpuser', component: CorpUserView }, { path: '/income', name: 'income', component: InComeView }, { path: '/price', name: 'price', component: PriceView }, { path: '/setting', name: 'setting', component: SettingView }]const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes})export default router感谢

以上,仅记录自己的解决办法,如您有更好的思路,欢迎在评论区留言 感谢点赞,如有帮助可以帮忙收藏关注,感谢!

本文链接地址:https://www.jiuchutong.com/zhishi/293139.html 转载请保留说明!

上一篇:渐进式 Web 应用程序介绍(渐进模式的特点)

下一篇:中科院ChatGPT Academic开源安装使用过程中的网络代理问题(中科院院士2023增选)

  • 一起作业怎么解绑手机号码(一起作业怎么解绑微信)

    一起作业怎么解绑手机号码(一起作业怎么解绑微信)

  • 苹果如何去掉悬浮球(苹果如何去掉悬浮)

    苹果如何去掉悬浮球(苹果如何去掉悬浮)

  • 抖音货到付款怎么取消订单(抖音货到付款怎么付钱)

    抖音货到付款怎么取消订单(抖音货到付款怎么付钱)

  • 电脑连wifi的安全密钥是什么(电脑连wifi的安全WPA2怎样修改?)

    电脑连wifi的安全密钥是什么(电脑连wifi的安全WPA2怎样修改?)

  • 手机最高温度不能超过多少(手机温度高不高)

    手机最高温度不能超过多少(手机温度高不高)

  •   苹果x屏幕出现黑色圆圈

      苹果x屏幕出现黑色圆圈

  • 淘宝拍卖成功后不付款会怎样(淘宝拍卖成功后不付款)

    淘宝拍卖成功后不付款会怎样(淘宝拍卖成功后不付款)

  • 电脑恢复了出厂设置后和新的一样吗(电脑恢复了出厂设置为什么要激活)

    电脑恢复了出厂设置后和新的一样吗(电脑恢复了出厂设置为什么要激活)

  • 公众号被永久封号对微信有影响吗(公众号被永久封禁还能申请新公众号吗)

    公众号被永久封号对微信有影响吗(公众号被永久封禁还能申请新公众号吗)

  • 华硕z390启动项里无硬盘(华硕z390设置硬盘启动)

    华硕z390启动项里无硬盘(华硕z390设置硬盘启动)

  • 无线耳机左耳没声音(无线耳机左耳没连不上)

    无线耳机左耳没声音(无线耳机左耳没连不上)

  • qq群里的屏幕分享在哪里找(qq群分屏怎么弄出来)

    qq群里的屏幕分享在哪里找(qq群分屏怎么弄出来)

  • 华为黑屏充电也没反应(华为黑屏充电也没反应无法强制开机)

    华为黑屏充电也没反应(华为黑屏充电也没反应无法强制开机)

  • vivo手机越来越卡怎么解决办法(vivo手机越来越烫怎么回事)

    vivo手机越来越卡怎么解决办法(vivo手机越来越烫怎么回事)

  • qq怎么设置离线状态(qq怎么设置离线请留言)

    qq怎么设置离线状态(qq怎么设置离线请留言)

  • word怎么只删除表格内容(word怎么只删除英文)

    word怎么只删除表格内容(word怎么只删除英文)

  • 如何关掉淘宝人生(淘宝怎么关掉)

    如何关掉淘宝人生(淘宝怎么关掉)

  • 手机主板坏了有什么症状(手机主板坏了有办法拿到资料吗)

    手机主板坏了有什么症状(手机主板坏了有办法拿到资料吗)

  • 抖音里面怎么看访客记录(抖音里面怎么看直播)

    抖音里面怎么看访客记录(抖音里面怎么看直播)

  • 手机ppt怎么全程音乐(手机ppt怎么全程播放音频)

    手机ppt怎么全程音乐(手机ppt怎么全程播放音频)

  • vivox24pro防水吗(vivox27pro防水么)

    vivox24pro防水吗(vivox27pro防水么)

  • 淘宝过了7天还能退货吗(淘宝过了7天还能退吗现在)

    淘宝过了7天还能退货吗(淘宝过了7天还能退吗现在)

  • 池式连接超时怎么解决(池式连接请求超时要怎么办)

    池式连接超时怎么解决(池式连接请求超时要怎么办)

  • ftp主动模式和被动模式的区别(ftp 主动和被动)

    ftp主动模式和被动模式的区别(ftp 主动和被动)

  • 全民k歌如何去掉小程序(全民k歌如何去水印)

    全民k歌如何去掉小程序(全民k歌如何去水印)

  • 怎么查看美团已购账单(怎么查看美团已经删除的订单)

    怎么查看美团已购账单(怎么查看美团已经删除的订单)

  • 如何关闭手机扬声器(如何关闭手机扬声器模式vivo)

    如何关闭手机扬声器(如何关闭手机扬声器模式vivo)

  • vivox27是屏下指纹吗(vivo屏下指纹手机有哪些)

    vivox27是屏下指纹吗(vivo屏下指纹手机有哪些)

  • 苹果手机短信显示已送达什么意思(苹果手机短信显示尚未发送)

    苹果手机短信显示已送达什么意思(苹果手机短信显示尚未发送)

  • 没有审计报告的上市公司怎么办
  • 年末是否结转本年利润
  • 出差加油算什么费用
  • 期末存货采用成本与可变现净值孰低法
  • 资产入股会计处理
  • 微信支付过路费怎么开电子发票
  • 公司对外投资是股东会还是董事会
  • 收到公众号申请的小额打款认证怎么入账?
  • 法人投资转入旧机器无发票怎么入账?
  • 城建税教育附加地方教育附加的税率
  • 记账凭证广告费
  • 金融业的增值税
  • 代购本无罪,逃避关税须处罚
  • 期间费用包括哪些?
  • 工会筹备金怎么报
  • 暂估运费成本的账务处理
  • 不同方式的融资租赁业务如何贴花?
  • 电脑怎么搜索文档
  • mac电脑安装win10系统报错
  • windows11蓝牙问题
  • 电脑系统权限管理在哪里
  • 简要说明php web的工作流程
  • 软碟通支持uefi吗
  • 鸿蒙系统蓝牙耳机声音小怎么办
  • PHP:session_start()的用法_Session函数
  • 售后租回怎么理解
  • js点击li
  • matlab用于图像处理
  • 民间非营利组织如何纳税
  • 长期待摊费用是什么科目
  • mongodb添加数据
  • BOM学习
  • 增值税扣税凭证进项税额转出情况核实函
  • 金蝶可以自动结账吗
  • 实缴资本需要存放多久
  • 在建工程什么情况下算竣工
  • 账面价值大于计税基础是调增还是调减
  • 法定盈余公积和任意盈余公积可用于
  • 厂家给经销商的活动方案怎么写
  • 电费发票上的数量是什么意思
  • 做个公司网站一般需要多少钱
  • 企业接受股东划入资产的处理
  • 单式记账法缺点是什么
  • 印花税为什么不用计提
  • 折旧计入主营业务成本的情况
  • 营业收入要包括什么
  • 银行的结息怎么做会计分录
  • 会计科目的设置原则包括( )
  • 开支票如何做账
  • 办公用水电费计入什么科目
  • 计提资产减值是好事还是坏事
  • windows使用痕迹是指是什么
  • sql作业怎么执行
  • sql无法用sql身份验证
  • ubuntu系统应用
  • linux充当虚拟内存的是哪个分区
  • win7待机时间在哪调
  • win8跳过开机密码
  • 一边做游戏一边学英语
  • cocos creatorapi
  • 怎么用javascript
  • dos echo命令
  • 不易引起无意注意的是
  • javascript:openattachment
  • js确认框s弹出框确定和取消
  • 安卓icon图标
  • shell中的-le
  • table标签怎么设置宽高
  • 用python编写程序
  • js获取当前日期并格式化
  • nodejs爬虫技术
  • python快速上手 自动化
  • 学javascript的书
  • Python3.6正式版新特性预览
  • 打印个人住房信息查询记录需要什么资料
  • 广东省国家税务总局官网
  • 江苏省办理准生证的app叫什么
  • 持有上海市居住证一年以上是什么意思
  • 上海市浦东新区公租房
  • 石家庄水费阶梯价格表 2020
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设