目录前言 1、 props / $emit 2、ref / $refs 3、eventBus事件总线($emit / $on) 4、依赖注入(provide / inject) 5、$parent /
顺晟科技
2022-09-03 12:49:16
122
看了一天源码还是没找到解决方案,有没有路过的大佬赏脸看一下,给菜B亿点点的解答,源码实在看吐了
顺晟科技:
问题keep-alive组件的vnode接收的children为什么是数组,而我抽出来的keep-alive接收的却是对象,我抽出的keep-alive在正常情况下是能用的,但是在transtion组件内是就报错了,他的vnode的children居然是null,太奇怪了
至于 “vnode的children居然是null”,答案也在这段源码里
因为内置的 keep-alive 和 transition 有一些 py 交易,显然没带你玩
在 transition 里有特意判断 KeepAlive 时保留占位,以避免像其他组件一样被销掉
感谢回答,今天我又看了一天逻辑,发现他内部的生成vnode中的处理方式是内部先把keep-alive的vnode给加载出来,这样编译出来的vnode里,keep-alive是有vnode了,也有他包裹的子元素,但我抽出来的keep-alive他是当做一个组件处理,每次加载到这里,他还需要调用一次slot.default()来生成vnode才能获取子元素。 造成的结果就是transtion取不到keep-alive包裹的子元素,哎,不改源码没法用
萌新路过
现在感觉还是vue2友好点,起码源码没这么复杂
09
2022-11
30
2022-09
23
2022-09
23
2022-09
23
2022-09
23
2022-09