点这里查看demo
HTML
<style>
        .blue{
            color:blue;
        }
        .red{
            color:red;
        }
        .ccc{
            color:#ccc;
        }
</style>
<p id="app">
    <ul>
        <li v-for="list in lists" 
            :class="{'red':red,'blue':blue, 'ccc':ccc}">            {{list.name}}</li>
    </ul>
</p>
JS
<script>
    new Vue({
        el: '#app',
        data:function(){
            return {
                lists:[
                    {name:1111,state:1},
                    {name:2222,state:2},
                    {name:3333,state:3}]
            };
        },
        computed:{
            red:function(){
                for( var i = 0; i< this.lists.length; i++ ){
                    if( this.lists[i].state === 1 ){
                        return true;
                    }
                }
            },
            blue:function(){
                for( var i = 0; i< this.lists.length; i++ ){
                    if( this.lists[i].state === 2 ){
                        return true;
                    }
                }
            },
            ccc:function(){
                for( var i = 0; i< this.lists.length; i++ ){
                    if( this.lists[i].state === 3 ){
                        return true;
                    }
                }
            }
        }
    });
</script>
为什么三个li都是灰色的,我想要的效果是一个蓝色,一个红色,一个灰色
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
既然你的li跟着颜色走,那你就在
lists中加上颜色属性啊:class="{'red':list.state==1,'blue':list.state==2, 'ccc':list.state==3}"