在同一级别以v-for优先
永远不要把 v-if 和 v-for 同时用在同一个元素上。
一般我们在两种常见的情况下会倾向于这样做:
如果是一个列表中的项目 (如 v-for=“item list” v-if=“item.check”)。在这种情形下,请将 list 替换为一个计算属性 (比如 checkListNew),让其返回过滤后的列表,然后再进行渲染。
computed: {
checkListNew: function () {
return this.list.filter(function (user) {
return user.isCheck
})
}
}
产生属性节点不存在,报以错误
-
为什么会产生属性节点不存在,是因为数据请求过程是异步请求,而页面在渲染过程中先进行了数组对象的遍历操作,在数据请求以后数据内容是被后赋值的,所以就出现了属性节点不存在的情况
-
需要给循环部分内容添加条件判断,需判断先有循环对象以及对应的属性节点,然后再进行循环遍历,但需考虑v-if与v-for的层级
-
在同一级别以v-for优先,就意味着vif并不起作用,所以v-if与v-for需要进行拆分编写
-
添加vif条件判断
<scroll-view scroll-x="true" class="navScroll" v-if="indexData.kingKongModule"> ... </scroll-view>