我使用Redux和使用UUID的REST api。存储状态的通常模式是使用id作为对象的键:
entities: {
articles: {
1: {
id: 1,
title: 'Some Article',
author: 1
},
2: {
id: 2,
title: 'Other Article',
author: 1
}
},
users: {
1: {
id: 1,
name: 'Dan'
}
}
}
我如何使用api中的UUID?我希望能够创建一个新实体,而无需先从服务器请求UUID(用于离线功能)。
我应该:
_id
属性中,并仅在发出API请求时使用它?这似乎是最简单的方法,虽然感觉多余,但在某些情况下我可能不得不在实体中搜索某个_id
。entities: { articles: { 1: { _id: 'UUID', title: 'Some Article', author: 1 }, 2: { id: 'UUID', title: 'Other Article', author: 1 } }, users: { 1: { _id: 'UUID', name: 'Dan' } } }
entities: { articles: { 'UUID': { _id: 'UUID', title: 'Some Article', author: 'UUID' }, 'UUID': { _id: 'UUID', title: 'Other Article', author: 'creating' } }, users: { 'UUID': { _id: 'UUID', name: 'Dan' }, 'creating': { name: 'Stan' } } }
答案 0 :(得分:0)
在API返回响应之前,我不会将它添加到Redux存储中。
在Vue中,在给定组件的数据中,我通常有两个(有时更多)根密钥,其中一个指向我的Redux存储区中处理数据的部分,另一个通常是{{1}或者那种东西,Vue数据因绑定而改变。
在用户启动添加资源(form
)的操作后,服务器返回成功的响应后,我发送了一个操作POST /resources
。在此之前,我会发送类似addedResource
等的内容
有什么理由不行吗?使用自动递增的整数id字段与UUID应该没有区别。您的数据规范化仍应以相同的方式工作。