Razões e soluções para v-for e v-if não devem ser usados juntos

Motivo do erro:
quando v-if e v-for são usados ​​juntos, v-for tem uma prioridade mais alta do que v-if, o que significa que v-if será executado repetidamente em cada loop v-for.

Portanto, não é recomendado usar v-if e v-for ao mesmo tempo

Método recomendado:

<ul v-if="shouldShowUsers">
<li
v-for="user in users"
:key="user.id"
>
{
   
   { user.name }}
</li>
</ul>

Coloque-o no elemento externo ou envolva-o com a tag template (template é uma nova tag de html5, sem significado especial)

<template v-for="Oitem in Object.keys(cItem)">
          <el-input 
              type="textarea"
              :autosize="{ minRows: 2, maxRows: 8}"
              :key="Oitem"
              v-if="Oitem !== 'title'"
              v-model="cItem[Oitem]">
           </el-input>
</template>

Nota: o valor da chave está no elemento encapsulado

Quando eles estão no mesmo nó, v-for tem uma prioridade mais alta do que v-if, o que significa que v-if será executado repetidamente em cada loop v-for. Este mecanismo de prioridade é muito útil quando você deseja renderizar nós para apenas alguns itens, da seguinte maneira:

<li v-for="todo in todos" v-if="!todo.isComplete">
{
   
   { todo }}
</li>

O código acima passa apenas tarefas não concluídas.
E se seu objetivo é pular condicionalmente a execução do loop, use os dois primeiros métodos.

Acho que você gosta

Origin blog.csdn.net/weixin_49549509/article/details/109764891
Recomendado
Clasificación