uniapp 插槽slot

  1. 默认插槽

<template>
    <view class="view ">
        <view v-if="title" class="solid-bottom title">
            <text class="cuIcon-titles text-green"></text>
            <text>{{title}}</text>
        </view> 
        <!-- 默认插槽 -->   
        <slot></slot>
    </view>
</template>

<script>
    export default {
        name:"cart",
        props:{
            title:{
                type: String,
                default: ''
            },
        },
    }
</script>

<style scoped>
    .view{
        background-color: white;
        margin: 20upx; 
        padding: 20upx;
    }
    .view_margin_bottom{
        margin-bottom: 10upx;
    }
    .title{
        margin-bottom: 10upx;
        padding-bottom: 10upx;
    }
</style>

引入组件cart

<template>
    <view>
        <cart title="标题">
            <!-- 默认插槽 -->
            <ul>
                <li>a</li>
                <li>b</li>
                <li>c</li>
            </ul>
        <!-- <template v-slot:text>
                <ol>
                    <li>a</li>
                    <li>b</li>
                    <li>c</li>
                </ol>
            </template> -->
        </cart>
    </view>
</template>
<script>
    import cart from '@/components/cart/card.vue'  
    export default {
        components: {
            cart
        },
    }
</script>
  1. 具名插槽(方便使用多个插槽)

在插槽加上name<slot name="xxx"></slot>,引用组件时使用某个插槽加上slot="xxx"或用<template>包裹v-slot:text,

例如:<view slot="xxx"></view> 或 <template v-slot:text><template/>

<template>
    <view class="view ">
        <view v-if="title" class="solid-bottom title">
            <text class="cuIcon-titles text-green"></text>
            <text>{{title}}</text>
        </view> 
       <!-- 具名插槽 -->
        <view style="color: red;">
            <slot name="text" ></slot>
        </view>
    </view>
</template>

引用组件

<template>
    <view >
       <cart title="标题">
            <!-- 默认插槽 -->
            <ol slot="text">
                <li>a</li>
                <li>b</li>
                <li>c</li>
            </ol>
       <!-- <template v-slot:text>
                <ol>
                    <li>a</li>
                    <li>b</li>
                    <li>c</li>
                </ol>
            </template> -->
        </cart>
    </view>
</template>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值