


A brief discussion on v-for in Vue, key value affects transition effect and animation effect (detailed code explanation)
In the previous article "Teach you how to use Vue to achieve animation effects (with code)", I introduced how to use Vue to achieve animation effects. The following article will give you a brief introduction to the impact of key values in Vue on transition effects and animation effects. Friends in need can refer to it. I hope it will be helpful to you.
About Vue.js
v-for
,key
The order change affects the performance of the transition animation
About Vue.js
v-for
, the value of key
affects the transition This problem with animation performance occurs when writing the Message
component. Let’s look at the code part first.
Child component:
<!-- 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>
Parent component:
<notice v-for="(item, index) in notices" :key="index"> ...... </notice>
JS
:
data() { return { notices: [] }; }, //notices 新增的时候自动加入定时器来移除 setTimeout(() => { let index = 0 //这里假设我已经取得了移除的 index索引, 可能不是依次的123456 this.notices.splice(index, 1); }, time) //time 为传入的随机不等值
Theoretically when a child component is removed, it will have a smooth height from 1
to 0
to transition animation, but otherwise, the animation will only be applied to the last one each time when removed. I am puzzled, all kinds of js
, css
implementations are not very ideal. Still stuck one after another.
Go to the official website and read the document again. Found the problem. for
When traversing, one value is very important: key
When the value of key
is Number
, every time the array is changed, dom
will be re-rendered, so the animation will only affect the last one each time.
When the key
value is String
, each time the array is changed, dom
defaults to the "in-place reuse" strategy
So when I change the key to String, I want the result to be executed smoothly and sequentially. An example of the perfect official website is https://cn.vuejs.org/v2/guide /list.html#key
It should be noted here that the value of key
is String
/Number
, so the test In order to avoid non-duplication, the key
value should be a random non-duplicate string
/number
, and do not use the default index
.
[End]
Recommended learning: JavaScript video tutorial
The above is the detailed content of A brief discussion on v-for in Vue, key value affects transition effect and animation effect (detailed code explanation). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











When using the Vue framework to develop front-end projects, we will deploy multiple environments when deploying. Often the interface domain names called by development, testing and online environments are different. How can we make the distinction? That is using environment variables and patterns.

Ace is an embeddable code editor written in JavaScript. It matches the functionality and performance of native editors like Sublime, Vim, and TextMate. It can be easily embedded into any web page and JavaScript application. Ace is maintained as the main editor for the Cloud9 IDE and is the successor to the Mozilla Skywriter (Bespin) project.

The difference between componentization and modularization: Modularization is divided from the perspective of code logic; it facilitates code layered development and ensures that the functions of each functional module are consistent. Componentization is planning from the perspective of UI interface; componentization of the front end facilitates the reuse of UI components.

Vue.js has become a very popular framework in front-end development today. As Vue.js continues to evolve, unit testing is becoming more and more important. Today we’ll explore how to write unit tests in Vue.js 3 and provide some best practices and common problems and solutions.

In Vue.js, developers can use two different syntaxes to create user interfaces: JSX syntax and template syntax. Both syntaxes have their own advantages and disadvantages. Let’s discuss their differences, advantages and disadvantages.

There are two ways to query the current Vue version: 1. In the cmd console, execute the "npm list vue" command to query the version. The output result is the version number information of Vue; 2. Find and open the package.json file in the project and search You can see the version information of vue in the "dependencies" item.

When we used Amap, the official recommended many cases and demos to us, but these cases all used native methods to access and did not provide demos of vue or react. Many people have written about vue2 access on the Internet. However, in this article, we will take a look at how vue3 uses the commonly used Amap API. I hope it will be helpful to everyone!

In the actual development project process, sometimes it is necessary to upload relatively large files, and then the upload will be relatively slow, so the background may require the front-end to upload file slices. It is very simple. For example, 1 A gigabyte file stream is cut into several small file streams, and then the interface is requested to deliver the small file streams respectively.
