element -UI升级,使用el-tabs导致浏览器卡死问题

本文分享了ElementUI组件库升级过程中的经验教训。由于版本不兼容问题,作者将ElementUI升级到了2.10.1,并将Vue升级到了2.6.10,解决了el-tabs导致的页面卡死问题。

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

elementUI升级踩坑

项目维护开发时要用到elementUI的某些组件,发现当前项目element-ui版本过低,无法使用,打算升级一下,
所以用npm update element-ui 升级到最新,结果项目运行时发现有些用到el-tabs的页面直接卡死

查了下 vue版本在2.5.10之下你的elementui版本就不可高于2.7,但如果低于2.10.1的话有些组件用不了那升级就没意义了,所以我又把elementUI版本退到2.10.1,把Vue版本从2.5升级到2.6
版本回退只能卸载再安装指定版本
npm uninstall element-ui
npm install element-ui@2.10.1

升级vue只需要升级vue版本与vue-template-compiler的版本,将版本升级到2.6.10即可。vue升级我是直接改动package.json文件
“vue”: “2.6.10”,
“vue-template-compiler”: “2.6.10”,
在这里插入图片描述
然后删掉package-lock.json文件重新npm install 安装就行了

最后以下版本发现项目在浏览器正常运行,elementUI相关组件也可以使用到,el-tabs不会卡死
elementUI:2.10.1
vue:2.6.10

Vue-element-ui使用el-tabs组件时,有时会遇到el-tab-pane未能实现100%自适应高度,导致内部放置的div内容被遮挡的问题。要解决这个问题,可以尝试以下几种方法: 1. 使用CSS Flex布局: 在el-tabs容器上设置display: flex,并在el-tab-pane上设置flex: 1。 ```vue <template> <el-tabs class="full-height-tabs"> <el-tab-pane> <!-- 你的内容 --> </el-tab-pane> <!-- 其他tab-pane --> </el-tabs> </template> <style> .full-height-tabs { display: flex; flex-direction: column; height: 100%; } .full-height-tabs .el-tab-pane { flex: 1; overflow: auto; } </style> ``` 2. 使用v-if控制tab的显示: 通过v-if指令来确保只有在激活的tab才渲染内容。 ```vue <el-tabs v-model="activeTab"> <el-tab-pane name="tab1" v-if="activeTab === 'tab1'"> <!-- tab1的内容 --> </el-tab-pane> <el-tab-pane name="tab2" v-if="activeTab === 'tab2'"> <!-- tab2的内容 --> </el-tab-pane> <!-- 其他tab-pane --> </el-tabs> ``` 3. 使用计算属性动态设置高度: 在计算属性中计算容器高度,并将其应用到el-tabs组件上。 ```vue <template> <el-tabs :style="{ height: tabHeight + 'px' }"> <el-tab-pane> <!-- 你的内容 --> </el-tab-pane> <!-- 其他tab-pane --> </el-tabs> </template> <script> export default { data() { return { tabHeight: 0 } }, mounted() { this.updateTabHeight(); window.addEventListener('resize', this.updateTabHeight); }, beforeDestroy() { window.removeEventListener('resize', this.updateTabHeight); }, methods: { updateTabHeight() { this.tabHeight = window.innerHeight - /* 其他元素高度 */; } } } </script> ``` 4. 使用CSS Calc函数: 直接在CSS中使用calc函数计算高度。 ```css .el-tabs { height: calc(100vh - /* 其他元素高度 */); } .el-tabs .el-tab-pane { height: 100%; overflow: auto; } ``` 这些方法中,第一种使用Flex布局的方法通常是最简单和最有效的。它可以确保el-tab-pane始终占据el-tabs的剩余空间,同时允许内部内容在需要时滚动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值