vue slot撸一撸

vue使用过程中接触到slot,一番操作下有以下记录:

①单个:父组件引用子组件的时候,写在子组件中的内容插入到了子组件中的slot位置;

 <div id="app">  
    <children>  
        <span>slot内容</span> 
        <!-- 如果在子组件中没有slot,则不显示 -->
    </children>  
</div>  
<script>  
    var vm = new Vue({  
        el: '#app',  
        components: {  
            children: {  // 注册子组件,上方引用子组件中的span标签会替代子组件中的slot位置
                template: "<button><slot></slot>这里才是子组件真正的内容</button>"  
            }  
        }  
    });  
</script>  

②多个:放到不同的位置;

 <div id="app">  
    <children>  
        <span slot="one">slot内容1</span>
        <span slot="two">slot内容2</span>
        <!-- 父组件引用时给标签添加slot属性,子组件渲染时设置name属性,值对应引用时的slot属性值 -->
    </children>  
</div>  
<script>  
    var vm = new Vue({  
        el: '#app',  
        components: {  
            children: {  // 注册子组件,上方引用子组件中的span标签会替代子组件中的slot位置
                template: "<button><slot name="one"></slot>我的前面是第一个,后面是第二个<slot name="two"></slot></button>"  
            }  
        }  
    });  
</script> 

③子组件slot标签中有内容时,而父组件中的对应的slot也有内容时,则会被父组件中的替换;如果父组件中没有引用引用对应的slot时,则显示子组件中slot中的内容

 <div id="app">  
    <children>  
        <span slot="one">slot内容1</span>
        
        <!-- 父组件引用时给标签添加slot属性,子组件渲染时设置name属性,值对应引用时的slot属性值 -->
    </children>  
</div>  
<script>  
    var vm = new Vue({  
        el: '#app',  
        components: {  
            children: {  // 注册子组件,上方引用子组件中的span标签会替代子组件中的slot位置
                template: "<button><slot name="one">这里面有内容</slot>我的前面是第一个,后面是第二个<slot name="two">引用我的没有内容,所以我显示</slot></button>"  
            }  
        }  
    });  
</script> 

 

转载于:https://my.oschina.net/lpcysz/blog/1863940

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值