• vue解惑之slot(插槽)


    一.插槽是个什么玩意,能吃吗

    • 在vue中【插槽】,从字面意思来看,插槽意味着【内容的增加】,回到vue的使用场景,插槽就是【父组件调用子组件时,额外增加的内容】。
    • 插槽显不显示、显示的内容是由父组件来控制的,而插槽在哪里显示由子组件来决定

    二.插槽怎么用,好用吗

        1.默认插槽

           父组件

    1 <template>
    2   <div>
    3     父组件的内容
    4     <slot1>
    5       <p style="color:red">父组件中插槽内容</p>
    6     </slot1>
    7   </div>
    8 </template>

        子组件

    <template>
      <div>
        <div>slot1子组件</div>
        <slot></slot>
      </div>
    </template>
    <script>

        效果

           从上面可以看出,父组件引用子组件标签里的内容被加在了子组件<slot>标签中。slot就是一个插槽,当父组件调用子组件时,父组件的内容被插入到子组件相应的位置中了

       2.具名插槽

           顾名思义,就是有具体名字的插槽,子组件中与父组件相对应名字的内容将添加。

        3.作用域插槽

      父组件

    <template>
      <div>
        作用域插槽父组件
        <slot2>
          <template slot-scope="user">
            <div v-for="(item, index) in user.data" :key="index">
              <span>姓名:{{item.name}}</span>;
              <span>年龄:{{item.age}}</span>
            </div>
          </template>
        </slot2>
      </div>
    </template>
    <script>
    import slot2 from "./slot2"
    export default {
      name: 'main',
      components: {
        slot2
      }
    }
    </script>
    <style scoped>
    </style>

      子组件

    <template>
      <div>
        作用域插槽的子组件
        <slot :data="user"></slot>
      </div>
    </template>
    
    <script>
    export default {
      name: 'slot2',
      data () {
        return {
          user: [
            {name: '王五', age: '23'},
            {name: '李二', age: '45'},
            {name: '张三', age: '15'}
          ]
        }
      }
    }
    </script>

      效果

      父组件使用slot-scope接收来自子组件传过来的参数。

      使用场景:如果子组件中的某一部分的数据,每个父组件都会有自己的一套对该数据的不同的呈现方式,这时就需要用到作用域插槽

  • 相关阅读:
    iptables允许FTP
    FTP服务添加用户及设置权限
    Python之异步IO&RabbitMQ&Redis
    Python之生产者&、消费者模型
    如何使用Git上传项目代码到github
    11-3 基于cookie和session的登录模块
    11-1 会话控制cookie
    11-2 会话控制session
    10-4 文件的下载
    10-3 文件的上传
  • 原文地址:https://www.cnblogs.com/robinw666/p/12022436.html
Copyright © 2020-2023  润新知