I believe most of what it&#x27;s doing under the hood is explained in the article.  Sorry if it isn&#x27;t 100% clear.<p>Short version:<p>- A provider has its own store (or it can share a store with other providers if you need it to).<p>- When you have a `propType` matching a provider&#x27;s `actions`, those actions are automatically mapped to the store&#x27;s dispatcher; so when you call `this.props.someAction`, it&#x27;s essentially calling `provider.store.dispatch(provider.actions.someAction())`.<p>- And when you have a `propType` matching a provider&#x27;s `reducers`, that component will always have the latest state of that reducer.<p>Without the `@provide` decorator, you would just `export default provide(SomeComponent)`.  I&#x27;ve opted to use the ES7 decorator because it&#x27;s cleaner, more concise, and immediately apparent.