tnblog
首页
视频
资源
登录

vue 菜单选中,菜单切换,直接浏览器输入地址菜单选中,路由切换的时候菜单选中,点击的时候菜单选中

1787人阅读 2024/1/11 15:27 总访问:846944 评论:0 收藏:0 手机
分类: 前端

页面

  1. <div id="usersubmenu" class="menuwapper">
  2. <div class="menuitem" href="/user/index/term-report" @click="jump($event)">学期报告</div>
  3. <div class="menuitem" href="/user/index/myfeedback" @click="jump($event)">我的反馈</div>
  4. <div class="menuitem" href="/user/index/my-evaluate" @click="jump($event)">我的评估</div>
  5. <div class="menuitem" href="/user/index/mylabroom" @click="jump($event)">我的实验</div>
  6. <div class="menuitem" href="/user/index/my-prodedu" @click="jump($event)">我的产教</div>
  7. <div class="menuitem" href="/user/index/my-exam" @click="jump($event)">我的考试</div>
  8. <div class="menuitem" href="/user/index/user-info" @click="jump($event)">个人信息</div>
  9. <div class="menuitem" href="/user/index/information_notification" @click="jump($event)">信息通知</div>
  10. </div>

js

  1. watch: {
  2. // 监听路由变化的时候在进行菜单选中
  3. $route(to, from) {
  4. // console.log('路由发送变化了导航页to', to)
  5. this.choiseMenu(to.path)
  6. }
  7. },
  8. mounted() {
  9. const routePath = this.$route.path
  10. // console.log("看看需要选中菜单的路由",routePath)
  11. this.choiseMenu(routePath)
  12. },
  13. methods: {
  14. // 菜单选中,可以跳转的路由在判断应该选中的菜单
  15. choiseMenu(routePath) {
  16. const childNodes = document.getElementById('usersubmenu').getElementsByTagName('div')
  17. for (let index = 0; index < childNodes.length; index++) {
  18. const element = childNodes[index]
  19. console.log(element.getAttribute('href'))
  20. if (routePath === element.getAttribute('href')) {
  21. element.className = 'menuitem menuitemfocus'
  22. } else {
  23. element.className = 'menuitem'
  24. }
  25. }
  26. },
  27. jump(event) {
  28. const href = event.currentTarget.getAttribute('href')
  29. // 菜单选中
  30. this.choiseMenu(href)
  31. this.$router.push(href)
  32. }
  33. }

这里处理了三种情况下的菜单切换选中,一点是点击的时候选中,调用jump方法的时候手动调用了一下this.choiseMenu(href)这样可以保障点击的时候选中。然后就是在mounted去调用了一下这样可以在直接浏览器刷新或者打开的时候选中。还有就是watch里边监控了路由去调用了菜单选中的方法。其实这里一般情况下都不需要三种处理方式都留着,根据实际情况来把,都留着也不会有大问题,只是会有重复执行菜单选中方法的情况。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue.js+Layer实现表格数据绑定与更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

vue.js 实现省市联动

HTML代码&lt;divid=&quot;pro_citys&quot;&gt; 省:&lt;selectid=&quot;provice&quot;v-on:change=&quot;prochange()&quo...

vue.js常见问题

一:花括号当做字符串显示的问题1:检查下绑定到vue.js的id是否重复,如果id重复了,就有可能存在这种问题,因为有可能把数...

vue.js常用指令

v-html可以把字符串当成一个html来渲染,而不是原样输出Html类似.net mvc中的@Html.Raw()方法&lt;divv-html=&quot;item.tit...

干货!div滚动到一定位置就固定他。vue中实现一侧滚动到底部就固定

尊重原创:转载请注名出处div滚动到一定位置就固定他,例如左边的内容很多,右边的内容很少,如果不处理滚动到一定位置后右...

vue.js常用指令事件绑定等vue过滤器解析状态过滤器多个参数。vue表格状态解析。vue解析类型element ui解析类型状态el-tag

按照html的编码显示:v-html&lt;div class=&quot;font_info&quot; v-html=&quot;item.Content&quot;&gt;{{item.Content}}&l...

vue.js if用法

vue.js if可以做一些判断例如我们要把下面这个输出varvm=newVue({ el:&quot;#content&quot;, data:{ titles:[&quot;小明...

vue.js 学习日记第一章-安装vue开发环境

官网:https://cn.vuejs.org/v2/guide/ 这是一篇学习性文章,不定时更新,用来记录我学习vue.js的过程。 首先,是v...

vue.js 学习日记第二章-在vue中编写function及一些简单指令

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第一章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第三章-vue中的简单事件及事件修饰符

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第二章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第四章-vue中文本框数据获取与绑定及computed计算属性

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第三章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第五章-v-if和v-for指令的使用方式

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第四章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第六章-vue组件初步学习

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第五章: http://www.tnblog.net/18323015640/article/details/2...

vue.js学习日记第七章-搭建脚手架

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第六章: http://www.tnblog.net/18323015640/article/details/2...

vue实现好友选中效果

逛过vue官网肯定会发现一个有趣的指令“v-for”,相比与以前拼接html代码确实要上档次一点,而且减少了工作量,先看一波效...

js时间格式化vue.js时间格式化带T 时间格式化

也可以借助moment库, 参考:https://www.tnblog.net/aojiancc2/article/details/8079moment库有点大,推荐可以使用day.js...
这一生多幸运赶上过你.
排名
8
文章
231
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术