v-for和v-if不要一起使用的原因

v-for的优先级比v-if高

所以当:

  • {{user.id}}

时,代码的执行顺序会是

this.users.map(function(user)){

if(user.isActive){

return user.id

}

}

因此哪怕我们只渲染出一小部分用户的元素,也得在每次重渲染的时候遍历整个列表,不论活跃用户是否发生了变化。会影响性能

所以,我们可以把把上面的改为计算属性:

computed:{

activeClass:function(){

this.users.filter(function(user)){

return user.isActive

}

}

}

  • {{user.id}}

你可能感兴趣的:(vue基础)