Coh*_*ars 8 javascript aurelia
我目前正在学习和使用Aurelia,并且发生了一些奇怪的事情(可能是正常的).
使用以下代码时
export class NavBar {
get username() {
console.log('o_o')
return 'name' + Date.now()
}
}
Run Code Online (Sandbox Code Playgroud)
在模板中${username},用户名总是每秒更新几次(当然,console.log也会多次记录).
解决方法是简单地使用函数而不是getter并${username()}在模板中调用.但这种行为是正常的吗?所以我有时候应该使用getter有时候不是吗?
谢谢!
Jer*_*yow 19
这是正常的,Aurelia轮询你的财产进行更改,因为它无法知道你的属性获取器何时会返回不同的值.
如果它是一个简单的属性(没有吸气剂),Aurelia可以直接观察该属性,不需要轮询.
为了避免轮询,你可以告诉Aurelia的绑定系统要注意什么:
import {computedFrom} from 'aurelia-framework';
export class Foo {
_username = 'hello';
@computedFrom('_username')
get username() {
return this._username;
}
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用一次性绑定:
${username & oneTime}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1353 次 |
| 最近记录: |