A Provider defines an specific resource of a data origin.
When we create a Provider, we'll get a provider instance that should be alive during the whole live of our application, as it is going to be at charge of the cache, avoiding unnecessary resources consumption while the data origin has not changed.
The Provider class should not be used directly to create providers. It is the base from which specific origins implementations should extend. Here are described the arguments and options that are common to all origins addons. For specific options of each addon please read its own documentation.
id(String): Id for the provider instance. It is used internally as namespace in the store. It is also useful for debugging purposes, and can be used for configuring the provider instance using the
options(Object): Options will differ depending of the type of origin. Here are described the properties in the options object that are common to all origins addons. For specific options of different origin addons, please refer to its own documentation.
false, will disable the cache, and the
readMethoddefined by the origin will be called always, which could result in a negative performance impact. It is
trueby default, and normally should not be disabled.
tags(Array of Strings): Defines tags for the provider instance, which can be used afterwards to manage groups of providers using the
providersobject. Origin addons should usually automatically add his own tag to the beginning of the provided array, to allow configuring easily all providers of a same type.
initialState(Object): Object containing
dataproperties, which will define the initial state of the provider, before its
readmethod is executed for the first time. This is useful to give a default value for the data, so you don't have to make extra format checks in your views (
data && data.map). It is also useful to define the initial loading state, which can be defined as true, which will save extra renders (as the read method is executed normally by the views theirself, the first time a selector is read it should have
loadingstate as false, then immediately
falsewhen data is retrieved. Setting
truewill save that extra render in the initialization).
provider instance, which methods are described in the providers and selectors methods page of these docs.
- Use clear identifiers in your providers. It will improve the development experience, as Data Provider and addons usually use them when printing messages into the console.
- When an
idis duplicated, Data Provider will automatically append a suffix to it and will print a warning.
- Define always the
initialState, it will save you extra format checks in your views, and will save an initial extra render, as described in the Arguments API.