Element UI的el-table-column组件不支持v-show指令

在vue中想通过v-show控制element-ui中的el-table显示隐藏某一列,但是不起作用。

解决方法:

把v-show换成v-if

原因如下:

在 Vue 中,v-show 和 v-if 都可以用来控制元素的显示和隐藏。但是它们的工作方式有所不同:

  • v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

  • v-if也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

  • 相比之下,v-show就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

    在 Element UI 的 el-table 中,el-table-column 是一个抽象组件,它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。由于这个原因,v-show 在 el-table-column 上不起作用,因为 v-show 是通过修改 CSS 的 display 属性来控制元素的显示和隐藏的,而抽象组件并没有对应的 DOM 元素。

相反,v-if 可以在 el-table-column 上起作用,因为 v-if 是通过条件渲染来控制元素的显示和隐藏的,它在满足条件时渲染元素,在不满足条件时销毁元素,这与 el-table-column 作为抽象组件的特性是相容的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值