Inhaltsverzeichnis
子组件:
父组件:
JS
Untergeordnete Komponente:
Übergeordnete Komponente:
Heim Web-Frontend View.js Eine kurze Diskussion über v-for in Vue: Der Schlüsselwert beeinflusst den Übergangseffekt und den Animationseffekt (detaillierte Codeerklärung).

Eine kurze Diskussion über v-for in Vue: Der Schlüsselwert beeinflusst den Übergangseffekt und den Animationseffekt (detaillierte Codeerklärung).

Aug 19, 2021 am 09:43 AM
vue.js

Im vorherigen Artikel „Lernen Sie, wie Sie mit Vue Animationseffekte erzielen (mit Code)“ habe ich vorgestellt, wie Sie mit Vue Animationseffekte erzielen. Der folgende Artikel gibt Ihnen eine kurze Einführung in die Auswirkungen der Schlüsselwerte in Vue auf Übergangseffekte und Animationseffekte. Ich hoffe, dass er für Sie hilfreich ist.

Eine kurze Diskussion über v-for in Vue: Der Schlüsselwert beeinflusst den Übergangseffekt und den Animationseffekt (detaillierte Codeerklärung).

Über Vue.jss v-for: Die Änderung der Reihenfolge von key wirkt sich auf die Leistung der Übergangsanimation aus strong> Vue.jsv-forkey的顺序改变,影响过渡动画表现

关于Vue.jsv-forkey的取值,影响过渡动画表现这个问题是在写Message组件出现的,先看代码部分

子组件:

<!-- Notice: -->
<transition :name="transitionName" @enter="enter" @leave="leave">
  ...... ..
</transition>
<!-- JS: -->
<script>
  export default {
    methods: {
      enter(e) {
        e.style.height = e.scrollHeight + "px";
      },
      leave(e) {
        e.style.height = 0;
      },
    },
  };
</script>
<!-- CSS: -->
<style>
  transition: all 0.2s ease-in-out;
</style>
Nach dem Login kopieren

父组件:

<notice v-for="(item, index) in notices" :key="index">
  ......
</notice>
Nach dem Login kopieren

JS

data() {
    return {
      notices: []
    };
  },
  //notices 新增的时候自动加入定时器来移除
  setTimeout(() => {
    let index = 0 //这里假设我已经取得了移除的 index索引, 可能不是依次的123456
    this.notices.splice(index, 1);
  }, time) //time 为传入的随机不等值
Nach dem Login kopieren

理论上当某一个子组件被移除时,他会有一个流畅的高度从 1 0 到过度动画,但是不然,每次移除时,动画每次只会应用到最后一个。百思不解,各种jscss实现都不是很理想。依然一卡一卡的。 

又去官网把文档翻了一遍。 找出了问题所在。for遍历的时候,有一个值很重要:keykey取值为Number时,每次数组被改变,dom会重新渲染,所以动画每次只会影响最后一个。

key取值为String时,每次数组被改变,dom则默认用“就地复用”策略

所以把key改为String时,则就是我想要当结果,流畅的依次性的执行了动画,完美官网的例子https://cn.vuejs.org/v2/guide/list.html#key

这里需要注意的是,key的取值为StringNumber,所以测试时key值为了避免不重复,应该取值为随机的不重复string/number, 不要使用默认的index

In Bezug auf die Frage, wie sich die Werte von v-for und key von Vue.js auf die Leistung der Übergangsanimation auswirken, Ich schreibe eine Nachricht. Wenn die -Komponente erscheint, schauen Sie sich zuerst den Codeteil an

Untergeordnete Komponente:

rrreee

Übergeordnete Komponente:

rrreee

JS:

rrreeeWenn eine untergeordnete Komponente entfernt wird, hat sie theoretisch eine gleichmäßige Höhe von 1 bis 0 zur Übergangsanimation, andernfalls wird die Animation bei jeder Entfernung jeweils nur auf die letzte angewendet. Ich bin verwirrt, alle Arten von js-, css-Implementierungen sind nicht sehr ideal. Steckt immer noch einer nach dem anderen fest.

Gehen Sie zur offiziellen Website und lesen Sie das Dokument noch einmal. Habe das Problem gefunden. Wenn for durchlaufen wird, ist ein Wert sehr wichtig: key Wenn der Wert von key jedes Mal Number ist die Zahl Wenn die Gruppe geändert wird, wird dom neu gerendert, sodass die Animation jeweils nur die letzte betrifft.

Wenn der Wert von key String ist, verwendet dom jedes Mal, wenn das Array geändert wird, die Strategie der „direkten Wiederverwendung“. default🎜🎜 🎜Wenn ich also den Schlüssel in String ändere, möchte ich, dass das Ergebnis reibungslos und sequenziell ausgeführt wird. Ein Beispiel von der perfekten offiziellen Website https://cn.vuejs.org/v2/guide/list.html#key 🎜 🎜🎜Hier ist zu beachten, dass der Wert von key String/Number ist, also der Wert von key während des Tests Um eine Nichtduplizierung zu vermeiden, sollte der Wert eine zufällige, nicht duplizierte Zeichenfolge/Nummer sein und nicht den Standard-Index verwenden. Code>. 🎜🎜[Ende]🎜🎜Empfohlenes Lernen: 🎜JavaScript-Video-Tutorial🎜🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über v-for in Vue: Der Schlüsselwert beeinflusst den Übergangseffekt und den Animationseffekt (detaillierte Codeerklärung).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ausführliche Diskussion darüber, wie Vite .env-Dateien analysiert Ausführliche Diskussion darüber, wie Vite .env-Dateien analysiert Jan 24, 2023 am 05:30 AM

Wenn wir das Vue-Framework zum Entwickeln von Front-End-Projekten verwenden, stellen wir bei der Bereitstellung mehrere Umgebungen bereit. Oft sind die von Entwicklungs-, Test- und Online-Umgebungen aufgerufenen Schnittstellendomänen unterschiedlich. Wie können wir die Unterscheidung treffen? Dabei werden Umgebungsvariablen und Muster verwendet.

Detaillierte grafische Erklärung zur Integration des Ace-Code-Editors in ein Vue-Projekt Detaillierte grafische Erklärung zur Integration des Ace-Code-Editors in ein Vue-Projekt Apr 24, 2023 am 10:52 AM

Ace ist ein in JavaScript geschriebener einbettbarer Code-Editor. Es entspricht der Funktionalität und Leistung nativer Editoren wie Sublime, Vim und TextMate. Es kann problemlos in jede Webseite und JavaScript-Anwendung eingebettet werden. Ace wird als Haupteditor für die Cloud9-IDE gepflegt und ist der Nachfolger des Mozilla Skywriter (Bespin)-Projekts.

Was ist der Unterschied zwischen Komponentisierung und Modularisierung in Vue? Was ist der Unterschied zwischen Komponentisierung und Modularisierung in Vue? Dec 15, 2022 pm 12:54 PM

Der Unterschied zwischen Komponentisierung und Modularisierung: Die Modularisierung ist aus Sicht der Codelogik unterteilt. Sie erleichtert die Entwicklung auf Codeebene und stellt sicher, dass die Funktionen jedes Funktionsmoduls konsistent sind. Die Komponentisierung ist die Planung aus der Perspektive der UI-Schnittstelle; die Komponentisierung des Frontends erleichtert die Wiederverwendung von UI-Komponenten.

Erfahren Sie, wie Sie Unit-Tests in Vue3 schreiben Erfahren Sie, wie Sie Unit-Tests in Vue3 schreiben Apr 25, 2023 pm 07:41 PM

Vue.js ist heute ein sehr beliebtes Framework in der Front-End-Entwicklung. Da sich Vue.js ständig weiterentwickelt, werden Unit-Tests immer wichtiger. Heute untersuchen wir, wie man Unit-Tests in Vue.js 3 schreibt, und stellen einige Best Practices sowie häufige Probleme und Lösungen vor.

Lassen Sie uns ausführlich über reactive() in vue3 sprechen Lassen Sie uns ausführlich über reactive() in vue3 sprechen Jan 06, 2023 pm 09:21 PM

Vorwort: Bei der Entwicklung von vue3 bietet reactive eine Methode zur Implementierung reaktionsfähiger Daten. Dies ist eine häufig verwendete API in der täglichen Entwicklung. In diesem Artikel wird der Autor seinen internen Betriebsmechanismus untersuchen.

Ein einfacher Vergleich der JSX-Syntax und der Template-Syntax in Vue (Analyse der Vor- und Nachteile) Ein einfacher Vergleich der JSX-Syntax und der Template-Syntax in Vue (Analyse der Vor- und Nachteile) Mar 23, 2023 pm 07:53 PM

In Vue.js können Entwickler zwei verschiedene Syntaxen zum Erstellen von Benutzeroberflächen verwenden: JSX-Syntax und Vorlagensyntax. Beide Syntaxen haben ihre eigenen Vor- und Nachteile. Lassen Sie uns ihre Unterschiede, Vor- und Nachteile besprechen.

Eine kurze Analyse zum Umgang mit Ausnahmen in dynamischen Vue3-Komponenten Eine kurze Analyse zum Umgang mit Ausnahmen in dynamischen Vue3-Komponenten Dec 02, 2022 pm 09:11 PM

Wie gehe ich mit Ausnahmen in dynamischen Vue3-Komponenten um? Im folgenden Artikel geht es um die Ausnahmebehandlungsmethoden für dynamische Vue3-Komponenten. Ich hoffe, dass er für alle hilfreich ist.

Analysieren Sie das Prinzip der Implementierung der Kompositions-API durch Vue2 Analysieren Sie das Prinzip der Implementierung der Kompositions-API durch Vue2 Jan 13, 2023 am 08:30 AM

Seit der Veröffentlichung von Vue3 ist die Wortkompositions-API in das Blickfeld der Vue-Schreibenden gerückt. Ich glaube, jeder hat aufgrund der Veröffentlichung von @ immer gehört, wie viel besser die Kompositions-API ist als die vorherige Options-API. vue/composition-api-Plug-in, Vue2-Studenten können ebenfalls in den Bus einsteigen. Als Nächstes werden wir hauptsächlich Responsive Ref und Reactive verwenden, um eine eingehende Analyse durchzuführen, wie dieses Plug-In dies erreicht.

See all articles