@Directive vs @Component in Angular: Differences, Use Cases, and When to Use Each | CodeTrail