为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 mint-ui 的 swipe 组件中依赖了 $children 遍历子组件的顺序?

为什么 mint-ui 的 swipe 组件中依赖了 $children 遍历子组件的顺序?

波斯汪 2018-12-11 21:30:32
在学习 mint-ui 的 swipe 组件的代码,看到如下的代码片段:代码链接之前有看到 vue.js 文档中提到过,通过 $children 访问子组件,并不能保证顺序。但是 swipe 组件此处的代码好像就是直接依赖了 $children 遍历子组件的顺序。这里感到有些疑惑。希望有熟悉 vue.js 或者 mint-ui 的同学可以帮忙解释一下,不胜感激!
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

关于 $children 并不保证顺序

vue 实例的 $children 属性始终按照创建时的先后顺序来保存子组件实例,而不是子组件实例在整个组件树中的顺序。

如果子组件实例在创建完成后,没有因为数据的变化而改变在组件树中的位置,那么它在 $children 中的顺序可以反应它在组件树中的顺序。

如果子组件实例因为数据变化而改变了在组件树中的顺序,那么这种改变是不会反应在 $children 中的,因为 $children始终按照创建的先后顺序保存子组件实例。

关于 mint-ui 的 swipe 组件

swipe 组件实现的是轮播图效果,如果用来生成轮播项的数据的顺序不会发生改变,新增的轮播项数据是从尾部追加的,那么在这种情况下,$children 完全可以正确的反应子组件实例在组件树中的真实顺序。


查看完整回答
反对 回复 2018-12-11
  • 1 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信