" />

飞道的博客

使用element-ui + vue 时,dialog中嵌入tabs,再次关闭dialog会导致浏览器卡死的解决方案

865人阅读  评论(0)

element-ui 在dialog中嵌套tabs时,再次关闭dialog会导致页面卡死,经过网上查找解决方案,发现是element-ui 和 vue 之间的版本问题

官方tabs例子是这样


  
  1. <el-tabs v-model="activeName" @tab-click="handleClick">
  2. <el-tab-pane label="用户管理" name="first">用户管理 </el-tab-pane>
  3. <el-tab-pane label="配置管理" name="second">配置管理 </el-tab-pane>
  4. <el-tab-pane label="角色管理" name="third">角色管理 </el-tab-pane>
  5. <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿 </el-tab-pane>
  6. </el-tabs>

在dialog中嵌套tabs会导致浏览器卡死


  
  1. <el-dialog
  2. title= "提示"
  3. :visible.sync= "dialogVisible"
  4. width= "30%">
  5. <el-tabs v-model="activeName" @tab-click="handleClick">
  6. <el-tab-pane label="用户管理" name="first">用户管理 </el-tab-pane>
  7. <el-tab-pane label="配置管理" name="second">配置管理 </el-tab-pane>
  8. <el-tab-pane label="角色管理" name="third">角色管理 </el-tab-pane>
  9. <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿 </el-tab-pane>
  10. </el-tabs>
  11. </el-dialog>

如果el-tab-pane中没有内容就会正常,不会导致浏览器卡死


  
  1. <el-dialog
  2. title= "提示"
  3. :visible.sync= "dialogVisible"
  4. width= "30%">
  5. <el-tabs v-model="activeName" @tab-click="handleClick">
  6. <el-tab-pane label="用户管理" name="first"> </el-tab-pane>
  7. <el-tab-pane label="配置管理" name="second"> </el-tab-pane>
  8. <el-tab-pane label="角色管理" name="third"> </el-tab-pane>
  9. <el-tab-pane label="定时任务补偿" name="fourth"> </el-tab-pane>
  10. </el-tabs>
  11. </el-dialog>

 

此bug需要element-ui官方进行修复,因此暂时使用此种方案临时解决这个问题


  
  1. <el-dialog
  2. title= "提示"
  3. :visible.sync= "dialogVisible"
  4. width= "30%">
  5. <el-row>
  6. <el-col :span="24">
  7. <el-tabs v-model="activeName" @tab-click="handleClick">
  8. <el-tab-pane label="用户管理" name="first"> </el-tab-pane>
  9. <el-tab-pane label="配置管理" name="second"> </el-tab-pane>
  10. <el-tab-pane label="角色管理" name="third"> </el-tab-pane>
  11. <el-tab-pane label="定时任务补偿" name="fourth"> </el-tab-pane>
  12. </el-tabs>
  13. </el-col>
  14. </el-row>
  15. <el-row v-if="activeName === 'first'">
  16. 用户管理
  17. </el-row>
  18. <el-row v-if="activeName === 'second'">
  19. 配置管理
  20. </el-row>
  21. <el-row v-if="activeName === 'third'">
  22. 角色管理
  23. </el-row>
  24. <el-row v-if="activeName === 'fourth'">
  25. 定时任务补偿
  26. </el-row>
  27. </el-dialog>

 

此方案可以暂时解决dialog中嵌入tabs,再次关闭dialog会导致浏览器卡死的bug

如果有什么问题,欢迎大家留言~!


转载:https://blog.csdn.net/weixin_38469425/article/details/115736933
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场