Схема ва навъҳои майдон
Схемаи захира рӯйхати тартибдодашудаи майдонҳост. Ҳар майдон name, type ва, вобаста ба навъ,
маҷмӯи хурди options дорад. Тартиби майдонҳо аз як сабаби мушаххас муҳим аст: майдони
template танҳо ба майдоне, ки пештар дар ҳамон рӯйхат меояд, муроҷиат карда метавонад — сатри
template-ро дар поён бинед.
Номи майдонҳо бояд бо ҳарфи хурд оғоз шаванд ва танҳо ҳарф, рақам ва зерхат дошта бошанд. Захира
ҳадди аксар 30 майдон дошта метавонад. Ҳар сабти сохташуда инчунин ба таври худкор id дорад —
шумо ҳеҷ гоҳ онро худ муайян намекунед, ва майдоне, ки ба он номи id мегузоред, ба фоидаи
id-и воқеӣ беэътибор дониста мешавад.
Ҷадвали маълумотнома
| Навъ | Опсияҳо | Мисоли натиҷа |
|---|---|---|
index | — | 0, 1, 2, … (мавқеи сабт) |
uuid | — | "a1b2c3d4-5e6f-7890-abcd-ef1234567890" |
firstName | — | "Amelia" |
lastName | — | "Nguyen" |
fullName | — | "Amelia Nguyen" |
email | — | "[email protected]" |
phone | — | "+1 555 019 2231" |
avatar | — | URL-и тасвири аватар |
image | width, height (ҳар ду ихтиёрӣ) | URL-и тасвир бо андозаи додашуда |
city | — | "Tashkent" |
country | — | "Uzbekistan" |
street | — | "482 Birchwood Ave" |
word | — | "vivid" |
sentence | шумораи калимаҳо min, max (ихтиёрӣ) | "The quiet fox waited by the door." |
paragraph | шумораи ҷумлаҳо min, max (ихтиёрӣ) | порчаи кӯтоҳи матни навъи lorem |
number | min, max (пешфарз 0–1000) | 742 |
price | min, max, symbol (пешфарз бе аломат) | "48.19", ё "$48.19" бо symbol: "$" |
boolean | probability-и true, 0–1 | true |
date | сатрҳои ISO-и from, to (пешфарз 2015–2025) | "2021-06-14T09:32:00.000Z" |
enum | values — массиви холинабудаи сатрҳо | як арзиши аз values интихобшуда |
static | value — ягон арзиши собити JSON | ҳамеша айнан value |
template | template — сатр бо ҷойгузинҳои {{field}} | сатре, ки аз майдонҳои пештара сохта шудааст |
Навъи template
template ягона навъест, ки ба ҷои сохтани арзиши худ майдонҳои дигарро мехонад. Опсияи
template-и он сатри одӣ аст; дар ҳар ҷое, ки он {{fieldName}}-ро дар бар мегирад, ин
ҷойгузин бо арзише, ки майдони номаш fieldName барои ҳамин сабт аллакай сохтааст, иваз
мешавад. Ин танҳо барои майдонҳое, ки пештар дар схема муайян шудаанд, кор мекунад — шаблон
наметавонад ба майдоне, ки ҳанӯз иҷро нашудааст, муроҷиат кунад. Истифодаи маъмул: агар майдони
firstName ва майдони lastName пештар дар рӯйхат бошанд, майдони баъдии email метавонад ба
ҷои сохтани арзиши беалоқа, майдони template бо
"{{firstName}}.{{lastName}}@example.com" бошад, то email бо ном ҳамоҳанг бимонад.
Детерминизм, мухтасар
Ҳар навъи майдон аз ҳамон пайдарпайии псевдотасодуфии бо seed сохташуда, ки дигар майдонҳои ҳамон сабт истифода мебаранд, арзиш мегирад, пас айнан ҳамон схема, seed ва индекси сабт ҳамеша айнан ҳамон сабтро, майдон ба майдон, месозанд. Тарзи кори сохтан механизмро пурра шарҳ медиҳад; чизе ки дар ин ҷо муҳим аст ин аст, ки тағйир додани опсияҳо-и майдон натиҷаи ояндаи он майдонро тағйир медиҳад, аммо тартиби навро додан ё илова кардани майдонҳо дар ҷои дигари схема id-ҳои сабтҳои аллакай мавҷударо аз нав омехта намекунад — id-ҳо мустақил аз боқимондаи схема сохта мешаванд.
Гирифтани додаҳои захира
Ҳеҷ кадоме аз инҳо тарзи хониши додаҳоро тағйир намедиҳад — ҳар захира, новобаста аз майдонҳояш, ба ҳамон тарз хонда мешавад:
const response = await fetch("https://mocklab.dev/m/demo7k2m9x/products");
const products = await response.json();import { useQuery } from "@tanstack/react-query";
function ProductList() {
const { data: products } = useQuery({
queryKey: ["products"],
queryFn: () => fetch("https://mocklab.dev/m/demo7k2m9x/products").then((res) => res.json()),
});
return <pre>{JSON.stringify(products, null, 2)}</pre>;
}