博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Vue.js的v-for,key的顺序改变,影响过渡动画表现
阅读量:5976 次
发布时间:2019-06-20

本文共 904 字,大约阅读时间需要 3 分钟。

关于Vue.js的v-for,key的顺序改变,影响过渡动画表现

这个问题是在写Message组件出现的,先看代码部分

子组件:

#Notice:
........
#JS:methods: { enter(e) { e.style.height = e.scrollHeight + "px"; }, leave(e) { e.style.height = 0; } }#CSS:transition: all .2s ease-in-out;

父组件:

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

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

又去官网把文档翻了一遍。 找出了问题所在。for 遍历的时候,有一个值很重要 :key

当key取值为 Number 时,每次数组被改变,dom会重新渲染,所以动画每次 只会影响最后一个。

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

所以把key 改为 String 时,则就是我想要当结果,流畅的依次性的执行了动画,完美

官网的例子

这里需要注意的是,key的取值为String/Number,所以测试时key值为了避免不重复,应该取值为随机的不重复 string

[完]

转载于:https://www.cnblogs.com/chuchur/p/9399537.html

你可能感兴趣的文章
索尼高清影视技术学院参观观后感
查看>>
jQuery 文本编辑器插件 HtmlBox 使用
查看>>
怎么看自己服务器的带宽?
查看>>
go的错误处理
查看>>
apache2.4.4的安装过程
查看>>
php5.3安装oracle的扩展oci8与pdo_oci
查看>>
发送超长短信的协议格式
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
mysql主主复制(双主复制)配置步骤
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
什么是大数据技术架构
查看>>
【分享】如何救援記憶卡中誤刪的資料
查看>>
北方计算机专修学院“展示自我 秀出风采” 网页创意设计大赛成功举办
查看>>
DNS解析相关实验:7台主机的恩怨情仇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
Nginx-location配置
查看>>
扫描线
查看>>
设计模式--模板方法(Template Method)
查看>>