Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

在定义一个组件时,为了提高组件的可复用性,有些地方我们不希望它是固定的,而是希望后面用到这个组件时再决定这个地方具体的内容,这时就可以使用slot(插槽)来占个位,在使用组件时再用需要的标签来替换这个slot

1.普通插槽

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

1.1使用组件时没有替换插槽的内容

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

结果:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

1.2有其他标签来替换插槽内容

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

 结果:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

2.具名插槽的使用,上面的情况只要在使用组件时在组件标签里插入标签该标签就会替换组件里的slot标签,当我们需要使用的插槽不止一个时,为了区分它们可以使用具名插槽:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

使用:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

结果:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

3.综合使用:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

结果:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

结果:

Vue插槽slot的使用,插槽的替换规则与具名插槽的使用

结论:

1.当一个组件直接被引入展示时,这个组件的slot标签会按照在组件里面的布局展示出来

2.当组件含有普通的slot标签时(即没有给slot标签添加name属性),此时在使用这个组件时如果在组件里添加了不含slot属性的标签,则这些标签会替换掉普通的slot标签

3.当组件里含有具名的slot标签时,在使用这个组件时只有加入含有slot属性值等于对应slot标签name值的标签时,这个标签才能替换对应的slot