首页 > 其他分享 >利用props封装带有参数及回调事件的组件

利用props封装带有参数及回调事件的组件

时间:2022-09-25 10:35:19浏览次数:48  
标签:right 封装 title default color titleNav props 组件 font

实现效果:

 

封装的组件:

<template>
    <view class="page-container-titleNav">
        <view class="content">
            <view class="left">
                <text>{{title}}</text>
                <text class="circle"></text>
            </view>
            <view class="right" @click="rightHandle" v-if="isShow">
                <text>{{rightTitle}}</text>
                <u-icon name="arrow-right"></u-icon>
            </view>
        </view>
    </view>
</template>

<script>
    export default {
        props: {
            title: {
                type: String,
                default: '标题'
            },
            rightTitle: {
                type: String,
                default: '更多'
            },
            isShow: {
                type: Boolean,
                default: true
            }
        },
        data() {
            return {

            }
        },
        methods: {
            rightHandle() {
                this.$emit('rightHandle')
            }
        }
    }
</script>

<style lang="scss" scoped>
    .page-container-titleNav {
        .content {
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: #f7f7f7;
            padding: 20rpx;

            .left {
                position: relative;
                font-size: 36rpx;
                font-weight: bold;
                z-index: 100;
                .circle {
                    display: block;
                    width: 35rpx;
                    height: 35rpx;
                    border-radius: 50%;
                    background-color: #aa0000;
                    position: absolute;
                    top: -10rpx;
                    right: -15rpx;
                    opacity: .7;
                }
            }

            .right {
                color: $uni-text-color-grey;
                font-size: 24rpx;
                text {
                    padding-right: 5rpx;
                }
            }
        }
    }
</style>

 

使用的方法:

<template>
    <view>
        <title-nav :title="title" @rightHandle='tapTitle'></title-nav>
    </view>
</template>
<script>
    import titleNav from '@/components/titleNav.vue'
    export default {
        components: {
            titleNav
        },
        data () {
            return {
                title: 'this is title'
            }
        },
        methods: {
            tapTitle () {
                console.log('from click')
            }
        }
    }
</script>

<style></style>

 

标签:right,封装,title,default,color,titleNav,props,组件,font
From: https://www.cnblogs.com/p201821460026/p/16727337.html

相关文章