100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > elementui 可伸缩侧边栏_Vue Element-UI 侧边栏高亮

elementui 可伸缩侧边栏_Vue Element-UI 侧边栏高亮

时间:2024-04-30 15:15:22

相关推荐

elementui 可伸缩侧边栏_Vue Element-UI 侧边栏高亮

我们在使用 vue + element 写后台管理模板时,肯定逃不过左侧菜单也称侧边栏。

举例:我们现在有一个 A 模块,A 模块中有详情页面和编辑页面【一共三个页面】,我们通常怎么考虑?将三个页面写在一个 vue 里,通过 v-if 等切换展示,使用一个路由。

写成三个 vue ,在 A 模块中引入编辑和详情,再注册和使用,使用一个路由。

写成三个 vue ,在路由里注册三个,通过切换路由实现,使用三个路由。

下面我们分析下这三种方式:

第一种:将三个页面写在一个 vue 里,导致代码量太大,过于臃肿,后期不好维护。

第二种:假设我们在详情页面刷新,我们当然期望还是停留在详情页而不是回到 A 模块,所以用组件包裹的形式不适合,如果是弹框可是刷新后关闭,如果是页面这样不合理。第一种也存在这个问题。

第三种:使用三个路由,各页面分开,刷新时互不干扰。

这样看来第三种会比较好,但是这样会遇到一个问题,当我们切换到详情页或编辑页时我们是期望 A 模块高亮,而不是取消高亮

element-ui 也给我们提供了一个属性 default-active

呀,看这个描述很是头痛啊,说的这是啥啥啥!完全看不懂,求助下度娘

度娘反馈回来的文章中说道

我之前并不是这么写的,我是在 route 的 meta 中加的配置,我看到这么简单就去试了试,发现还挺好用。看着貌似没有问题,但是当你直接在浏览器输入 url 时并不会更新过来【场景:当前 B 模块高亮,在 url 中输入一个 A 模块下的路由地址,虽然页面内容是正确的但是左菜单高亮不正确】

下面介绍我的方法:

首先在 route 的 index.js 中给需要改变高亮的路由增加 GuidePath 和 JumpPath 字段,GuidePath 表示当前路由高亮指向不是本身,JumpPath 表示高亮指向的路由企业注册、公司详情、编辑信息的高亮全部指向企业管理页面

然后在左菜单组件写 计算属性并赋值给 default-active属性

这样就大功告成了~

有人该有疑问了,为什么写在计算属性里?

因为左菜单作为一个组件被引入app.vue中只实例化一次,当我们切换路由的时候左菜单组件并不会被重新调用,所以我们需要计算属性实时监听,写在 watch 中也可以,但是写在计算属性中代码量比较少一行代码通俗易懂。实时的作用就是解决 url 输入也能改变高亮的问题。

感觉不错点个 赞留个关注吧。都是实战经验的干货哦~

你之前碰到这种问题是怎么样解决的呢?或者有什么更好的方法,欢迎评论,一起交流进步~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。