Closed KokoTa closed 6 years ago
Translation of this issue:
2.0.9
Chrome
2.5.2
Https://segmentfault.com/q/1010000012489915
Solving the problem of scintillation
The first rendering will be flashing
Use v-cloak
.
@Leopoldthecoder 这个v-cloak加了并没有生效啊
@Leopoldthecoder 这里有具体例子,麻烦能给出确切的解决方案,谢谢 https://jsfiddle.net/athena0304/ztey5L41/1/
@athena0304 我有一个变通方法,不过只试用于列数相差不大的表格,即渲染列的数量为所有表格中列数最大的那个数,再根据数据变化替换列中的数据或添加删减列。鬼畜是因为切换瞬间没有数据,列加载不出来,但是如果是替换数据,那么列已经是加载出来的了,那么就不会鬼畜,或者说不会那么明显。
v-cloak
好像确实不行,不过 v-if
可以:https://jsfiddle.net/ztey5L41/2/
@Leopoldthecoder 嗯嗯,v-if
可以,感谢感谢,可是这样还是有点‘麻烦’,每次还要写多余的逻辑。。这个问题的原理是什么呢,怎样能从根本上避免呢,是因为用js动态算的表格宽度,动态渲染引起的么
非激活标签下的 Table 的父元素由不可见变为可见时宽度发生变化。Tabs 如果是懒渲染的话就可以从根本上解决这个问题,不过这个就是 breaking change 了。
Element UI version
2.0.9
OS/Browsers version
Chrome
Vue version
2.5.2
Steps to reproduce
https://segmentfault.com/q/1010000012489915
What is Expected?
解决闪烁问题
What is actually happening?
初次渲染会有闪现情况