Bu sahifa hali tarjima qilinmagan

Tarjima qoshish uchun havola boyicha o'tib Pull Request oching (havolaga o'tish).

Standart til uchun tarkibni ko'rsatadi.

Event

Event is an intention to do something: start a computation, send a message to another application section or update states.

const event = createEvent();
const onMessage = createEvent();

const socket = new WebSocket("wss://echo.websocket.org");
socket.onmessage = (msg) => onMessage(msg);

const data = onMessage.map((msg) => msg.data).map(JSON.parse);

// Handle side effects
data.watch(console.log);

Store

Store is an object that holds state value. There can be multiple stores.

const $users = createStore([]) // <-- Default state
  // add reducer for getUser.doneData event (fires when promise resolved)
  .on(getUserFx.doneData, (state, user) => [...state, user]);

const $messages = createStore([])
  // from WebSocket
  .on(data, (state, message) => [...state, message]);

$users.watch(console.log); // [{id: 1, ...}, {id: 2, ...}]
$messages.watch(console.log);

Effect

Effect is a container for side effects, possibly async with linked events and stores to subscribe.

const getUserFx = createEffect(async (params) => {
  const req = await fetch(`https://example.com/get-user/${params.id}`);

  return req.json();
});

// subscribe to effect call
getUserFx.watch((params) => {
  console.log(params); // {id: 1}
});

// subscribe to promise resolve
getUserFx.done.watch(({ result, params }) => {
  console.log(params); // {id: 1}
  console.log(result); // resolved value
});

// subscribe to promise reject (or throw)
getUserFx.fail.watch(({ error, params }) => {
  console.error(params); // {id: 1}
  console.error(error); // rejected value
});

// you can replace function anytime
getUserFx.use(() => "test result");

// call effect with your params
getUserFx({ id: 1 });

const data = await getUserFx({ id: 2 }); // handle promise
Tarjima jamiyat tomonidan qollanilyapti

Ingliz tilidagi hujjatlar eng dolzarb hisoblanadi, chunki u effector guruhi tomonidan yozilgan va yangilanadi. Hujjatlarni boshqa tillarga tarjima qilish jamiyat tomonidan kuch va istaklar mavjud bo'lganda amalga oshiriladi.

Esda tutingki, tarjima qilingan maqolalar yangilanmasligi mumkin, shuning uchun eng aniq va dolzarb ma'lumot uchun hujjatlarning asl inglizcha versiyasidan foydalanishni tavsiya etamiz.

Hammualliflar