关于在 Vue.js 中设置数据对象属性的最佳实践
Best practices regarding setting properties on data objects in Vue.js?
>我正在从 API 中提取数据,假设响应如下所示
users: [{id: 1, name: 'Daft Punk'}, ...]
我通过以下方式将其分配给虚拟机:
this.users = users;
现在,我在列表中显示这些用户,并希望在特定用户上切换某些状态,例如"可见"或"启用"等。
目前我这样做:
methods: {
enableUser: function (user) {
if (user.enabled === undefined) {
Vue.set(user, 'enabled', false);
}
user.enabled= !user.enabled;
}
}
我做
if (user.enabled === undefined) {
Vue.set(user, 'enabled', false);
}
部分原因是 API 的响应对象中不存在启用的属性,我希望能够将该属性用于 v-show 和类似的事情。
有没有更好的方法来分配应该是反应式的属性?为我想使用的每个自定义属性编写该代码段感觉不对。.
如果是
我,我可能会forEach
数据并分配其他属性,然后再在视图模型上设置它:
// get data from api, then...
users.forEach(user => user.enabled=true)
this.users = users;
这将使代码的其余部分更加干净 - 无需检查属性是否已定义。
那么
,你想为所有对象添加一个反应式属性吗?最简单的方法是使适配器函数例如
//adapter function
function adaptToMyApp(externalObj)
{
//add extra properties as desired
externalObj.enabled = false;
}
// fill users from api.
// and adapt them to your app.
users.forEach(user => adaptToMyApp(user))
// now use users as required
相关文章:
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 使用onclick调用属性对象函数
- 嵌套为..in 循环,列出多维对象的属性(对象)
- 动态属性对象 - JSON
- 在不使用隔离范围angularjs自定义指令的情况下获取属性对象
- 通过属性传递属性/对象.Javascript
- Javascript:属性/对象的类型
- 访问JSON中的属性(对象)
- 属性对象Javascript不是用Jquery Deferred设置的
- 无法读取属性'#<对象>'未定义的获取错误
- Twitter中多属性对象的子字符串匹配
- 无法设置'data'属性'对象'标记.(只IE8)
- 更新数据属性对象属性值
- 将属性对象的选定对象从原型推入数组
- 将单个属性对象字面量的数组转换为仅包含其值的数组的最佳方法
- 寻找一种更简单的方法来检查是否多个属性&对象中的方法是未定义的
- 主干模型:带有get方法的空属性,但在属性对象中
- 如何赋值给"text"someText"属性对象在动能js
- Angularjs的数据绑定与数据属性对象
- 如何将一个嵌套的javascript对象转换为只有一级属性对象