iview 更新左侧菜单

博客介绍基于iview-admin框架实现左侧菜单内容切换的原理。该框架中左侧菜单路由列表由加载生成,menuListActive是可随时更新的list集合,可通过特定事件更新其内容,进而实现左侧菜单内容的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于iview-admin框架

原理:原理比较简单,左侧菜单的路由列表是有

<side-menu accordion ref="sideMenu" :active-name="$route.name" :collapsed="collapsed" @on-select="turnToPage" :menu-list="menuListActive">

加载,menuListActive是可以随时更新的list集合,所以我们可以通过某个事件更新menuListActive的内容来更新左侧菜单

### 如何自定义和美化 iView 菜单树样式 #### 使用 CSS 自定义菜单树外观 为了实现更美观的菜单树效果,可以通过覆盖默认样式来调整 `iView` 的菜单组件。这通常涉及到编写特定的选择器以修改颜色、字体大小和其他视觉属性。 ```css /* 修改菜单项背景色 */ .ivu-menu-item { background-color: #f8f8f9 !important; } /* 改变选中状态下的样式 */ .ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu){ color: white; background-color: #00a1d6!important; /* 更改为你想要的颜色 */ } ``` 通过上述方式可以改变整个菜单条目的基础显示风格[^1]。 #### 利用 slot 插槽增强功能 除了简单的样式更改之外,还可以利用 `slot` 来增加额外的功能或装饰性的图标到每一个节点上: ```html <Menu> <MenuItem name="parent"> Parent Menu Item <!-- 添加图标 --> <Icon type="ios-folder-outline" slot="title"></Icon> <MenuGroup title="Child Group Title"> <MenuItem name="child1"> Child One <Icon type="md-document" slot="icon"></Icon> </MenuItem> <MenuItem name="child2"> Child Two <Icon type="md-create" slot="icon"></Icon> </MenuItem> </MenuGroup> </MenuItem> </Menu> ``` 这段代码展示了如何向每个子项添加不同的图标,并且给父级元素设置了文件夹样式的图标作为指示符。 #### 动态设置类名优化交互体验 对于更加复杂的场景,比如当鼠标悬停时高亮当前行或者展开/折叠某些部分,则可能需要动态绑定 class 属性来进行控制: ```javascript // 假设这是 Vue 组件中的方法之一 handleMouseEnter(item, index) { this.$set(this.menuItems[index], 'hovered', true); }, handleMouseLeave(item, index) { this.$set(this.menuItems[index], 'hovered', false); } ``` 配合相应的模板结构以及 CSS 类定义即可完成这些高级定制化需求: ```html <template v-for="(item,index) in menuItems"> <MenuItem :name="index" @mouseenter.native="handleMouseEnter(item, index)" @mouseleave.native="handleMouseLeave(item, index)"> {{ item.title }} <span v-if="item.hovered" style="color:red;">(Hovering)</span> </MenuItem> </template> <style scoped> /* 当前悬浮状态下文字变为红色 */ .MenuItem:hover span { display:inline-block; } </style> ``` 以上就是一些基本技巧用于提升 `iView` 中菜单树控件的表现力与用户体验。当然实际应用里还需要考虑更多细节因素,例如浏览器兼容性和性能影响等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值