有时在使用 vs code 编辑器里是 eslint 插件时一直会有一个报错:大致的意思就是不建议 v-if 和 v-for 一起使用
根据 eslint 指出的方法进行改进:
第一种:将 v-if 和 v-for 分别放在不同标签中
<ul v-if="active">
<li v-for="item in list" :key="item.id">
{{ item.title }}
</li>
</ul>
第二种:如果 v-if 和 v-for 只能放在同一级标签中,使用计算属性进行改造:
<ul>
<li
v-for="user in users"
v-if="user.isActive"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
将会经过如下运算:
this.users.map(function (user) {
if (user.isActive) {
return user.name
}
})
这是因为当它们处于同一节点, v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中。
通过将其更换为在如下的一个计算属性上遍历:
computed: {
activeUsers: function () {
return this.users.filter(function (user) {
return user.isActive
})
}
}
<ul>
<li
v-for="user in activeUsers"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
经过测试,以上两种方法都可以解决 eslint 的报错。
原文链接:https://blog.csdn.net/LonewoIf/article/details/86686918
原文链接:https://www.cnblogs.com/gitByLegend/p/10837777.html