Input
// This property is bound using its original name. @input() bankName: string;
@Input('account-id') id: string;
一般在组件中,不会直接使用Input标记的输入属性,可能会导致数据流问题和不必要的性能浪费。所以一般是在组件中自定义个属性来深复制Input的输入属性,从而来使用这个组件内的自定义的属性来处理数据逻辑。这样就达到了‘低耦合’的目的。
这里还有别样的一种写法取代深复制这种方法,如下:
@input() get isRequested(): boolean { return this._isRequested; } set isRequested(value: boolean) { // 当输入属性和当前的不一致时,处理一下的逻辑 if (value !== this._isRequested) { this._isRequested = value; } } private _isRequested: boolean = false;
优点
- 当输入属性和当前的不一致时,才会处理内部组件的逻辑,减少了一些不必要的性能浪费
- 使用TypeScript的get方法,可以在方法里对输入属性做进一步的数据处理,like: vue中的computed方法。
- 取代深复制的方法。
- 当需要检测某个属性的变化而做出响应的时候,不需要用生命周期的ngOnChanges方法,减少不必要的性能浪费。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。