vue封装组件使用插槽

插槽应用场景

  • 当封装一个组件后, 内部有一些地方待定功能暴露给外界来写。 就好比于el-table中的单个表格内部可能是下拉框,或者是一些文本输入。 需要用template来嵌套使用

子组件

<template>
  <div>
      <div v-for="item in arrData" :key="item.id">
          <slot name="todo" :row="item"></slot>
      </div>
  </div>
</template>

<script>
export default {
  props:{
      arrData:{
          type : Array
      }
  }
}
</script>

父组件

<template>
  <div>
      <Test :arrData="arrData">
        <template v-slot:todo="{row}">
          <span>{{row.className}}</span>
        </template>
      </Test>
  </div>
</template>

<script>
import Test from "./children/test.vue"
export default {
  data() {
    return {
        arrData:[
          {id:1, className:"11111"},
          {id:2, className:"22222"},
          {id:3, className:"33333"},
          {id:4, className:"44444"},
          {id:5, className:"55555"},
          {id:6, className:"66666"},
        ]
    }
  },
  
  components: {
    Test
  }
}
</script>

你可能感兴趣的:(vue,vue.js,javascript,前端)