鍍金池/ 問答/HTML/ VUE的slot不能有兩個相同名稱的插槽嗎?

VUE的slot不能有兩個相同名稱的插槽嗎?

我這個插槽是在for循環(huán)里面的怎么辦呢?

<span v-for="item in arr">
   <slot name="uid"></slot>
</span>
回答
編輯回答
還吻

div

v-for

這個樣子插入

2018年3月12日 05:40
編輯回答
我甘愿

大概說一下:
第一,正常使用,你寫多個相同的具名插槽,結(jié)果是可以正常渲染的的,但是vue會報警告,可能你見到了。
第二,實現(xiàn)你這種需求,更推薦使用作用于插槽,使用了作用于插槽,加上slot-scope屬性形成作用域,這個是可以有多個相同的具名插槽的。

分下一下你的需求,其實你想實現(xiàn)的是一個列表插槽渲染,推薦做法是將 數(shù)據(jù) 拋出去給調(diào)用者自己渲染,這樣的優(yōu)點是 開發(fā)者可以自己決定 用這些數(shù)據(jù) 如何渲染模板,比如使用 <li> 標(biāo)簽,還是<span>標(biāo)簽等,都是很靈活的。
下面是參考:(當(dāng)然理論上data:['a','b','c']來源于父組件的prop傳遞)

// 子組件
<div>
  子組件:
  <slot name="title" :data="['a','b','c']"></slot>
  <slot name="title" :data="['1','2','3','4']"></slot>
</div>
// 父組件
<template slot="title" slot-scope="props">
    這里是title
    <span v-for="item in props.data" :key="item">
      {{item}}
    </span>
  </template>

如果有不明白的,再討論

2018年6月27日 22:52
編輯回答
冷眸

子組件

<div v-for="item in groups">
    <slot :item="item" name="no1"></slot>
    <slot :item="item" name="no2"></slot>
</div>

父組件

<children>
    <template slot-scope="{item}" slot="no2"></template>
    <template slot-scope="{item}" slot="no1"></template>
</children>
2018年4月23日 17:08
編輯回答
懶洋洋

將slot那塊寫成一個組件,然后對組件循環(huán)

2018年2月25日 16:25