![]() |
1
acoo 31 天前
KeepAlive
|
3
sundev 31 天前
KeepAlive 的组件必须要有 Name ,是不是这个问题?
|
5
zhhbstudio 31 天前
<zujian1 v-show="id==1">
<zujian2 v-show="id==2"> <zujian3 v-show="id==3"> |
![]() |
6
magicflower 31 天前 via Android
keepalive + v-show ?
|
7
sunorg OP |
![]() |
8
lisongeee 31 天前
store 状态提升到全局/组件外部,组件只保留纯渲染函数
|
![]() |
9
jardel 31 天前
组件开发需要”变量提升“ store 或者父级组件里
|
![]() |
10
lanced 31 天前
|
![]() |
11
really28 31 天前
<KeepAlive :include="cacheKeys">
<component :is="item.ref" :key="item.uid" // 使用全局唯一的 ID v-show="item.visible" /> </KeepAlive> 关键点是 key 参数,确保每一个是唯一的 |
12
zhhbstudio 31 天前
v-show 不会丢啊,v-show 值为 false 时就是 style="display:none;"
|
![]() |
13
wangtian2020 31 天前
大不了不分组件了写在一个文件里不行吗
|
14
arnotong 31 天前
可以试试这样:
<div v-for> <KeepAlive> <component :is=ref /> </KeepAlive> </div> |
15
sunorg OP @zhhbstudio
@wangtian2020 @arnotong 验证过了,基于 data 这个结构来动态渲染组件,因为 component 在节点树上来回变化,会导致 dom 重新渲染,即使使用可 keepalive ,加 nanme 加 key 或者组合 v-show ,都会导致全新渲染。 最终使用了 css 的 grid 类来中间实现,多了很多计算高度偏移的工作,但大体解决了问题, |