我在网页中有一个锚标记,其 href 值取决于属性不受此组件控制的服务。服务详细信息是异步填充的。
为了获取服务详细信息并创建 href 值,我想到了两种方法。 我的问题是 - 在性能方面哪个更好?什么应该是更好的选择?
使用函数作为 href 属性
这会导致函数被连续调用。
// Inside component.html
<div>
<a [href]="getDetailsLink()"></a>
</div>
// Inside component.ts
@Component({ selector: 'user', template: `...` })
class UserComponent implements DoCheck {
public detailsLink: string;
constructor(
private userService: UserService
) {
}
public getDetailsLink(): string {
// Based on the below property
const checkSomeProperty = this.userService.checkSomeProperty;
// Construct details link
this.detailsLink = `https://www.something.com/users/${this.userService.checkSomeProperty.someValue}`;
}
}
使用 ngDoCheck
// Inside component.html
<div>
<a [href]="detailsLink"></a>
</div>
// Inside component.ts
@Component({ selector: 'user', template: `...` })
class UserComponent implements DoCheck {
public detailsLink: string;
constructor(
private userService: UserService
) {
}
ngDoCheck() {
if (this.userService.checkSomeProperty) {
// Check changes for the property
// Perform required action
// Construct details link
this.detailsLink = `https://www.something.com/users/${this.userService.checkSomeProperty.someValue}`;
}
}
}
感谢您阅读到这里。任何指导表示赞赏