javascript - VueJS 计算回报最佳实践
问题描述
我一遍又一遍地使用这个代码。想知道是否有更好的方法来制作这个快捷方式
这是示例
// items.js
export default [
{ title: 'ABC', href: 'javascript:void(0)' },
{ title: 'DEF', href: 'javascript:void(0)' }
]
// index.vue
<script>
import items from './items.js'
export default: {
computed: {
links() {
let results = []
items.forEach((item,index) => {
item.id = index
results.push(item)
})
return results
}
}
}
</script>
//returned result = { title: 'ABC', href: 'javascript:void(0)', id: 0 }
我只想将 id 添加到计算属性中的每个对象,这样我就不用担心使用v-for="(item, index) in items" :key="index"
. 而只是v-for="item in links" :key="item.id"
在模板中使用
问题:
从代码中,您可以看到我声明了空的结果数组,
let results = []
然后在返回结果之前从 forEach 数据填充结果。有没有更好的方法来返回每个循环数据而不声明空数组并在返回生成的数据数组之前填充它?有时,我不只是添加 id,也许添加另一个 like
item.internal = true
。或者如果它是多级的,则为水平。
解决方案
您可以使用map
方法和传播运算符添加id
到item
:
computed: {
links() {
return items.map((item,index)=>({id:index,...item}))
}
}
推荐阅读
- mongodb - 如何在不更改参数的情况下在 bash shell 中显示我的 MongoDB 查询 --eval 的所有结果?
- android - 理解 RxJava + Kotlin 中的 CompositeDisposable
- java - Сan 无法从 ADFS 服务器获得 SAML 响应
- php - 如何在控制器 Codeigniter 中调用模态引导程序?
- c# - ASP.NET Core SignalR 使用 Azure AD 返回 401 Unauthorized
- apache-kafka - 按键分组 Ktable 后时间戳无效(负)
- postgresql - 如何在 postgresql 存储函数中从 jsonb 返回表?
- javascript - 仅当详细信息表不为空时,如何显示图标以展开详细信息表
- vue.js - 范围内的样式时未应用 Vuetify 样式
- javascript - 根据当前旋转顺时针或逆时针旋转 div