Javascript Aurelia绑定:重复调用属性getter
我目前正在学习和使用Aurelia,一些奇怪的事情(可能是正常的)正在发生 当使用以下代码时Javascript Aurelia绑定:重复调用属性getter,javascript,aurelia,Javascript,Aurelia,我目前正在学习和使用Aurelia,一些奇怪的事情(可能是正常的)正在发生 当使用以下代码时 export class NavBar { get username() { console.log('o_o') return 'name' + Date.now() } } 在模板${username}中,用户名始终在更新,每秒更新几次(当然,console.log也会记录几次) 解决方法是简单地使用函数,而不是getter,并在模板中调用${username()}。但这种
export class NavBar {
get username() {
console.log('o_o')
return 'name' + Date.now()
}
}
在模板${username}
中,用户名始终在更新,每秒更新几次(当然,console.log也会记录几次)
解决方法是简单地使用函数,而不是getter,并在模板中调用${username()}
。但这种行为正常吗?所以,我应该有时使用getter,有时不使用getter吗
谢谢 这很正常,Aurelia会轮询您的属性进行更改,因为它无法知道您的属性getter何时会返回不同的值 如果它是一个简单的属性(没有getter),Aurelia可以直接观察该属性,不需要轮询 为了避免轮询,您可以告诉Aurelia的绑定系统要观察什么:
从'aurelia framework'导入{computedFrom};
出口类食品{
_用户名='你好';
@计算自(“\u用户名”)
获取用户名(){
返回此。\u用户名;
}
}
另一种选择是使用一次性绑定:
${username&oneTime}
我忘记了一次性绑定,也不知道从计算的。非常感谢你的解释!