【vue3+elementplus】解决切换el-menu-item,el-menu组件会抖动的问题

文章讨论了在Vue应用中,使用el-menu子组件时,如何避免因路由切换导致的页面抖动。作者发现问题在于app.vue中的router-view全局刷新,解决方案是在内容区的router-view上添加key属性,仅更新需要的部分。
摘要由CSDN通过智能技术生成

el-menu作为子组件,当执行router.push后,el-menu的生命周期确实会重新加载,但是浏览器页面中的menu部分不应该让用户感知到抖动刷新

原因: 为了切换路由时页面要刷新,在router-view上加了key,但是app.vue中的router-view是根页面,实际只需要内容区刷新即可

// app.vue
<router-view :key="route.path" />

解决:在内容区的router-view上加key,而不是app.vue

// index.vue
<div class="root">
	<header />
  	<div class="app-wrapper">
   		<Sidebar class="sidebar-container" />
    	<div class="main-container">
      		<Breadcrumb />
      		<router-view :key="route.path"></router-view>
    	</div>
   	</div>
</div>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-menu-item跳转是通过在el-menu-item标签中设置index属性来实现的。当点击该el-menu-item时,触发路由跳转到对应的页面。例如,可以在el-menu标签中添加router属性来启用路由功能,并在每个el-menu-item标签内设置index属性来指定跳转的路径。然后,在路由配置中添加对应的路径映射,使得点击el-menu-item时能够正确跳转到目标页面。具体代码如下所示: ``` <el-menu :router="true"> <el-menu-item index="/home">首页</el-menu-item> <el-menu-item index="/about">关于</el-menu-item> <el-menu-item index="/contact">联系我们</el-menu-item> </el-menu> ``` 在这个例子中,当点击首页(el-menu-item)时,触发路由跳转到"/home"路径对应的页面。同理,点击其他el-menu-item跳转到相应的路径。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [el-menu实现路由跳转及当前页的导航](https://blog.csdn.net/weixin_55560445/article/details/114419957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue使用elementui导航栏实现页面间跳转(路由跳转)](https://blog.csdn.net/big_pig_sir/article/details/125797455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值