vue3商品列表组件封装

核心思想:把要显示的数据对象设计为props参数,传入什么数据对象就显示什么数据对象。

效果:组件封装后就可以实现多个页面的复用。

一、原本在页面中渲染的方式

<ul class="goods-list">
    <li v-for="goods in cate.goods" :key="goods.id">
        <RouterLink to="/" class="goods-item">
            <img v-img-lazy="goods.picture" alt="">
            <p class="name ellipsis">{{ goods.name }}</p>
            <p class="desc ellipsis">{{ goods.desc }}</p>
            <p class="price">{{ goods.price }}</p>
        </RouterLink>
    </li>
</ul>

二、封装成组件

<script setup>
defineProps({
    goods: {
        type: Object,
        default: () => {}
    }
})
</script>

<template>
    <RouterLink to="/" class="goods-item">
        <img v-img-lazy="goods.picture" alt="">
        <p class="name ellipsis">{{ goods.name }}</p>
        <p class="desc ellipsis">{{ goods.desc }}</p>
        <p class="price">{{ goods.price }}</p>
    </RouterLink>
</template>

<style lang="scss">

</style>

三、以组件的方式渲染

<ul class="goods-list">
    <li v-for="goods in cate.goods" :key="goods.id">
        <!-- 这个是引入组件时的组件名称 -->
        <GoodsItem :goods="goods">
    </li>
</ul>

四、封装的组件效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值