Vue中插槽的使用
Vue中插槽
1、默认插槽
<template>
  <div>
    <h1>我是插槽的第一种方式,默认插槽</h1>
    <slot>如果未输入,我就是默认的值</slot>
  </div>
</template>
<script>
export default {
 name: "SlotUse"
}
</script>
2 、具名插槽
<!--组件定义-->
<template>
  <div>
    <h1>我是插槽的第二种方式,具名插槽</h1>
    <slot name='test'>如果未输入,我就是默认的值</slot>
  </div>
</template>
<script>
export default {
 name: "SlotUse"
}
</script>
<template>
  <div>
    <h1>总的app组件</h1>
    <SlotUse>
      <div slot='test'>我使用了具名插槽</div>
    </SlotUse>
  </div>
</template>
<script>
import SlotUse from "@/components/SlotUse";
export default {
  name: "App",
  components: {SlotUse},
  data(){
    return {
      list:["张三","李四","王五"]
    }
  },
  methods: {
    test(value) {
      console.log(value)
    }
  }
}
</script>
3 、作用域插槽
当我的父组件给子组件插入东西时,想使用子组件的值时,就得使用作用域插槽
<!--这是父组件-->
<template>
  <div>
    <h1>总的app组件</h1>
    <SlotUse :soltList="list" >
      <template slot-scope="socpe">
        <ul>
          <li v-for="(p,index) in socpe.mylist">
            {{p}}
          </li>
        </ul>
      </template>
    </SlotUse>
  </div>
</template>
<script>
import SlotUse from "@/components/SlotUse";
export default {
  name: "App",
  components: {SlotUse},
  data(){
    return {
      list:["张三","李四","王五"]
    }
  }
}
</script>
<!--这是子组件-->
<template>
  <div>
    <h1>我是插槽的第三种方式,作用域插槽</h1>
    <slot :mylist="soltList">如果未输入,我就是默认的值</slot>
  </div>
</template>
<script>
export default {
 name: "SlotUse",
 props:['soltList']
}
</script>
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号