在slot标签上添加slot属性的一些疑问,以及插槽的替换顺序是怎样的?
题目描述
在孙组件GrandSon里有一个slot标签:<slot name="my-slot">默认内容</slot>;将他引入子组件Son后,Son里这样写:
<GrandSon> <slot name="my-slot" slot="my-slot"></slot>
</GrandSon>;
(我知道这是已废弃的语法)按照vue官网对插槽的解释来说, 这个空的slot标签:
<slot name="my-slot" slot="my-slot"></slot>,
不是应该会把GrandSon里的slot标签替换掉吗,但是运行之后发现,并没有替换掉,我试了之后发现如果Son里面的slot不是空标签的话是可以替换掉的,这是为什么,这跟vue官网的解释好像不太一样?
还有如果再定义一个Son组件的父组件叫App组件,把Son引入App后,App里这样写:
<Son> <div slot="my-slot"></div>
</Son>;
运行后发现,这里的div标签最终会把GrandSon里的slot替换掉;按我自己的想法是,div先把Son组件里的空slot替换掉,然后继续把GrandSon里的slot替换掉;难道插槽的替换顺序是由外向内的吗?
题目来源及自己的思路
相关代码
https://codesandbox.io/s/nostalgic-water-gjv2kl?file=/src/com...
你期待的结果是什么?实际看到的错误信息又是什么?
希望了解这个现象的原因以及了解插槽的替换顺序
回答:
第一个问题是没有内容,由内容就会替换,第二个问题,插槽的替换顺是由外到内
以上是 在slot标签上添加slot属性的一些疑问,以及插槽的替换顺序是怎样的? 的全部内容, 来源链接: utcz.com/p/934777.html