Maison interface Web uni-app Que dois-je faire si les données Uniapp sont mises à jour mais que la page n'est pas affichée ?

Que dois-je faire si les données Uniapp sont mises à jour mais que la page n'est pas affichée ?

Apr 18, 2023 pm 03:22 PM

Avec le développement rapide de l'Internet mobile, les applications mobiles deviennent de plus en plus populaires. De nombreuses entreprises et développeurs choisissent d'utiliser des outils de développement multiplateformes pour développer des applications mobiles. En tant que l'un des frameworks de développement d'applications mobiles multiplateformes les plus populaires, Uniapp est largement favorisé par les développeurs en raison de ses avantages d'écrire du code une seule fois et de l'exécuter sur plusieurs plates-formes. Cependant, parfois, lorsque nous utilisons Uniapp pour le développement, nous rencontrons des mises à jour de données mais pas de rendu de page. Alors, comment résoudre ce problème ?

Tout d’abord, nous devons comprendre la cause de ce problème. D'une manière générale, le problème de la mise à jour des données mais pas du rendu de la page est dû au fait que le composant Vue ne restitue pas automatiquement une fois les données mises à jour. En effet, le système réactif de Vue est implémenté en détournant le get et l'ensemble de Object.defineProperty() sur l'objet de données. Lorsque les propriétés de l'objet de données changent, le système détecte et actualise automatiquement la page. Cependant, lorsque les données ne sont pas mises à jour via les méthodes fournies par Vue, comme la modification directe des données via des objets JavaScript ou la manipulation des données via d'autres bibliothèques telles que jQuery, le système réactif de Vue ne peut pas détecter automatiquement les modifications des données, il est donc impossible d'actualiser. la page dans le temps.

Il existe de nombreuses façons de résoudre ce problème. Je présenterai ci-dessous quelques méthodes courantes.

Méthode 1 : $forceUpdate

Tout d'abord, Vue fournit une méthode $forceUpdate pour forcer le rendu du composant. Lorsque nous constatons qu'un composant n'est pas mis à jour à temps, nous pouvons appeler manuellement la méthode $forceUpdate où il doit être mis à jour pour forcer le rendu du composant. Les méthodes d'utilisation spécifiques sont les suivantes :

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello World'
    }
  },
  methods: {
    updateMessage() {
      // 通过其他方式更新数据
      this.message = 'Hello Uniapp!'
      // 调用$forceUpdate方法强制重新渲染组件
      this.$forceUpdate()
    }
  }
}
</script>
Copier après la connexion

Méthode 2 : Vue.set et Vue.delete

De plus, Vue fournit également les méthodes Vue.set et Vue.delete pour mettre à jour les données. Parmi eux, Vue.set est utilisé pour ajouter un nouvel attribut ou élément à un objet ou un tableau, et Vue.delete est utilisé pour supprimer un attribut ou un élément dans un objet ou un tableau. Ces deux méthodes déclencheront le système réactif de Vue, permettant à Vue de détecter automatiquement les modifications de données et de restituer la page. L'utilisation spécifique est la suivante :

<template>
  <div>{{ list }}</div>
</template>

<script>
export default {
  data() {
    return {
      list: ['item1', 'item2', 'item3']
    }
  },
  methods: {
    addItem() {
      Vue.set(this.list, 3, 'item4')
      // 等同于 this.list.splice(3, 0, 'item4')
    },
    removeItem() {
      Vue.delete(this.list, 1)
      // 等同于 this.list.splice(1, 1)
    }
  }
}
</script>
Copier après la connexion

Méthode 3 : watch pour surveiller les modifications des données

Enfin, nous pouvons également utiliser watch pour surveiller les modifications des données et déclencher manuellement le nouveau rendu du composant lorsque les données changent. L'utilisation spécifique est la suivante :

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello World'
    }
  },
  watch: {
    message(newVal, oldVal) {
      // 数据变化时手动重新渲染组件
      this.$nextTick(() => {
        this.$forceUpdate()
      })
    }
  },
  mounted() {
    // 通过其他方式更新数据
    this.message = 'Hello Uniapp!'
  }
}
</script>
Copier après la connexion

Résumé :

Il existe plusieurs méthodes ci-dessus pour résoudre le problème de la mise à jour des données Uniapp mais pas de rendu de page. Parmi eux, $forceUpdate est relativement simple et ne doit être appelé manuellement que là où il doit être mis à jour ; tandis que Vue.set et Vue.delete sont plus flexibles et peuvent implémenter des opérations de données fines et déclencher automatiquement le nouveau rendu des composants ; est un moyen universel de surveiller les modifications des données, déclenchant manuellement le nouveau rendu des composants lorsque les données changent. Ce n'est qu'en choisissant des méthodes appropriées pour résoudre les problèmes en fonction des besoins réels que vous pourrez mieux améliorer l'efficacité du développement et éviter les problèmes inutiles.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les API de partage social de l'Uni-App? Comment utiliser les API de partage social de l'Uni-App? Mar 13, 2025 pm 06:30 PM

L'article détaille comment intégrer le partage social dans les projets Uni-App à l'aide de l'API Uni.share, couvrant la configuration, la configuration et les tests sur des plateformes comme WeChat et Weibo.

Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Mar 18, 2025 pm 12:20 PM

L'article discute de l'utilisation de SASS et moins de préprocesseurs dans UNI-APP, de la configuration de détail, des avantages sociaux et de la double utilisation. L'accent principal est sur la configuration et les avantages. [159 caractères]

Comment utiliser l'API d'animation Uni-App? Comment utiliser l'API d'animation Uni-App? Mar 18, 2025 pm 12:21 PM

L'article explique comment utiliser l'API d'animation d'Uni-App, détaillant les étapes pour créer et appliquer des animations, des fonctions clés et des méthodes pour combiner et contrôler la synchronisation de l'animation. Count de chargement: 159

Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Mar 27, 2025 pm 04:59 PM

L'article traite de divers types de tests pour les applications UNIAPP, y compris l'unité, l'intégration, les tests fonctionnels, UI / UX, les performances, la plate-forme multiplateforme et la sécurité. Il couvre également une compatibilité multiplateforme et recommande des outils comme JES

Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Mar 27, 2025 pm 04:45 PM

L'article traite des stratégies pour réduire la taille du package UNIAPP, en se concentrant sur l'optimisation du code, la gestion des ressources et les techniques comme le fractionnement du code et le chargement paresseux.

Comment utiliser l'API de stockage Uni-App (Uni.SetStorage, Uni.getStorage)? Comment utiliser l'API de stockage Uni-App (Uni.SetStorage, Uni.getStorage)? Mar 18, 2025 pm 12:22 PM

L'article explique comment utiliser les API de stockage Uni-App (Uni.SetStorage, Uni.getStorage) pour la gestion des données locales, discute des meilleures pratiques, dépannage et met en évidence les limitations et les considérations pour une utilisation efficace.

Quelle est la structure de fichiers d'un projet Uni-App? Quelle est la structure de fichiers d'un projet Uni-App? Mar 14, 2025 pm 06:55 PM

L'article détaille la structure des fichiers d'un projet Uni-App, expliquant des répertoires clés comme Common, Components, Pages, Static et Unicloud, et des fichiers cruciaux tels que App.vue, Main.js, Manifest.json, Pages.json et Uni.scss. Il explique comment cet O

Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Mar 27, 2025 pm 04:50 PM

L'article discute de l'optimisation des images dans UniaPP pour de meilleures performances Web par compression, conception réactive, chargement paresseux, mise en cache et utilisation du format WebP.

See all articles