I have a component that takes two inputs, user and userList I wonder should i detect the change with the ngOnChanges lifecycle hook? What's the best practice for that?
// Note: Old approach
// @Input() user: User; // For editing a user
// @Input({ alias: "userList" }) _userList: User[] = [];
// @Output() addUser = new EventEmitter<User>();
// Note: New approach
user = input<User>();
_userList = input<User[]>([], { alias: "userList" });
addUser = output<User>();
constructor(private userService: UserService) { }
ngOnInit(): void {
this.getRoleList();
}
ngOnChanges(changes: SimpleChanges): void {
const { user, _userList } = changes;
console.log(changes);
if (user && user.currentValue) {
this.userModel = user.currentValue;
this.initializeForm(user.currentValue);
}
if (_userList) {
this.userList.set(_userList.currentValue);
}
}
I tried the ngOnChanges lifecycle hook and it works fine but I don't know if it's ok or not for my signal-based component.