Components play an important role in the extensibility of LoopBack 4. A Component makes it easy for independent developers to contribute additional features to LoopBack. Components serve as a vehicle to group extension contributions such as Context Bindings and various artifacts to allow easier extensibility of your Application.
A typical LoopBack component is an npm package exporting a Component class which can be added to your application.
Apart from its own properties,
Component class can have the following
controllers- An array of controller classes.
providers- A map of providers to be bound to the application context.
classes- A map of TypeScipt classes to be bound to the application context.
servers- A map of name/class pairs for servers.
lifeCycleObservers- An array of life cycle observers.
bindings- An array of bindings to be added to the application context. A good example of using bindings to extend the functionality of a LoopBack 4 app is contributing an additional body parser.
These properties contribute to the application to add additional features and capabilities.
LoopBack 4 was built with extensibility in mind and this includes Components,
which can be allowed to contribute additional artifacts by adding a Mixin to
your Application class. This doesn’t change how a Component is registered
app.component()) but it enables the Component to contribute additional
artifacts. For example:
- Repositories can be contributed by a Component by adding
@loopback/repositoryto your Application
- Booters can be contributed by a Component
@loopback/bootto your Application
Always check a component’s instructions to see if it requires the use of a Mixin. A Mixin may automatically register a Component, saving you the trouble of having to do so manually. Again it’s best to check the documentation for the given Component/Mixin.