首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue动态组件排序?

Vue动态组件排序?
EN

Stack Overflow用户
提问于 2019-02-13 23:41:34
回答 2查看 1.3K关注 0票数 2

提前感谢你的帮助。

我在一个应用程序中使用Vue的动态组件标记。

https://vuejs.org/v2/guide/components.html#Dynamic-Components

组件列表是通过一个计算属性提供的,我只是在创建<component />元素时迭代该属性。

代码语言:javascript
复制
<component v-for="component in myComponents" :key="component" is="component />

我遇到的问题是组件是异步加载的,有些组件加载的时间可能比其他组件长。由于这一点,有时组件加载的顺序不符合预期。

我很好奇是否有人对我如何能够强制组件以所需的顺序显示有什么建议?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-14 00:02:56

您可以尝试使用有序计算属性,例如,如果您希望按名称对组件进行排序。

在模板中:

代码语言:javascript
复制
<component v-for="component in orderedComponents" :key="component" is="component />

在脚本中

代码语言:javascript
复制
computed: {
  orderedComponents: function () {
    return _.orderBy(this.myComponents, 'name')
  }
}

这个例子使用的是Lodash,当然你也可以按你想要的方式订购它。

您可以查看文档:https://vuejs.org/v2/guide/migration.html#Replacing-the-orderBy-Filter

票数 0
EN

Stack Overflow用户

发布于 2019-02-14 00:03:57

可以,您可以通过设置:key to a number来强制执行命令。

首先,修改for循环以使用索引:

代码语言:javascript
复制
v-for="(index, value) in myComponents"

然后将key设置为索引

代码语言:javascript
复制
:key="index"

这应该使顺序保持得体-如果不是这样,您总是可以先创建占位符,然后在运行时替换它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54674046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档