Vue与Buefy Tab使用疑问:Tab2用label属性为何导致Tab1标签不显示?
Buefy b-tab标签显示异常原因
这是Buefy组件处理条件隐藏标签时的逻辑差异导致的:
- 当被
v-if隐藏的b-tab使用label属性定义标签时,即使tab本身不渲染,组件内部仍会在标签栏的计算逻辑中保留这个标签的相关节点,打乱了其他显示tab的标签渲染顺序,导致Tab1的标签被覆盖或无法正常渲染。 - 换成
<template #header>插槽定义标签后,当tab被v-if隐藏时,插槽内容会完全不参与渲染,组件的标签栏计算逻辑不受干扰,Tab1的标签就能正常显示。
解决办法就是统一标签定义方式,要么所有tab都用label属性,要么都用#header插槽;如果有条件隐藏的tab,优先用#header插槽来定义标签,避免干扰其他tab的渲染。
内容的提问来源于stack exchange,提问作者theedchen
相关产品推荐
相关产品推荐

