位置: 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增选)

  • 只有会议号怎么加入腾讯会议列表(只有会议号怎么添加会议列表)

    只有会议号怎么加入腾讯会议列表(只有会议号怎么添加会议列表)

  • 苹果手机白屏怎么办(苹果手机白屏怎么强制重启)

    苹果手机白屏怎么办(苹果手机白屏怎么强制重启)

  • macbookpro16寸电池可以续航多久(macbookpro16寸电池容量多少更换)

    macbookpro16寸电池可以续航多久(macbookpro16寸电池容量多少更换)

  • 电脑文件怎么解压到桌面(电脑文件怎么解除只读)

    电脑文件怎么解压到桌面(电脑文件怎么解除只读)

  • 苹果电池多久掉百分之一(苹果电池多久掉到80%)

    苹果电池多久掉百分之一(苹果电池多久掉到80%)

  • 华为手机原装膜是什么膜(华为手机原装膜刮花了怎么办)

    华为手机原装膜是什么膜(华为手机原装膜刮花了怎么办)

  • 快手评论图片怎么看不见(快手评论图片怎么发)

    快手评论图片怎么看不见(快手评论图片怎么发)

  • 手机短信字变大了怎么弄回原来(手机短信字变大了)

    手机短信字变大了怎么弄回原来(手机短信字变大了)

  • 淘宝可以登录几个账号(淘宝可以登录几台设备)

    淘宝可以登录几个账号(淘宝可以登录几台设备)

  • 怎么在表格顶端加标题(怎么在表格顶端显示所有表格选项卡内容)

    怎么在表格顶端加标题(怎么在表格顶端显示所有表格选项卡内容)

  • 苹果11拍照怎么开闪光灯(苹果11拍照怎么设置水印时间地点)

    苹果11拍照怎么开闪光灯(苹果11拍照怎么设置水印时间地点)

  • word有画笔功能吗(word画笔功能为啥用不了)

    word有画笔功能吗(word画笔功能为啥用不了)

  • 小米手机相机为什么突然变成黑色的了(小米手机相机为什么闪退)

    小米手机相机为什么突然变成黑色的了(小米手机相机为什么闪退)

  • vivo手机内屏碎了(vivo手机内屏坏了要花多少钱)

    vivo手机内屏碎了(vivo手机内屏坏了要花多少钱)

  • 手机怎么登录两个微信(手机怎么登录两个QQ)

    手机怎么登录两个微信(手机怎么登录两个QQ)

  • 京东海外自营和京东自营有什么区别(京东海外自营和京东自营哪个好)

    京东海外自营和京东自营有什么区别(京东海外自营和京东自营哪个好)

  • 抖音卸载重新安装里面的内容还有吗(抖音卸载重新安装草稿箱怎么恢复啊)

    抖音卸载重新安装里面的内容还有吗(抖音卸载重新安装草稿箱怎么恢复啊)

  • cpu和主板是一体的吗(cpu和主板是一起卖的吗)

    cpu和主板是一体的吗(cpu和主板是一起卖的吗)

  • 智能卡系统由哪些部分构成(智能卡应用系统)

    智能卡系统由哪些部分构成(智能卡应用系统)

  • wps文档怎么添加目录(wps文档怎么添加饼状图)

    wps文档怎么添加目录(wps文档怎么添加饼状图)

  • vivo手机怎么投屏到电视(vivo手机怎么投屏到苹果平板上)

    vivo手机怎么投屏到电视(vivo手机怎么投屏到苹果平板上)

  • 微信公众号视频怎么下载(微信公众号视频号怎么申请)

    微信公众号视频怎么下载(微信公众号视频号怎么申请)

  • vivoy3什么时候上市(vivoy3什么时候上市的手机)

    vivoy3什么时候上市(vivoy3什么时候上市的手机)

  • 云计算业务与传统IDC业务的区别包括(云计算业务与传统idc业务的区别)

    云计算业务与传统IDC业务的区别包括(云计算业务与传统idc业务的区别)

  • 抬头唤醒是什么意思(抬头唤醒好用吗)

    抬头唤醒是什么意思(抬头唤醒好用吗)

  • ipad怎么分屏做笔记(ipad怎样弄分屏)

    ipad怎么分屏做笔记(ipad怎样弄分屏)

  • 华为sos紧急联络怎么设置(华为sos紧急联络怎么设置给110打电话)

    华为sos紧急联络怎么设置(华为sos紧急联络怎么设置给110打电话)

  • 免费wifi钥匙在哪看密码呢(免费的wlan钥匙)

    免费wifi钥匙在哪看密码呢(免费的wlan钥匙)

  • 增值税的专用发票含税吗
  • 自查补缴增值税的会计处理
  • 银行代发工资必须交社保吗
  • 建筑安装增值税税负率行业标准
  • 企业所得税清算备案日和结束日怎么填
  • 个体工商户核定征收税率
  • 广告公司如何申报文化事业建设税
  • 票据的融资
  • 工程劳务分包合同中的分包范围
  • 年度利润总额的12%
  • 生产过程中报废怎么核算成本
  • 产品试用装入什么科目里
  • 需要预缴增值税
  • 厂房出租税收分类
  • 材料发票不够怎么办
  • 怎么看发票是不是免税
  • 公司增资认缴需要什么流程呢怎么办理
  • 地方附加税
  • 2020深圳增值税税率是多少
  • 公司的钱怎么提现
  • 分公司的发票可以由总公司开吗
  • 出口外贸海运费的会计处理
  • 企业购入存货分录
  • 城建税计税依据及税率
  • 金税盘发票份数没有显示
  • 疏通下水道入什么经络
  • 公司注销了是不是就不能用了
  • 应收账款计提坏账准备是根据什么会计信息质量要求
  • 插上U盘电脑无法启动怎么回事
  • 加班工资算补贴么
  • 收益性支出的项目有哪些
  • 向房东要押金的不犯法的妙招
  • phpurl编码
  • Windows操作系统出现内存错误解决方法
  • uniapp生成h5
  • 手工帐应交税费明细账
  • 潘塔纳尔湿地位于巴拉圭盆地
  • php framework框架
  • 钢管扣件租赁公司社会实践报告怎么写范文
  • 餐饮管理公司开发票
  • 资产总额怎么计算公式
  • 出售一台设备,收到价款20万
  • ps怎么把人p掉背景还原
  • 应交税金会计编码
  • phpcms插件
  • mongodb $nin
  • 预收账款什么时候确认增值税
  • 商品发生报废如何处罚
  • 企业月末在产品数量变化不大时,最适宜
  • 实收资本一定要到账吗
  • 一般纳税人建筑劳务税率
  • 发放职工薪酬计入什么科目
  • 长期待摊费用如何记账
  • 同一个单位能否交五险
  • 企业将购进的原材料分录
  • 航天信息的发票以什么形式导入开票信息
  • 个体工商户的个税起征点
  • 滴滴打车老板起源故事
  • 过户车子需要带什么证件
  • 小规模纳税人季度申报哪些税
  • 互联网代记账业务
  • sql server无法连接服务器的原因
  • xp电脑开机进入bios怎么办
  • mac有线不能上网
  • cmd显示命令
  • mac苹果电脑如何开4个微信号
  • 卸载声卡驱动有什么影响
  • win10非管理员账户开启管理员账户
  • win7系统怎么把其他盘空间给c盘
  • 深入理解bootstrap
  • node.js开发指南
  • 支持google play
  • 模拟监控app
  • jquery左右移动动画效果
  • 关于事件的报告范文
  • xml文件的数据如何读取
  • django批量上传图片
  • javascript的基本规范
  • 朝阳区地方税务局官网
  • 个体工商户税务注销流程及需要的资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设