gpt4 book ai didi

javascript - 对象属性的属性依赖

转载 作者:行者123 更新时间:2023-11-30 16:19:50 25 4
gpt4 key购买 nike

我想使用属性依赖项来避免对计算属性进行脏检查。由于计算属性所依赖的属性不是基元而是对象的属性,所以我不知道如何进行这项工作。

代码:

import {computedFrom} from 'aurelia-framework';

export class Person {
personData = {
firstName: 'John',
lastName: 'Doe',
// More attributes...
}

// ...

// Doesn't work:
@computedFrom('personData.firstName', 'personData.lastName')
// Neither does:
// @computedFrom('personData["firstName"], 'personData["lastName"]')
// Nor:
// @computedFrom('personData')
get fullName() {
return `${this.personData.firstName} ${this.personData.lastName}`;
}

// ...
}

最佳答案

@computedFrom 属性将很快添加对表达式的支持——关注https://github.com/aurelia/binding/pull/276

提醒一句——过度使用@computedFrom(例如@computedFrom(p1.p2.p3, p4.p5, p6, p7, p8))可能会导致性能不如脏检查。在观察者的一次性设置与使用脏检查的连续函数评估之间需要权衡 - 你的里程可能会有所不同。

另一种选择是在您的 View 中使用 with 绑定(bind)并直接绑定(bind)到您的对象 Prop :

<span with="personData">${firstName} ${lastName}</span>

最后但同样重要的是,aurelia-computed 插件可以解析 getter 函数体并生成不使用脏检查的观察器:https://github.com/jdanyow/aurelia-computed

关于javascript - 对象属性的属性依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com