Maison > interface Web > tutoriel HTML > Explication détaillée du rendu de la liste Vue

Explication détaillée du rendu de la liste Vue

php中世界最好的语言
Libérer: 2018-03-08 17:29:45
original
2284 Les gens l'ont consulté

Cette fois, je vais vous donner une explication détaillée du rendu de la liste Vue et quelles sont les précautions pour le rendu de la liste Vue Voici un cas pratique, jetons un oeil.

Les méthodes de mutation, comme leur nom l'indique, modifieront le tableau d'origine appelé par ces méthodes. En revanche, il existe également des méthodes non mutantes, telles que filter(), concat() et slice(). Ceux-ci ne modifient pas le tableau d'origine, mais renvoient toujours un nouveau tableau. Lorsque vous utilisez la méthode de non-mutation, vous pouvez remplacer l'ancien tableau par le nouveau tableau :

example1.items = example1.items.filter(function (item) {  return item.message.match(/Foo/)})
<div id="example">
  <div>
    <button @click="concat()">concat</button>
    <button @click="slice()">slice</button>
    <button @click="filter()">filter</button>
  </div>
  <ul>
    <li v-for="item in items">
      {{item.list}}
    </li>
  
  </ul>
</div>
<script>
  var example = new Vue({
    el:"#example",
    data:{
      items:[
        {list:5},
        {list:6},
        {list:7}
      
      ],
      addValue:{list:10}
    },
    methods:{
      concat(){
     this.items= this.items.concat(this.addValue)
      },
      slice(){
      this.items = this.items.slice(1)
      },
      filter(){
      this.items = this.items.filter(function(item,index,arr) {
          return (index > 0)
        })
      }
    
    }
  })
Copier après la connexion

L'opération ci-dessus n'entraînera pas la suppression du DOM existant par Vue et le rendu de la liste entière. . Vue implémente des heuristiques intelligentes pour maximiser la réutilisation des éléments DOM, donc remplacer le tableau d'origine par un tableau contenant les mêmes éléments est une opération très efficace

Notes

En raison deLimitations de JavaScript, Vue ne peut pas détecter les tableaux modifiés suivants :

Lorsque vous utilisez l'index pour définir directement un élément, par exemple :

vm.items[indexOfItem] = newValue
Copier après la connexion

Quand Lorsque vous modifiez la longueur du tableau, par exemple :

vm.items.length = newLength
Copier après la connexion

Afin de résoudre le premier type de problème, les deux méthodes suivantes peuvent obtenir le même effet que vm.items[indexOfItem] = newValue, et permettront également trigger StatusMise à jour:

// Vue.set
Vue.set(example1.items, indexOfItem, newValue)
// Array.prototype.splice
example1.items.splice(indexOfItem, 1, newValue)
Copier après la connexion

Afin de résoudre le deuxième type de problème, vous pouvez utiliser splice:

example1.items.splice(newLength)
Copier après la connexion

I Je crois que vous avez lu le cas dans cet article. Vous maîtrisez la méthode. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Comment utiliser la balise pour écrire des favoris personnels en HTML

HTML en utilisant img Dessin de balises

FAQ en HTML 1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal