Use typedi injections in Vue components
- Install module:
npm install vue-typedi --save
- Install reflect-metadata package:
npm install reflect-metadata --save
and import it somewhere in the global place of your app before any service declaration or import (for example in app.ts):
import "reflect-metadata";
- Enabled following settings in tsconfig.json:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
- Use the module:
import Vue from 'vue'
import VueTypedi from 'vue-typedi'
Vue.use(VueTypedi);
import { Inject } from 'vue-typedi';
import MyService from '...';
@Component
export default class MyComponent extends Vue {
@Inject()
public myService!: MyService;
}
-
@Inject()
to inject a service in your Vue components or other services. -
@Injectable()
allows us to inject the services in non service classes.
This project is licensed under the MIT License - see the LICENSE.md file for details