首页 > 其他 > 详细

作用域插槽

时间:2019-07-11 19:10:03      阅读:111      评论:0      收藏:0      [点我收藏+]
子组件
<template>
  <div class="list">
    <div class="list-title">{{title}}</div>
    <ul class="list-content">
      <li v-for="(item ,index) in content" :key="index">
        <!--这里将content中的每一项数据绑定到slot的item变量上,在父组件中可以获取到item变量-->
        <slot :item="item">{{item}}</slot>
      </li>
    </ul>
  </div>
</template>
 

父组件  

<template>
  <div>
    <MyList title="标题1" :content="listData1"></MyList>
    <MyList title="标题2" :content="listData2">
      <template slot-scope="scope">   // 为了修改原有子组件的代码,相当于重新写子组件,用slot-scope 可以使父组件获取到数据后修改
        <img :src="scope.item.img" width="20">
        <span>{{scope.item.text}}</span>
      </template>
    </MyList>
    <MyList title="标题3" :content="listData3">
      <template slot-scope="scope">
        <b>{{scope.item.prefix ? ‘有前缀‘ : ‘无前缀‘}}</b>
        <span>{{scope.item.text}}</span>
        <span>{{scope.item.remark}}</span>
      </template>
    </MyList>
  </div>
</template>

<script>
  import myList from ‘./List.vue‘;

  export default {
    name: ‘HelloWorld‘,
    components: {
      ‘MyList‘: myList
    },
    data() {
      return {
        listData1: [
          ‘列表项1‘,
          ‘列表项2‘,
          ‘列表项3‘
        ],
        listData2: [
          {text: ‘第二个列表的列表项1‘, img: ‘example.png‘},
          {text: ‘第二个列表的列表项2‘, img: ‘example.png‘},
          {text: ‘第二个列表的列表项3‘, img: ‘example.png‘}
        ],
        listData3: [
          {text: ‘第三个列表的列表项1‘, prefix: true, remark: ‘附加的备注1‘},
          {text: ‘第三个列表的列表项2‘, prefix: false, remark: ‘附加的备注2‘},
          {text: ‘第三个列表的列表项3‘, prefix: true, remark: ‘附加的备注3‘}
        ],
      }
    }
  }
</script>

  

作用域插槽

原文:https://www.cnblogs.com/renzm0318/p/11171693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!