-
-
Notifications
You must be signed in to change notification settings - Fork 785
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Day007 - Khi nào nên dùng ngOnChanges hay setter/getter #5
Comments
@phongca22 Việc dùng setter vs |
@phongca22 Theo anh một trong những lợi thế của ngOnChanges là em có thể check được giá trị hiện tại, và giá trị trước đó, hoặc lần thay đổi đó có phải là lần đầu tiên hay ko. Ví dụ như em có component với export class TestComponent implements OnChanges {
@Input() text: string;
constructor() { }
ngOnChanges(changes: SimpleChanges) {
let textChange = changes.text;
}
} Thì biến textChange sẽ là kiểu SimpleChange với khá nhiều property hữu dụng. Mỗi khi value của text thay đổi thì em sẽ access dc đến các property này ở trong hàm export declare class SimpleChange {
previousValue: any;
currentValue: any;
firstChange: boolean;
constructor(previousValue: any, currentValue: any, firstChange: boolean);
/**
* Check whether the new value is the first value assigned.
*/
isFirstChange(): boolean;
} |
Trong trường hợp khởi tạo component dynamically thì mình phải tự call lifecycle do đó lúc này có thể dùng setter thay cho Input, nó sẽ tự động gọi hàm set thì chúng ta có thể làm thêm side effect ở đây. |
@phongca22 mình reopen để làm như documentation cho repo. Label |
Mình xin bổ sung thêm 1 ý nữa đó là nếu mình muốn viết code theo style imperative thì mình dùng ngOnChanges, còn nếu muốn viết theo style declarative thì dùng getters. |
@phhien203 2 cách đều gọi hàm thì đâu có khác gì nhau??? |
Em thấy nên ghi rõ thêm ưu nhược điểm của ngOnChanges và setter/getter.
Trong bài viết anh chỉ ghi 1 câu chung chung thế này:
Trong trường hợp bạn không thích dùng ngOnChanges, chúng ta có thể sử dụng getter/setter để làm điều này.
https://github.com/angular-vietnam/100-days-of-angular/blob/master/Day007-Component-Interaction-01.md
The text was updated successfully, but these errors were encountered: