Skip to content

createApiStoreModule ​

ΠœΠ΅Ρ‚ΠΎΠ΄ для створСння стора для Π°ΠΏΡ–, який Π²ΠΆΠ΅ ΠΌΠ°Ρ” Π² собі ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ для Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π· Π°ΠΏΡ–. Π—Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΠΏΡ€Π°Ρ†ΡŽΡ” Ρƒ звʼязці Π· card i tableStoreModule.

State ​

api ​

Π‘Π•Π— Π¦Π¬ΠžΠ“Πž НЕ Π ΠžΠ‘Π˜Π’Π˜ΠœΠ•!

ΠŸΡ€ΠΈ створСнні модуля обовʼязково Ρ‚Ρ€Π΅Π±Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ ΠΎΠ±ΚΌΡ”ΠΊΡ‚ Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ для Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π· Π°ΠΏΡ–. Π”ΠΎΠΊΠ»Π°Π΄Π½Ρ–ΡˆΠ΅ Π² Ρ†Ρ–ΠΉ Π΄ΠΎΡ†Ρ–: api/clients#interface.

Actions ​

GET_LIST ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context, params }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ, params - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ для Π·Π°ΠΏΠΈΡ‚Ρƒ.

GET_ITEM ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context, params }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ, params - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ для Π·Π°ΠΏΠΈΡ‚Ρƒ.

POST_ITEM ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ.

PATCH_ITEM ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context, id, changes }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ. id - Ρ–Π΄Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ запису, changes - Π·ΠΌΡ–Π½ΠΈ.

UPD_ITEM ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ.

DELETE_ITEM ​

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ { context, id }, Π΄Π΅ context - контСкст стора, який Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ” Ρ†ΡŽ Π°ΠΏΡ–ΡˆΠΊΡƒ. id - Ρ–Π΄Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ запису.

Π§ΠΎΠΌΡƒ ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ”ΠΌΠΎ контСкст Ρ– як Π²ΠΎΠ½ΠΎ Ρ€ΠΎΠ·Π΄ΡƒΠΏΠ»ΡΡ”Ρ‚ΡŒΡΡ? ​

Π’Π°ΠΊ історично склалося, Ρ‰ΠΎ, Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ, стСйт Π΄ΠΎΠ²ΠΎΠ»Ρ– ΠΎΠ΄Π½Π°ΠΊΠΎΠ²ΠΈΠΉ: Ρƒ Π½ΡŒΠΎΠΌΡƒ Ρ” itemId, itemInstance, Ρ– всякі Ρ‚Π°ΠΊΡ– ΡˆΡ‚ΡƒΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…Ρ–Π΄Π½Ρ– для створСння, Π°Π±ΠΎ Π°ΠΏΠ΄Π΅ΠΉΡ‚Ρƒ запису. Π’Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½ΠΎ, ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ”ΠΌΠΎ ΠΏΠΎΠ²Π½ΠΈΠΉ контСкст Ρ‚ΠΎΠ³ΠΎ стора Π½Π° Π°ΠΏΡ–, Ρ‰ΠΎΠ± Ρƒ самому, скаТімо, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ– update Ρƒ Ρ„Π°ΠΉΠ»ΠΈΠΊΡƒ Π°ΠΏΡ–ΡˆΠΊΠΈ витягти Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π² { itemInstance, itemId }.

НС Π³Π°Ρ€Π½ΠΎ? - Π—Π³ΠΎΠ΄Π΅Π½. Π’Π°ΠΊ склалось історично πŸ™‚

Використання ​

Π—Π°Π·Π²ΠΈΡ‡Π°ΠΉ Π°ΠΏΡ– стор ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ як Ρ‡Π°ΠΉΠ»Π΄ Ρ–Π½ΡˆΠΎΠ³ΠΎ модуля Π·Ρ– своїм контСкстом, який ΠΉΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ”.

js
import {
  createApiStoreModule,
  createBaseStoreModule,
} from '@webitel/ui-sdk/store';
import smthApi from '../api/smth'; // { getList, get, ... }

const actions = {
  GET_LIST_OF_SMTH: (context) =>
    context.dispatch('api/GET_LIST', { context, params: { smth: 'smth' } }),
};

const apiModule = createApiStoreModule({
  state: {
    // Π±Π΅Π· Ρ†ΡŒΠΎΠ³ΠΎ Π½Π΅ Ρ€ΠΎΠ±ΠΈΡ‚ΠΈΠΌΠ΅!
    api: smthApi,
  },
});

const baseModule = createBaseStoreModule({
  actions,
  modules: {
    api: apiModule,
  },
});

export default baseModule;