# ember/template-no-unnecessary-component-helper
💼 This rule is enabled in the 📋 `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations).
🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix).
> **HBS Only**: This rule applies to classic `.hbs` template files only (loose mode). It is not relevant for `gjs`/`gts` files (strict mode), where these patterns cannot occur.
The `component` template helper can be used to dynamically pick the component being rendered based on the provided property. But if the component name is passed as a string because it's already known, then the component should be invoked directly, instead of using the `component` helper.
## Examples
This rule **forbids** the following:
```gjs
{{component "my-component"}}
```
This rule **allows** the following:
```gjs
{{component SOME_COMPONENT_NAME}}
```
```gjs
{{!-- the `component` helper is needed to invoke this --}}
{{component "addon-name@component-name"}}
```
```gjs
{{my-component}}
```
```gjs
{{my-component close=(component "link-to" "index")}}
```
## References
- [component helper guide](https://guides.emberjs.com/release/components/defining-a-component/#toc_dynamically-rendering-a-component)
- [component helper spec](https://www.emberjs.com/api/ember/release/classes/Ember.Templates.helpers/methods/component?anchor=component)