Comment optimiser le problème du rendu répété dans Vue
Dans le développement de Vue, nous rencontrons souvent le problème du rendu répété des composants. Un rendu répété entraînera non seulement une dégradation des performances de la page, mais peut également entraîner une série de dangers cachés, tels qu'une incohérence des données, un scintillement de l'affichage, etc. Par conséquent, pendant le processus de développement, nous devons avoir une compréhension approfondie des techniques d'optimisation liées à Vue afin de réduire autant que possible le rendu répété des composants.
Ci-dessous, nous présenterons comment optimiser le problème de rendu répété dans Vue un par un et joindrons des exemples de code correspondants.
<template> <div> <h1>{{ computedValue }}</h1> <button @click="updateValue">更新数据</button> </div> </template> <script> export default { data() { return { value: 'Hello Vue!', }; }, computed: { computedValue() { // 执行一些复杂的计算逻辑,返回结果即可 return this.value.toUpperCase(); }, }, methods: { updateValue() { this.value = 'Hello World!'; }, }, }; </script>
Dans l'exemple ci-dessus, computedValue
convertit la valeur de value
en majuscule via la méthode toUpperCase
et renvoie le résultat . Étant donné que l'attribut calculé ne sera réexécuté que lorsque la dépendance réactive pertinente change, computedValue
ne sera recalculé que lorsque value
change, évitant ainsi un rendu répété. computedValue
通过toUpperCase
方法将value
的值转换为大写,并返回结果。由于computed属性只在相关响应式依赖发生改变时才会重新执行,因此只有在value
发生改变时,computedValue
才会重新计算,避免了重复渲染。
<template> <div> <h1 v-once>{{ staticValue }}</h1> <button @click="updateValue">更新数据</button> </div> </template> <script> export default { data() { return { staticValue: 'Hello Vue!', }; }, methods: { updateValue() { // 更新数据时,staticValue不会重新渲染 this.staticValue = 'Hello World!'; }, }, }; </script>
在上述示例中,staticValue
的值在初始化后不会发生改变,使用v-once指令可以确保它只被渲染一次,无论后续如何改变。
<template> <div> <h1 v-if="showContent">{{ dynamicValue }}</h1> <button @click="toggleContent">切换显示</button> </div> </template> <script> export default { data() { return { showContent: true, dynamicValue: 'Hello Vue!', }; }, methods: { toggleContent() { this.showContent = !this.showContent; }, }, }; </script>
在上述示例中,根据showContent
的值,决定是否渲染dynamicValue
。当showContent
La directive v-once ne peut restituer l'élément et son contenu qu'une seule fois, laissant les données qu'il contient inchangées. Ceci est utile lors du rendu de contenu statique ou de contenu qui ne change pas. Voici un exemple :
rrreee
Dans l'exemple ci-dessus, la valeur destaticValue
ne changera pas après l'initialisation. L'utilisation de la directive v-once garantit qu'elle n'est rendue qu'une seule fois, quelles que soient les modifications ultérieures. dynamicValue
en fonction de la valeur de showContent
. Lorsque la valeur de showContent
change, elle sera restituée pour éviter un rendu répété. 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!