为什么 mint-ui 的 swipe 组件中依赖了 $children 遍历子组件的顺序?
在学习 mint-ui 的 swipe 组件的代码,看到如下的代码片段:
之前有看到 vue.js 文档中提到过,通过 $children
访问子组件,并不能保证顺序。但是 swipe 组件此处的代码好像就是直接依赖了 $children
遍历子组件的顺序。这里感到有些疑惑。
希望有熟悉 vue.js 或者 mint-ui 的同学可以帮忙解释一下,不胜感激!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关于
$children
并不保证顺序vue 实例的
$children
属性始终按照创建时的先后顺序来保存子组件实例,而不是子组件实例在整个组件树中的顺序。如果子组件实例在创建完成后,没有因为数据的变化而改变在组件树中的位置,那么它在
$children
中的顺序可以反应它在组件树中的顺序。如果子组件实例因为数据变化而改变了在组件树中的顺序,那么这种改变是不会反应在
$children
中的,因为$children
始终按照创建的先后顺序保存子组件实例。关于 mint-ui 的 swipe 组件
swipe 组件实现的是轮播图效果,如果用来生成轮播项的数据的顺序不会发生改变,新增的轮播项数据是从尾部追加的,那么在这种情况下,
$children
完全可以正确的反应子组件实例在组件树中的真实顺序。