需求是将父级接收到的插槽重命名后,再传递给子级
比如子级有一个extra插槽,父级就把自己的childExtra插槽传递给子级(为什么父级插槽要命名为childExtra?因为可能存在子级不同但子级需要的插槽的名称相同的情况)
但是现在发现,只要父级发生render,那么子级必然render(实际上不需要render)
如何解决?
应用场景:我现在已经有了ChildA、ChildB两个子组件(代码不能改),这俩都接收一个extra插槽,然后我想用Parent组件去包住这两个子组件:
<template>
<div>
<child-a/>
<child-b/>
</div>
</template>
并且把Parent接收到的extraA插槽传递给ChildA、把extraB插槽传递给ChildB
重现步骤:打开console,点击按钮,控制台打印:
'parent render'
'child render'
期望中的控制台打印:
'parent render'
// Any static slot children from the parent may have changed during parent's
// update. Dynamic scoped slots may also have changed. In such cases, a forced
// update is necessary to ensure correctness.
以上注释来自Vue源码
