Contrary to what others have said, Dependency Injection is a mechanism that allows you to Provide an object from the root of your app, and then you can Inject it anywhere in your app that you need. Without this, we had to pass things like Props from the root, to its children, then to those children's children, etc., until the Prop arrived at the place where we wanted to use it. With DI, you just pass the Prop, Object, or whatever to the Provider, giving it a name string. Then, let's say you are 5 levels down in your component hierarchy, and you want one of the things you gave to the Provider. You just call Inject, giving it the name of the thing you want, and there it is. This mechanism is VERY handy. Vue.js provided a great implementation of this, but so do most other modern systems.