vue经验帖——通用的部分考虑做成组件还是通用css样式

当前项目设计图的好几个列表有类似的列表项,之前浏览项目的时候出于组件化的想法下意识地就把他作为一个列表项组件来做了,各个列表中显示的不同内容再用条件判断。随着项目进行发现为了实现不同显示在列表项中需要用到大量的条件判断,组件代码量比想象的大很多、可读性变差等问题也出现了。

后期看项目看设计了解需求时对这种通用的部分,若是其中的差别较多、或者内容不一致时,除组件化外还考虑做成通用的css样式,如设置列表项的背景颜色、间距,列表项中行距、占用位置和定位等,然后将列表项内容写在对应列表所在文件内v-for。

如:

    组件化:

<-- 列表所在文件1 -->
<list-item v-for="(item,index) in list" :data="item">

<-- 列表所在文件2 -->
<list-item v-for="(item,index) in list" :data="item">

<-- 列表所在文件3 -->
<list-item v-for="(item,index) in list" :data="item">

<-- 列表项组件 -->
<template>
    <p v-if="data.ifTrue">abc<p>
    <div v-if="data.ifTrue2">abcd</div>
    <img v-if="data.ifTrue3" src="data.src" />
    ...

</template>

<script>
export default {
    method:{
        function(){
            if(){
                this.data = {}
            }
            else if(){

            }
            ...   

        }
    }
}

    当列表项组件中需要做很多条件判断的时候,这个组件就会变得很臃肿(T_T)

    通用css:

<-- 列表所在文件1 -->
<div class="list-item" v-for="(item,index) in list1" :key="index">
    <p>abc</p>
</div>

<-- 列表所在文件2 -->
<div class="list-item" v-for="(item,index) in list2" :key="index">
    <div>abcd</div>
</div>

<-- 列表所在文件3 -->
<div class="list-item" v-for="(item,index) in list3" :key="index">
    <img src="src">
</div>

    另一种方案

(悔恨的泪)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值