slot插槽(又叫内容分发)

意义:

    扩展组件能力,提高组件的复用性

单个插槽   <slot></slot>

具名插槽  <slot name="a"></slot>

旧版slot:

<body>
  <div id="box">
    <!-- 当前组件或者节点 在哪个模板中,就能访问哪个模板状态 -->
    <child>
       <div slot="a">11111111111111</div>
  
       <div>44444444444444</div>
    </child>
  </div>

  <script>
   
    // 单个插槽, <slot></slot>
    // 具名插槽  <slot name="a"></slot>
    Vue.component("child",{
      template:`
        <div>
          child
          <slot name="a"></slot>
     
          <slot></slot>
        </div>
      `
    })
    new Vue({
      el:"#box"
    })
 </script>
</body>

新版slot:

v-slot只能添加在<template>上

<body>
  <div id="box">
    <!-- 当前组件或者节点 在哪个模板中,就能访问哪个模板状态 -->
    <child>
        <template v-slot:a>
            <div>1111111111</div>
        </template>

       <template #b>
        2222222222222222222
       </template>

    </child>

  </div>

  <script>
    
    Vue.component("child",{
      template:`
        <div>
          child
          <slot name="a"></slot>
      `
    })
    new Vue({
      el:"#box"
    })
  </script>
</body>

插槽版抽屉:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">

<script type="text/javascript" src="lib/vue.js"></script>
</head>
<body>
    <div id="box">
        <navbar >
          <button @click="isShow=!isShow">click</button> 
        </navbar>
        <sidebar v-show="isShow"></sidebar>  
    </div>
    <script>

        Vue.component("navbar",{
          
          template:`
            <div style="background:yellow">
              nabbar- <slot></slot>
            </div>
          `,
         
        })

        Vue.component("sidebar",{
          template:`
            <ul style="background-color: yellow;width: 200px;height: 500px;" >
              <li>首页</li>
              <li>钱包</li>
              <li>设置</li>
            </ul>
          `
        })

        new Vue({
          el:"#box",
          data:{
            isShow:false
          }
        })
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文哈哈wcx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值