vue中我们遍历一个列表for循环是作用在dom节点上的,

我们在遍历列表的时候可能需要进行判断哪些显示哪些隐藏

1、错误代码如下,这样写的话,我们编辑器也会告诉你不能这样写

<ul>
    <li 
        v-for="user in users" 
        v-if="user.isActive" 
        :key="user.value"
         >
        {{user.label}}
    </li>
</ul>    

2、分析原因:当 Vue 处理指令时, v-if 比 v-for 具有更高的优先级,v-if无法访问v-for里面变量

 

3、代码修正

(1)使用空标签 template,让for循环在template上面;

<ul>
    <template v-for="user in users" >
        <li v-if="user.isActive" :key="user.value">
            {{user.label}}
        </li>
    </template>
</ul>

(2)使用compted先计算完属性再去渲染模版

computed: {
    activeUsers: function () {
        return this.users.filter( (user)=> {
            return user.isActive;
        })
    }
}

 

相关文章:

  • 2022-02-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-21
相关资源
相似解决方案