Store documentation¶
The store is responsible for the communication between the framework and the servers. You may need to use some of its functions. To use the store in your application, make sure to import it from the root of sib-core:
import { store } from 'https://unpkg.com/@startinblox/core';
API Reference¶
getData
(async
)¶
Fetch and cache the data for a resource
parameters
id: string
: uri of the resourcecontext: object
(optional): used to expand theid
and to access the resource predicates from a compact form
returns
resource: Proxy
get
¶
Synchronously returns a resource from the cache.
parameters
id: string
: uri of the resource
returns
resource: Proxy
: ornull
if the resource is not in cache
post
(async
)¶
Send a POST request to create a resource in a container. When the request succeed, the resource is cleared from the cache, and the components showing it are notified.
parameters
resource: object
: values of the resource to createid: string
: uri of the container
returns
resourceId: string
: id of the created resource
put
(async
)¶
Send a PUT request to edit a resource. When the request succeed, the resource is cleared from the cache, and the components showing it are notified.
parameters
resource: object
: new values of the resource to editid: string
: uri of the resource
returns
resourceId: string
: id of the edited resource
patch
(async
)¶
Send a PATCH request to edit a resource. When the request succeed, the resource is cleared from the cache, and the components showing it are notified.
parameters
resource: object
: new values of the resource to editid: string
: uri of the resource
returns
resourceId: string
: id of the edited resource
delete
(async
)¶
Send a DELETE request to delete a resource. When the request succeed, the resource is cleared from the cache, and the components showing it are notified.
parameters
id: string
: uri of the resource to deletecontext: object
(optional): used to expand the id if needed
returns
resourceId: string
: id of the deleted resource
subscribeTo
¶
Make a resource listen another one. When a change is detected on a resource, all the resources which are listening are removed from the cache, and the component showing them are notified to re-render their content.
parameters
resourceToUpdate
: resource which needs to be updated when another one changeresourceToListen
: resource on which listen for changes
clearCache
¶
Manually remove a resource from the cache
parameters
id
: uri of the resource to remove from the cache
selectLanguage
¶
Select the language to use to fetch data. If the data is not available, English is served by default.
parameters
language
: code of the language. ie:fr
Store reactivity¶
The store is reactive. It means that any change you make on a resource in your app will be reflected in the interface automatically. However, there are some limitations:
If you make some changes on a resource which is in a virtual container, other virtual containers including this resource may not be updated. (ie: POST on
circles/1/members
does not updateusers/admin/circles/
)If a resource a multi nested field is displayed in a component, it may not be updated. (ie: in a
sib-display
, I displaynestedResource.user.name
fromresource
, changinguser
will not update the display)