Maison  >  Article  >  développement back-end  >  Résoudre le problème du scintillement des pages causé par la mise à jour asynchrone des données de Vue

Résoudre le problème du scintillement des pages causé par la mise à jour asynchrone des données de Vue

PHPz
PHPzoriginal
2023-06-30 20:09:103290parcourir

Comment résoudre le problème du scintillement du rendu des pages causé par la mise à jour asynchrone des données dans le développement Vue

Dans le développement Vue, nous rencontrons souvent le problème du scintillement du rendu des pages causé par la mise à jour asynchrone des données. Ce problème se produit généralement dans les scénarios où les données doivent être obtenues à partir du backend et restituées sur la page. En raison de retards réseau ou d'opérations de données complexes, les éléments de la page seront affichés comme vides ou dans leur état par défaut avant la mise à jour des données. puis soudainement mis à jour vers Les nouvelles données provoquent un effet de scintillement évident sur la page, donnant aux utilisateurs une mauvaise expérience.

Ce qui suit présentera quelques méthodes pour résoudre le problème de scintillement du rendu des pages causé par la mise à jour asynchrone des données.

  1. Utilisez la directive v-if

Vous pouvez utiliser la directive v-if pour décider s'il faut restituer un élément en fonction de l'existence ou non de données. De cette manière, lorsque les données seront mises à jour, l'élément décidera de les afficher ou non en fonction de l'existence ou non des nouvelles données, évitant ainsi le problème de scintillement du rendu. & Par exemple : l & lt; modèle & gt;

& lt; div & gt;

<div v-if="data">{{data}}</div>

& lt;/div & lt;/test & lt;

return {
  data: null
}

},

méthodes :{

getData(){
  // 异步获取数据
  setTimeout(()=>{
    this.data = 'Hello World';
  },1000)
}

},

Mounted(){

this.getData();

}
}

2cacc6d41bbb37262a98f745aa00fbf0


De cette façon, la page n'affichera pas l'élément avant la mise à jour des données, et ne sera affiché qu'une fois les données mises à jour pour éviter les problèmes de scintillement du rendu des pages.


Utilisez les effets de transition de Vue


Vue fournit la fonction d'effets de transition, qui peut gérer en douceur le problème de scintillement lors des mises à jour de page en ajoutant des effets de transition.

Par exemple :

d477f9ce7bf77f53fbcf36bec1b69b7a
    dc6dce4a544fdca2df29d5ac0ea9906b
  1. 
      <div v-if="data">{{data}}</div>
    
  2. 16b28748ea4df4d9c2150843fecfba68
21c97d3a051048b8e55e3c8f199a54b2

Dans le code ci-dessus, en utilisant l'effet de transition de Vue, lorsque les données sont mises à jour, le page Les éléments de la page auront un effet de transition dégradé, rendant les mises à jour de la page plus fluides et réduisant la sensation de scintillement.

Utilisez la directive v-cloak

La directive v-cloak est une directive intégrée de Vue qui préserve l'état d'origine des éléments jusqu'à ce que l'instance de Vue termine la compilation. En utilisant la directive v-cloak sur l'élément qui doit être rendu, vous pouvez vous assurer que l'élément ne sera pas affiché tant que les données ne seront pas mises à jour, évitant ainsi les problèmes de scintillement des pages.

Par exemple :

d477f9ce7bf77f53fbcf36bec1b69b7a
    e5f7743c0b096491867b574123ce18fa
  1. <div>{{data}}</div>
  2. 16b28748ea4df4d9c2150843fecfba68
21c97d3a051048b8e55e3c8f199a54b2

Dans le code ci-dessus, la directive v-cloak est utilisée pour garantir que l'élément div ne l'est pas. Il sera affiché jusqu'à ce que l'instance Vue termine la compilation, évitant ainsi les problèmes de scintillement du rendu des pages.

Résumé


Ci-dessus sont quelques méthodes pour résoudre le problème de scintillement du rendu des pages causé par la mise à jour asynchrone des données dans le développement de Vue, notamment en utilisant l'instruction v-if, en utilisant l'effet de transition de Vue et en utilisant l'instruction v-cloak. En fonction de scénarios et de besoins spécifiques, vous pouvez choisir une méthode qui vous convient pour résoudre le problème de scintillement du rendu des pages et améliorer l'expérience utilisateur. J'espère que le contenu ci-dessus vous sera utile !

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!

Déclaration:
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