ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kunlar
+230 kunlar
Postlar arxiv
1 419
# ืืืืจ, ืขืืื ืืืชืืขื
ืฉืืืฉ ืืืืื ืฉืืืืจืืช ืืื ืขื ืืคืืชืจืื ืืื ืฉืขืืื ืืืชืื:
ืืืืจ- ืื Over Engineering ืื ืืขืื; ืื ืืฉ ืืงืื ืฉืืืื; ืื ืืืื ืฉืื ืืงืจ ืืืื ืืขื ืืืืื ืืืชื ืขื ืกืืืืืื ืืืืชืจืื.
ืขืืื- ืื ืื ืื ื ืื ืจืืฆืื ืืืชืืืื ืขื ืืืขืื ืืืืช ืฉืื ืืฉืืืข ืืื, ืื ืืืืืฉ ืืื. ืืื ืื ื ืื ืจืืฆืื ืฉืืืขืื ืชืืืืจ ืืขืืืืื ืืืืจืกื ืืื. ืขืืื ืื ืืืืจ ืฉืืคืืชืจืื ืืืืข ืขื ืืืืงืืช ืืืื ืชืืืืืื ืืื ืืื ืฉืืืืืื ืืืืฉืื.
ืืืชืืขื- ืื ืืฉืืืขืื ืื ืชืืืืจ ืื ืื ื ืจืืฆืื ืืืขืช ืื ืขืฉืืช, ืื ื ืืกืืช ืืขืฉืืช ืืื ืืฆืืื ืืืื ืืืืืืจ ืืคืขื ืืืื ืฉืืชืืืืืื ืขื ืืฉืื ืืืื.
ืืฉ ืื ื ืืืื ืืื ืืืืืืื ืืืืืื ืืช ืืื ืืขื ืืช ืขื ืื ืฉืืืฉืช ืืืจืืฉืืช. ืืคืขืจ ืืื ืืืจื ืืื ืชืจืืืช ืืจืืื ืืช ืื ืืื ืืช ืืืฉืงืืข ืืืืื ืื ืืื ื.
1 419
# ืื ื ืจืืฆื ืืืืืช ...
"ืื ื ืจืืฆื ืืืืืช ืืืืืื ืืง" - ืืืจ ืืฃ ืืื ืืฃ ืคืขื. "ืื ื ืจืืฆื ืืืชืื ืงืื ืืืืืื, ืืืชืื ืืขืฉืจ ืฉืคืืช ืฉืื ืืช ืื ืืื, ืืชืงื ืืืืื ืืืขืจืืืช ืฉืื ื ืื ืืืื ืืื". ืื "ืื ื ืจืืฆื ืืขืืื ืขื ืืขืจืืช ืฉืืื ืืจื ืืืืืง ืืืชื, ืฉืื ืืคืฉืจ ืืฉืืจื ืื ืืชื ืื ืืืืข ืื ืืืฉืืจ, ืืฉืื ืคืขื ืฉืืขืืื ืืืจืกื ืฆืจืื ืืืฉืืืจ ืฆืืืช ืฉืื ืืืื ื ืืช ืฉืืืข ืืืื ืืชืงืืืช".
ืืืื ืืืช ืื ื ืืืืจ ืืืชืจ ืื ืฉืื ืฉืขืืืืื ืืกืืืืืช ืืืื ืืืฉืจ ืื ืฉืื ืฉืขืืืืื ืืกืืืืืช ืืจืืืืช. ืื ื ืืืืจ ืืืชืจ ืืชืื ืชืื ืฉืืืชืืื ืงืื ืืืืืื ืืืื ืืืกืจ ืืื, ืฉืืืืชืจืื ืขื ืืืืงืืช ืื ืฉืืืื ืื ืืืืืช ืขื ืืฉืืื ืืช ืืืืืงืืช ืืฉืืคืืขื ืืืชืื ืื ืฉืฆืจืื ืืืชืื ืืฉืืื ืฉืืืขืจืืช ืชืขืืื.
ืืืฉ ืืืื ืกืืืืช ืืคืขืจ:
1. ืชืืฃ ืืฉ ืืื ืืืื, ืืืจื ืืืฉืงืขื ืืืจ ื ืืื ืืื ืืช ืืืฆืจ ืืื ืฉืฆืจืื.
2. ืืืืืง ืืืืกื ืขืืฉืื ืืจืื ืื ืฉืื ืืืฉืื, ืืืจื ืฉืื ืืชืืงืืื ืืืื ืืืชืจ ืืื ืืืชืื ืงืื ื ืืื.
3. ืืฉ ืขืืฉืื ืืืื ืืงืืืืช ืืืฉืื, ืฆืจืื ืืชืงื ืืืจ ืืช ืืืขืืืช ืืื ืื ืืืฆืืจ ืืืืจื ืฉื ืจืข.
4. ืืื ืื ื ืืงืืืืช ืืืื ืื ืืืืืื ืืื ืืช ืืืจ ืืช ืืคืืฆ'ืจ ืืื. ืืืจื ืฉื ืืฆื ืืื ืืงืืืืช ื ืืื ืืชืงื.
ืืคืขืจ ืืื "ืื ืฉืื ื ืืืฉื", "ืื ืฉืื ื ืืืืจ" ื"ืื ืฉืื ื ืขืืฉื", ืื ืจืง ืืืจื ืืงืื ืืขืืื ืคืืืช ืืื, ืืื ืืื ืืขืืงืจ ืืืจื ืืืชืื ืช ืืืจืืืฉ ืคืืืช ืืื. ืืื ืืืจื ืื ื ืืืื ืืืื ืืขืฆืื ื, ืืืื ืืื ืืคืืื ืืคืื ืืขืืื ืืช ืืืชื ืกืืืื ืจืขืืื. "ืื ืืจืฆื ืืืชื" ืืืฉื ืืืชืื ืช ืฉืืจืืืฉ ืฉืืขืืืื ืฉืื ืื ืชืืืืช ืืช ืืขืจืืื ืฉืื. ืื ืฉื ืืงืฆืืข ืืืืื ืื ืืื ืืชื ืืืื ืื.
ืืืฆืืื ืืืืืืืืช ืขืืืจืช ืืจื ืืืื ื ืฉืื ืืคืฉืจ ืืืฉืื ืืืืจื ืืื ืคืขืจ ืืื ืืืืฉืื ืืืขืฉื. ืื ืืฉื ื ืืื ืืชื ืืืฉืืื ืฉืืชืื ืชืื ืืงืฆืืขืืื ืฆืจืืืื ืืืชื ืื - ืืืื ืืืื ืืืชืืื ืืืืฅ ืืช ืืฉืืืืช ืืืื ืืืื ืืื ืฉืืื.
1 419
# ืฉืืืช ืจืืืื ืืช ืขืืืื: ืืืืืืช ื JavaScript (ืฉืื?? ืื ืฉืื, ื ื ืืื ืืืฃ Promises)
ื ืื 16 ืืื ืืกื ืืืืื ืฉื timers/promises ืฉืืืคืฉืจ ืืืคืขืื ืืช setTimeout ืืชืืจ Promise, ืื ืืฉืืื ืืคืขื ืชืฉืชืืฉ ื Node.JS. ืืืืื ืื ืคืืชืจืื ืื ืชืื'ืก ืื ืืืืจ ืืืขื ืืื ืืืชืื ืขืืื.
## ืืฉืืื
ื ืชืื ื ืืชืืื ืืช ืืืื ื Node.JS:
import {
setTimeout,
} from 'timers/promises';
async function waitAndSayYay() {
await setTimeout(1000);
console.log('yay');
}
for (let i=0; i < 10; i++) {
waitAndSayYay();
}
ืืชืืื ืืช ืืืื 10 ืฉื ืืืช ืืื ืืืคืืกื ืขื ืืืกื 10 ืคืขืืื ืืช ืืืืื yay. ืืื ืฆืจืื Node 16 ืืฉืืื ืืืจืืฅ ืืืชื ืืฆืจืื ืืฉืืืจ ืืช ืืงืื ืืงืืืฅ ืขื ืกืืืืช .mjs.
ืืืชืืจ ืฉืืื - ืืืื ืืฉื ืืช ืืช ืืืืืช ื for ืฉืืกืืฃ ืืชืืื ืืช, ืขืืื ื ืืช ืืงืื ืื ืฉืืืืืื ืชืืื ืฉื ืื ืืื ืืืคืกื ืืืืคืกื ืืืืืจ ืกื ืืื ืืชืืื ืืช ืชืจืืฅ ืืืฉื 10 ืฉื ืืืช.
## ืคืืชืจืื: ืฉืืืืฉ ื Promise ืืืฆืื ื
ืื ืงื ืืจืืืช ืืช ืืืขืื ืืื - ืื ืืคืขืื ืฉื waitAndSayYay ืืื ืขืฆืืืืช ืืื ืืืืขืช ืฉืืืจ ืงืจืื ืืคืื ืงืฆืื ืืื ืคืขืืื ืงืืื. ืืคืืชืจืื ืืื ืืืฉืชืืฉ ื Promise ืืืืืืื ืืื ืืกื ืืจื ืืื ืืงืจืืืืช:
1. ืืืืืจ Promise ืืืืืืื ืฉืื ืขืืฉื ืืืื
2. ืื ืคืขื ืฉืืคืขืืืื ืืช waitAndSayYay ืืื ืืืกืืฃ ืืืืง then ื Promise ืืืืืืืื, ืืื ืืขืืื ืืช ื Promise ืืืืืืืื ืฉืืฉืืืจ ืืช ืืชืืฆืื - ืืืืืจ ืขื ืืืืง then ืืืืฉ. ืืชืื ืืืชื ืืืืง then ืชืืื ืคืงืืื ืืืืืช ืฉื ืื ืืื ืืืืคืืก yay.
3. ืืชืื ืืคืื ืงืฆืื ืืคืขืื await ืขื ื Promise ืืืืืืืื, ืื ืฉืืืืจ ืฉืื ื ืืืื ืืื ื Promise-ืื ืฉืืื ืขื ืขืืฉืื ืืืืจืืื ืืืืืง then ืืืืฉ ืฉืื.
ืืงืื ืื ื ืจืื ืืื:
import {
setTimeout,
} from 'timers/promises';
let running = new Promise((resolve, reject) => { resolve() });
async function waitAndSayYay() {
running = running.then(async () => {
await setTimeout(1000);
console.log('yay');
});
await running;
}
for (let i=0; i < 10; i++) {
waitAndSayYay();
}
ืืจืืง ืืื ืืืื ืืืืขืื ืืฉืืฉ ืื ื ืคืื ืงืฆืื ืืกืื ืืจืื ืืช ืฉืขืืฉื ืืฉืื ืจืืืฉ ืืื ืืืื ื ืจืืฆืื ืคืื ืงืฆืืืช ืืืจืืช "ืฉืืชืคืจืฆื" ืืืืฆืข. ืืืืืื ืคืื ืงืฆืื ืืืชืืช ืืกืคืจ ืงืืฆืื ืืืืกืง ืืจืืฆื ืืืืื ืฉืงืื ืืกืื ืืจืื ื ืืืจ ืื ืืจืืฅ ืืคื ื ืฉืืื ืชืกืืื ืืืชืื ืืช ืื ืืงืืฆืื.
ืืฉ ืืื ืจืขืืื ืืช ืืืจืื ืืื ืืืืฉ ืืช ืืื ืื ืื? ืืืืื ืื ืืจืืื ืืฉืชืฃ ืืชืืืืืช.1 419
# ืืขื ืืื, ืืืขืื, ืืฉืื
ืืืืชื ืจืืฆื ืฉืื ืืืืจืื ืืืฉืืืื ืืื ืื ืืขื ืืื ืื, ืืื ืื ืื ืืืฆื. ืืืืชื ืจืืฆื ืฉืื ืืืืจืื ืืืืขืืืื ืืื ืื ืืขื ืืื ืื, ืืื ืื ืฉืื ืืืืืืื.
ืืืืจืืช ืืืื ืขื ืืื ืขืืืื ืฉืืชื ืืืจ ืืืื ืืฉืชืืฉืื ืื ืืืืื ืืืื ืืืืขืื ืืคืจืืืืงืืืืืืช ืฉืืื.
ืืื ื ืืืื ืฉื ืืคืจืืืงื, ืืืื ืืืืืืืช, ืืืชืืจืื ืืืืืืืืช ืฉื ืื ืืื ืืื ืืฉืืื ืืืฆืืืช ืืคืจืืืงื ืืจืื ืืืชืจ ืืคืืชืจืื ืืื ืกืคืฆืืคื ืื ืืืืืฉ ืคืืฆ'ืจ ืงืื.
ืืืืจืืช ืืืช ืื ืฉืืื ืืขื ืืื ืืจืืข ืื ืืื ืืคืื ืงืฆืื ืืืืช ืฉืื ื ืื ืกื ืืืชืื ืื ืขืืฉื ืืืืืง ืืช ืื ืฉืจืฆืืชื, ืื ืื ืืืฉืืขืืช ืฉื ืืืืขืช ืืฉืืืื ืืกืคืฆืืคืืช ืฉืงืืืืชื.
ืืขื ืืื ืืืื ืืขืฆืื. ืืืช ืืืฉืืื ืฉืื ื ืืืฆืื ืืื ื"ืืฉืื" ื"ืืืขืื". ืืืคืชื ืืืฆืืื ืืื ืืืืืื ืฉืืื.
1 419
# ืื ืืงืจื ืื?
ืื ื ืืื ืืงื ืืืื ืฉืืชื ืืืืืื ืื ืกืืช ืืคืขื ืืืื ืฉืชืืืขื ืืืืื ืืฉืื ืืืฉ: ื ืืกืื ืืืืืื. ืืืฉืืง ืื ืื ื-3 ืฉืืืื:
## ืื ื ืืืฉื ืฉืืงืจื X
ืืฉืื ืืจืืฉืื ืืื ืงื - ืืชื ืืกืชืืืื ืขื ืืฉืื ืฉืงืฉืืจ ืืืืจ ืฉืืชื ืืืืืื ืืื ืืฉืื ืืชื ืืืืช ืืืฉื ืฉืื. ืืืืืื:
1. ืื ื ืืืฉื ืฉืื ืืืชืื ืืช ืืงืื ืืื ืืื ืืืคืืก ืืช ืืชืืฆืื ืืืื.
2. ืื ื ืืืฉื ืฉืื ืืฉืืื ืืื ืืืืจืืืช "2" ืืืกืคืจ 2 ืืคืืืชืื ืืงืื ืฉืื ืฉืืืื.
3. ืื ื ืืืฉื ืฉืฉื ื ืงืื ืืืื ืจืื ืืืืงืจ ืืืืืื ืืืืจ ืืื ืขื ืืฉื ื, ืื ืื ืืคืขืืชื ืืืชื ืืงืืฆื docker-compose ืฉืื ืื, ืืชื ืื ืฉืื ืืืฉืืื ืขื ืืืชื ืจืฉืช.
4. ืื ื ืืืฉื ืฉืืงืื ืืืืืื ืืขืืื ืื ืื ืืืืง ืืช ืืฉืืจื ืืจืืืขืืช ืืื ื.
5. ืื ื ืืืฉื ืฉืื ืืืกืืฃ sleep ืืคื ื ืืขืืื ืฉื ืืกืืก ืื ืชืื ืื ืื ืื ืืฉืจืช ืื ืืฆืืื ืืขืืืช.
ืืชื ืืืืืื ืืืชืืจ ืืช ืขืฆืืื ืืื ืฉืืชื ืจืืฆืื. ืื ื ืืืื ืืฉืื ื ืืืื ืืฉืื ืืืฉ ืื ืงืืจื ืชืืขืื ืขื ืืฉืื ืคืฉืื ืืจืฉืื ืืื ืฉืืืชืจ ืืืจืื ืฉืื ื ืืืฉื ืฉืืงืจื ืื ืฉืื ืืงืจื.
## ืงืจื Y
ืืฉืื ืืฉื ื ืืืฉืืง ืื ืืื ืืคืชืขื ืืืืื. ืื ืื ื ืืืชืืื ืืช ืืืืจ ืฉืืฉืื ื ืืืชืื ืืืืืงืื ืื ืงืืจื. ืืคืขืืื ืื ืฉืืฉืื ื ืฉืืงืจื ืืืืช ืงืจื, ืืืคืขืืื ืืงืจื ืืฉืื ืืืจ.
ืื ืฉืืฉืื ืืื ืืฉืื ืื ืืื ืืืืช ืงืจื ืืื ืืืคืฉ ืจืง ืืช ืืชืืฆืื ืฉืจืฆืืชื.
## ืืื ืื ืงืจื
ืืืฉืื ืืฉืืืฉื ืืื ืืืืง ืืงืฉื ืืื ืฆืจืื ืืืืื ืืืืกืืืจ ืืื ืงืจื ืื ืฉืงืจื. ืื ืืฉืืชื ืืืชืืื, ืื ืืืืืชื, ืืื ืืืืชื ืืชืืืื.
ืื ืืืจื ืืืืืื - ืืฉืืชื ืฉืฉื ื ืงืื ืืืื ืจืื ืฉืจืฆืื ืืฉื ื ืงืืฆื docker compose ืฉืื ืื ืืืืืื ืืืืจ. ืืคืขืืชื ืืจืืืชื ืฉืื ืื ืืฆืืืืื ืืืืจ, ืืคืืื ืฉืื ืืืืืจืื ืขื ืืืชื ืจืฉืช. ืขืืฉืื ืืฉืื ืืฉืืืฉื ืื ื ืื ืกื ืืืืื ืืื. ืื ื ืืกืชืื ืขื ืืจืฉืช, ืืืื ืฉืืฉื ืฉื ืืงืื ืืืื ืจืื ืืจืฉืช ืฉืื ื ืืื ืฉืืฉืืชื ืฉืืืื, ืืฉื ื ืืช ืืฉื ืืจืืื ืฉืื ืื ืืฆืืืืื ืืืืจ ืืฉืืฉืชืืฉืื ืืฉืืืช ืื ืืื ืื. ืืคื ืื ื ืืืฉืื ืืื ืืืืืง ืืื ืงืืืขืื ืืช ืืฉื ืืจืฉืช ืฉื ืงืื ืืืื ืจ ืืจืืื ืฉืื ื ืืืื ืืืืืืจ ืืช ืืฉื ืืืชืงืฉืจ ืืื ืงืื ืืืื ืจืื.
ืื ืืืืืื ืฉื ืคืืืชืื - ืืฉืืชื ืฉืืฉืืืื ืืื ืืืืจืืืช "2" ืืืกืคืจ 2 ืชืชื ืขืจื "ืืืช"; ื ืืกืืชื ืืจืืืชื ืฉืืืืงื ืคืืืชืื ืืืืืจ ืชืฉืืื ืฉืืืืืช. ืื ืืืฉืืชื ืืจืืืช ืืื ืืืืืง ืื ืืืืคืืก ืฉื ืขืจื ืืกืืื, ืืื ืืืืืจ ืืื ืืืคืืกืื ืืืกืืฃ ืืื ืืืฉืืืช ืืื ืืกืคืจ ืืืืจืืืช, ืคืขื ืืืช ืขื ืืืจื ืฉื ืืืกืคืจ ืืืืจืืืช ืืคืขื ืฉื ืื ืขื ืืืจื ืฉื ืืืืจืืืช ืืืกืคืจ.
ืฆืจืื ืืืืื, ืืจืื ืคืขืืื ืืฉืื ืืฉืืืฉื ืื ืชืืื ืื ื ืชืฉืืื. ืืฉืืชื ืฉืืืกืคื ืฉื sleep ืืืงืื ืืกืืื ืืืืืงื ืชืืจืื ืืืืืงื ืืขืืื, ืื ืืฆืืื, ืืขืืืื ืื ื ืื ืืืืจื ืืืื ืืื ืื ืงืจื ืื ืืื ืืืจืื ืืืืืงื ืืขืืื ืืืจื ืืืจืช. ืื ืืกืืจ ืืืืจ. ืื ื ืฉืืืจ ืคืชืง ืืืฉ ืืชืขืืืืืช ืืืื. ืืชืืฉืื ืืืื ืืื ืืืืืจ ืืื, ืืืื ืืฉืืืืจ ืืื ืืืชืจ ืืช ืืืื ืืืืืื, ืืื ืืืฆื ืืช ืืคืืชืจืื.
## ืื ืืื ืืฉืืื ืืืืช
ืจืื ืืืืื ืฉื ืชืืืืื ืืืืืื ืฉื ืืฉืืื ื ืืฉืืื ืืืื ืฉืืฉืื ืืกืืื ืืืืืื ืืืืืืฆืื. ืืฉืื ื ืจืื ืืขื ืืื, ืืชืืืืื ืืืืื ืืืชื, ืื ืืฆืืืืื ืืืชืื ืืฃ ืชืืื ืืช ืืืชืืืืฉืื.
ืฉืืืช ืื ืืกืืืื ืขืืืจืช ืืฉื ืืช ืืช ืืคืืงืืก: ืืืงืื ืืืชืืืฅ ืืคืชืืจ ืชืจืืืืื ืฉืืืฉืื ืืืจ ืืชื, ืื ืื ื ืขืืฉืื ื ืืกืื ืขื ืืฉืื ืฉืื ืื ื ืืืจ ืืืืขืื ืืขืฉืืช. ืืชืืืืื ืขื ืืฉืื ืฉืขืืื, ืืืจืงืื ื ืืืืฉ ืืืื ืืื ืืื ืืขืืื ืขื ืฉืื ืื ืงืื ืืื ืื ืกืื ืืืืืงืื ืืช ืืชืืฆืื. ืืฉืืง ืืื ืคืืืช ืจืืืฉ ืืชืกืืืืื ืืืคืฉืจ ืืฉืืง ืืืชื ืืื ืืช ืงืื ืืช.
ืงืฆืช ืืื ืืืฉืืง ืืืงืืช, ืื ื"ืืขื ืืื! ืืื ืืงืจื ืื..." ืงื ืืจืืืช ืืช ืืืืื ืืื, ืืื ืื ืืคืืชื ืืช ืืืืืจ ืชืืื ืืคืฉืจ ืืืจืื ืืืืชืืื ืืืืฉ.
1 419
clearInterval(timer);
});
return {
data,
inc,
};
}
};
</script>
<template>
<div>
<button @click="inc">{{data.value}}</button>
</div>
</template>
ืืืงืื ืื ืืกืคืืจืช ืฉืืจืืช ืืฆืื ื ืื ืืืื ืฉืื ื ืืื ืืงืื ืื ื ืจืื ืืืจืช, ืืคืืืช ืืืงืืช:
1. ืืคืชื props ืื ืืฉืชื ื, ืืื ืื ืืืคืชืืืช ืืืืจืื ืืืืืืงื ืืืืืฆื ืืืืืคื ืืืคืชื ืืื ืืฉื setup.
2. ืืคืื ืงืฆืื setup ืืงืืืช ืืช ื props ืืชืืจ ืคืจืืืจ ืืืืฆืขืช ืืช ืื ืื ืฉืืืคืชืืืช ืืืืืืืื ืืืืืจืกื ืืงืืืืช ืืื ืขืืฉืื.
3. ืืฉืืื ืืืืืืจ ืืช data ืฉืขืืื ื ืฉืืจ ืืืืืข ืืจืืืงืืืื ืืฉืชืืฉืชื ืืคืื ืงืฆืื ืฉื ืืื ืฉื ืงืจืืช reactive. ืืื ืขืืฉืื ืื ืื ื ืืืืืื ืืฉืืืจ ืืกืคืจ ืืืืืงืื data ืืืืชื ืงืืืคืื ื ืื.
4. ืืคืื ืงืฆืื inc ืืืืื ืืืฉืช ืืืฉืชื ืื ืืจืืืงืืืืืื ืฉื data ืืืืืช JavaScript Closures.
5. ืืืคืชืืืช mounted ื unmounted ืืคืื ืืคืื ืงืฆืืืช onMounted ื onUnmounted, ืื ืืืช ืืื ืืงืืืช ืืงืื ืคืื ืงืฆืื. ืฉืื ืื ืืืืื ืื ืขืืฉืื ืื ืื ื ืืืืืื ืืืืกืืฃ ืืื ืงืืื ืืืคืื ืืื ืืืจืืข (ืืืืืจ ืืคืฉืจ ืืงืจืื ื onMounted ืืื ืคืขืืื ืขื ืืืจืื ืฉืื ืื ืฉืฆืจืื ืืขืฉืืช). ืื ืืื ืืืืฉื ืืืฉืชื ืื ืืฉืืชืคืื ื ืขืฉืืช ืืืืฆืขืืช JavaScript Closures ืืื ืฆืจืื ืืช this.
6. ืคืื ืงืฆืืืช setup ืืืืืจื ืืช ืืืชื ืืืืืงื "ืืืง" ืฉืืืืจืกื ืืงืืืืช ืืื ืืฆืจ ืืฉืืืื ื ืฉืืืื ืืช ืืืืฉืง ืืืฉืช ืืื ืืืืืข ืืืขื ืืื ืืงืืืคืื ื ืื. ืืคืขื ืื ืื ื ืืืืืืื ืื ืืืื ืก ืื ืื ืืืื ืก ืืืืืืงื ืื. ืืืืืงื ืืืืง ืฉืื ืื ื ืืืืืจืื ืืื ืื ืฉืงืื ืืืืคืืืื ืืืื ืืืฉืช ืืืื ืืืื ืฉืืืืจ ืืื ืงืื ืืืืคืืืื ืืงืื ืืกืงืจืืคื.
## ืืืจืกื 3 - setup script
ืืืื ื ืฉื Composition API ืืืคืฉืจ ืืืชืจ ืฉืืืื ืขื ืืงืืืคืื ื ืื ืืืฉืืืื ืืืชืื ืืงืืืกื. ืื ื ืจืฆื ืืงืืช ืืืง ืืกืืื ืืืชื ืืืืช ืืืฉืชืฃ ืืืชื ืืื ืงืืืคืื ื ืืืช ืื ืื ืฉืฆืจืื ืืขืฉืืช ืืื ืืืืฆืื ืืช ืืืืง ืืื ืืคืื ืงืฆืื ื ืคืจืืช. ืืืืืื ืื ืืืืชื ืจืืฆื ืืงืืช ืืช ืืจืขืืื ืฉื ืฉืขืื ืฉืืืจืื 1 ืืืืืฉืื ืขืจื ืืืืชื ืืืื ืืืชืื ืคืื ืงืฆืื ืืืืช:
function withCountdown(start) {
const ticks = ref(start);
let timer;
onMounted(() => {
timer = setInterval(() => {
ticks.value -= 1;
}, 1000);
});
onUnmounted(() => {
clearInterval(timer);
});
return ticks;
}
ืืื ืงืืืคืื ื ืื ืืืชื ืืืืื ืืืฉืชืืฉ ืืฉืขืื ืืืืคื ืืื:
export default {
setup() {
const ticks = withCountdown(100);
return { ticks };
}
};
ืฉืืชืืฃ ืงืื ืืื ืงืืืคืื ื ืืืช ืืืคื ืืจืื ืืืชืจ ืงื ืืฉืืฉ ืื ื Composition API. ืืื ืืฆื ืืฉื ื ืฉื ืืืืืข ืืื ืฉืืืชืื ืืืืฆืขืืช ืืืืืงื ืืื ืงืฆืช ืืกืืจืื.
ืืฉืื ืืื ืืืืืืืฆืื ืืื ืืืืกืืฃ ืื ืื ืื ืืงืืืคืืืืจ ืฉื ืืื ืืื ืฉืื ื ืืืชืื ืจืง ืืช ืืืืงืื ืืืขื ืืื ืื ืืืื ืืฉืืื ืืืจ ืืื ืืช ืื ืืฉืืจ. ืืงืื ืืืืจืกื ืืฉืืืฉืืช ื ืจืื ืื:
<script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue';
const props = defineProps({
start: Number,
step: Number,
});
const data = reactive({ value: props.start });
function inc() {
console.log(data);
data.value += props.step;
}
let timer;
onMounted(() => {
timer = setInterval(() => {
data.value -= 1;
}, 1000);
});
onUnmounted(() => {
clearInterval(timer);
});
</script>
<template>
<div>
<button @click="inc">{{data.value}}</button>
</div>
</template>
ืคื ืืืจ ืจืืืื ืืืกืืื ืืืกืคืจ ืฉืืจืืช ืืงืื ืืชืืื ืืช ืืืืขืชื ืื ืืืืจืกื ืืื ื ืงืื:
1. ืืงืื ืืืื ืฉืื ื ืืืชื ืืืืคื ืืืืืืื ืืืื ืก ืืชืื ืคืื ืงืฆืืืช setup.
2. ืืืงืจื defineProps ืืืืืฃ ืืช ืืืคืชื props ืืืช ืืขืืจืช ืืืฉืชื ื props ืืคืื ืงืฆืื ืฉืืืืืจื ื setup.
3. ืืื ืฆืืจื ืืืืืืจ ืืืืืงื ืืืืืืืจ ืืืชื, ืื ืืงืจื ืืืืืืืืช.
4. ืืื ืฆืืจื ืืืืืจ ืืืื ืืฉืชื ืื ืืฉืืจื ืืชืืจ ืฉืืืช ืฉื ืืืชื ืืืืืงื ืืืง. ืืงืืืคืืืืจ ืืืืจ ืืช ืื ืืืฉืชื ืื ืฉืืืืจืชื ื Scope ืืืืฆืื ื ืืืืชืจ ืฉื ืืกืงืจืืคื ืืืื ื ืืช ืืืืืืงื ืืื.
ืืืืื ืช ืืืืืช ืืคืืฆ'ืจืื ืงืื ืืื ืฉืงืื ืืงืื ืืืืืจืกื ืืฉื ืื, ืืื ืืืืื ืช ืชืืืืจ ืืืืกืืื ื Boilerplate ืืืืจ ืฉืื ื ืืงืื ืงืื ืืืชืจ ืงืฆืจ ืฉืืืชืจ ื ืขืื ืืืชืื, ืืงืจืื ืืืชืืืง.
ืืฉืืื ืฉืืืื ืงื ืืฉืืง ืขื ืืงืื ืืขืืืชื ืืช ืฉืืืฉืช ืืืืจืกืืืช ืฉื ืืงืืืคืื ื ืื ืืืืืจ ืืื. ืืืืื ืื ืืฉืืคื, ืืืจืืฅ ืืืืขืื ืื ืืื ืฉืชืจืฆื:
https://github.com/ynonp/vue-component-evolution.1 419
# ืชืจืืืืื Vue: ืฉืืืฉ ืืจืืื ืืืชืื ืงืืืคืื ื ืื
ืืืขืืจ ื Composition API ืืืืจืื ื script setup ืขืืื ืืืืืช ืืืืื ืืฉืืชืืืืื ืืขืืื ื Vue: ืืืืืืืช ืืืื ืืจื ื ืืืืืืช ืืืืคืืข ืืื ืืื ืืฉืืืฉืช ืืืชืืืื ืืืคืืื ืืชืืขืื ืืจืฉืื ืื ืืืจ ืืืืฆื ืืจืืจื. ืื ืืืฆื ืฉืืฆื ืืื ืืฉืืชืืืืื ืืืืื ืืช ืืคืจืืืืืืจืง ืื ืื ื ืฆืจืืืื ืืืืืจ ืืชืื ืืกืืื, ืืื ืืืืจื ืืืจื ืืืชืืื ืื ืื ื ืืคืชื ืืืืืจ ืืช ืฉื ื ืืืชืืืื ืืืืจืื ืืืื ืื ื ืืืื ืงืฉื.
ืืืืืง ืืฉืืื ืื ืื ื ืจืืฆื ืืืฆืืข ืชืจืืืืื ืืืืจ ืืื ืฉืืืฉืช ืืืชืืืื - ืืืืฉื ืืคืืกื ืชืืฆืื ืืช ืืืชื ืงืืืคืื ื ืื ืืชืืื ืฉืืืฉ ืคืขืืื, ืื ืคืขื ืืืืฉื ืืืจืช, ืืื ืชืืืื ืืจืืืช ืืช ืืืืื ืืืฉืื ื ืืื ืืืืฉืืช ืืื ื ืืงืืื ืฉืื ืืืจืืืฉ ืืืชืจ ืื ืื ืืชืจืื ืืื ืืื.
## ืืืฉื 1 ืืื ืงืืืกื
ืืฉืืื ืืชืจืืืืื ืฉืื ืื ื ืจืืฆื ืืืชืื ืงืืืคืื ื ืื ืฉื Counter ืฉืืฆืืื ืืคืชืืจ ืืขืืื ืืกืคืจ ืืคืขืืื ืฉืืืฆื ืขืืื, ืืืืืืงื ืื ืฉืขืื ืื ืฉืื ืฉื ืื ืฉืขืืืจืช ืืืืคื ืืืืืืื ืืจื 1 ืืืขืจื. ืชืืืื ืืืจืื ืืื ืืืืกืืฃ ืืคืฉืจืืช ืืงืื ืืืฆืื ื ืืืขืืืจ ืืช ืืขืจื ืืจืืฉืื ื ืฉื ื Counter ืืืืื ืืืืืื ืืช ืืขืจื ืืื ืืืืฆื ืืชืืจ Properties.
ืืืชืื ืืงืืืกื ืฉื Vue ืื ื ืืืชื ืืช ืืงืืืคืื ื ืื ืืงืืืฅ ืขื ืกืืืืช Vue. ืืืืง ืืกืงืจืืคื ืืงืืืฅ ืฆืจืื ืืืืฆื ืืืืืงื ืฉืืืื ื Vue ืืื ืืืฆืืจ ืืช ืืงืืืคืื ื ืื ืืืืฆืขืืช ืืชืืืืช ืขื ืฉืืืช ืืืืืืื ืฉ Vue ืืืืข ืืืกืชืื ืขืืืื. ืื ื ืืงืื:
<script>
export default {
data() {
return {
value: this.start,
}
},
props: {
start: Number,
step: Number,
},
methods: {
inc() {
this.value += this.step;
}
},
mounted() {
this.timer = setInterval(() => {
this.value -= 1;
}, 1000);
},
unmounted() {
clearInterval(this.timer);
}
};
</script>
<template>
<div>
<button @click="inc">{{value}}</button>
</div>
</template>
<style scoped>
</style>
ืื ืืืคืชืืืช ืืืืืืงื ืื ืฉืืืช ืฉืืืจืื ืฉื Vue:
1. ืืืคืชื data ืืืืืจ ืืฉืชื ืื ืจืืืงืืืืืื ืฉืงืื ืืืืคืืืื ืืืื ืืืฉืชืืฉ ืืื.
2. ืืืคืชื props ืืืืืจ ืืืื ืืืคืืื ืื ืืืืขื ืืืืืฅ ืืชืืจ Properties.
3. ืืืคืชื methods ืืืืืจ ืคืื ืงืฆืืืช ืฉืงืื ืืืืคืืืื ืืืื ืืืฉืชืืฉ ืืื.
4. ืืืคืชืืืช mounted, unmounted ื ืงืจืืื Lifecycle Events ืืื ืืืคืฉืจืื ืืืจืืฅ ืงืื ืืืืืืืืช ืืฉืงืืจื ืืฉืื - ืืืฉื ืืฉืงืืืคืื ื ืื ื ืื ืกืช ืืืกื ืื ืืืฆืืช ืืืืกื (ืืืฉ ืขืื ืืจืื ืืื).
ืืืื ืฉืื ืคืขืืื ื ืืชืืช ืืคืื ืงืฆืื ื ืคืจืืช, ืืืืคื ืืืืืืื ืืืฉืชื ื ืืืืืื this ืืชืืืก ืืืืืืงื Vue ืฉ"ืืืื" ืืช ืื ืืืืฉื ืืงืืืคืื ื ืื. ืืคืื ืงืฆืื inc ืืฉืชืืฉืชื ื this.value ืืื ืืืฉืช ืืืฉืชื ื value ืฉืืืืืจ ืืชืื data. ืืคืื ืงืฆืื unmounted ืืฉืชืืฉืชื ื this.timer ืฉืืืืืจ ืืคืื ืงืฆืื mounted. ืืงืืฆืืจ ืื ืืืชืืืืช ืืืืืืืืช ืืืืืืช ืืฉืืืจ ืืืืข ืขื ืืืชื this. ืื ืืื ืขืฆืื ืืฉืืืจ ืขืืื ืืืืข, ืืืฉื ืืื ืืฉืืืจ ืขืืื ืืช ืื ืืฉืืืช ืืืืืืงื data ืืืช ืื ื Properties ืฉืขืืจื ืืงืืืคืื ื ืื.
## ืืืจืกื 2 - ืืขืืจ ื Composition API
ืืขืื ืืืช ืฉืงื ืืจืืืช ืขื ืืืชืื ืืงืืืกื ืืื ืฉืฆืจืื ืื ืื ืื ืืืืื ืืื ืืฉืชืฃ "ืืืืืงื ืืงืฉืืจื ื State" ืืื ืืกืคืจ ืงืืืคืื ื ืืืช. ืืืืืงื ืืงืฉืืจื ืืกืืืื ืื ืืืืืงื ืฉืืืจืืืช ืื ืืคืื ืงืฆืืืช, ืื ืืฉืืืช ืืืืข ื data ืืื ืืืืจืืขื ืืืืืจ ืืืื. ืืืืืื ืื ืืืืชื ืจืืฆื ืืงืืช ืืช ืืจืขืืื ืฉื ืืื ืืจืืื ืฉืื ืฉื ืื ืืืจืื ืขืจื ืฉื ืืฉืชื ื ืืืื ืืืืฉืชืืฉ ืื ืืงืืืคืื ื ืื ื ืืกืคืช, ืื ืืืชืื ืืงืืืกื ืื ืืจืืจ ืืื ืื ื ืืืื ืืงืืช ืืช ืืืืง ืืื ืืืชื ืืืืช ืฉื ืืงืืืคืื ื ืื ืืืืฆื ืืืงืืืคืื ื ืื ืืืืฉืชืืฉ ืื ืืืงืื ืืืจ.
ืืื ืื ืืื ื ืืจืืื ืืืชืืืื ืขื ืืกืืคืืจ ืืื ืืืืจื ืืฉื ืื ืืื ืืืจื ืฉืืชืืืฆืื ืืชืืจ ืคืืชืจืื ืืืืืฅ ื ืงืจืืช Composition API. ืืจืขืืื ืฉืื ืืื ืืชืช ืื ื ืืืชืจ ืฉืืืื ืขื ืื ืฉืงืืจื ืืืฆืืจืช ืืงืืืคืื ื ืื ืืืืคืื ืืช ืื ืืืคืชืืืช ืืืืืืืื ืฉืจืืื ื ืืคืื ืงืฆืืืช ืฉืื ืื ื ืฆืจืืืื ืืงืจืื ืืื ืืฆืืจื ืืืืื. ื ืงืืืช ืืื ืืกื ืฉืื ื ืืงืืืคืื ื ืื ืชืืื ืขืืฉืื ืคืื ืงืฆืื ืืืืืช ืืฉื setup.
ืื ื Composition API ืขืืืื ืืฉืชืืฉืื ืืืคืชื ืืืืื ืืฉื props ืืฉืืื ืืืืืืจ ืืช ืืืืคืืื ืื ืฉืื ืื ื ืืงืืืื ืืืืืฅ, ืืื ืื ืฉืืจ ืืืชื ืืืืช ื ืื ืกืช ืืชืื ืงืื ืฉืื ืื ื ืืจืืฆืื ืืคืื ืงืฆืื ืฉื ืฉืืจืช ืืืคืชื ืืืืืื setup.
ืืงืื ื ืจืื ืื:
<script>
import { ref, reactive, onMounted, onUnmounted } from 'vue';
export default {
props: {
start: Number,
step: Number,
},
setup(props) {
const data = reactive({ value: props.start });
const inc = function() {
console.log(data);
data.value += props.step;
}
let timer;
onMounted(() => {
timer = setInterval(() => {
data.value -= 1;
}, 1000);
});
onUnmounted(() => {1 419
# ืืื ืืืื ืืฆืืืช
ืื ืืช ืืืจ ืืื ืืืื ืืฆืืืช ืืื ืฉืืช ืขืืฉื,
ืื ืืืจ ืืืื ืื ืื ืฉืฆืจืื ืืฉืื ืืชืืื ืฉืื ืืืืข ืืฉืืื ืืืชื,
ืื ืืช ืืืืืื ืฉืืืืื ืืืคื ืืื ืืชืงืืืช ืืืื,
ืืืขืืื ืืืขืืืื ืืชืืืื
ืื ืื ื ืืชืงืฉื ืืืืืื ืฉืื ืชืฆืืืื ืืืฆืื ืืคืืืช ืขืื ืืงืื ืืื ืฉืืงืื ืืืชื,
ืืงืื ืฉืื ืืืื ืืืจ ืื ืชืืื ืืื ืืืื ืืฆืืืช,
ืืงืื ืฉืื ืืืื ืืฉืืื ืื ืืืจืช,
ืืืืื ืืื ืฉืื ืืืื ืืืจืื,
ืืืืื ืืขืืืื ืชืืื ืฉืื ื,
ืืงืื ืขื ืื ืืื ืืืฉ ืฉืืืื ืืื ืืื ืืฆืืืช ืืฉืืคืฉืจ ืืืื ืืืืื ืืื ื ืืืจืื ืืืฉืื. ืื ืืกืืฃ ืืืื, ืืชืืืฉื ืืืืื ืฉื ืืืืฉื ืื ืืืืขื ืืืคืชืืจ ืขืื ืชืงืื, ืืื ืืืืืืช ืืขืืืื ืช, ืืืืืื ืืื ืืงืืช ืืืฉืืช ืืืืชืืืฉื ืฉืืฉ ืขืื ืืื ืืืชืคืชื.
1 419
# ืื ืืขืฉืืช ืืฉืืืืืช ืฉืืฉ ืืจื ืืืชืจ ืืืื?
ืืชืฉืืื ืืงืื- ืืฉื ืืช.
ืืื ืฉืื ืชืืจืืฅ ืืืืฉืื ืืืฉืชืืฉ ื componentDidUpdate, componentWillUnmount ื componentDidMount ืืจืืืงื ืื ืืชื ืืืืข ืืื ืืืฉืชืืฉ ื useEffect.
ืืืื ืฉืื ืชืืจืืฅ ืืืืฉืื ืืืชืื var ืืืจื ืฉืืชื ืืืืข ืขื let ื const.
ืืขืืืื-
ืืืืื ืืืืืชืืื ืงืฆืช ืืืชืจ ืืืชืืจืื. ืื ืืคืฉืจ ืืจืืฅ ืขื ืคืจืืืงื ืฉืื ืืืืชืืื ืืฉื ืืช ืืช ืื ืืืงืืืืช ืฉืืชืื ืืื var ื let ืื const, ืื ืืคืจืืืงื ืืกืคืืง ืืืื ืื ื ืฆื ืืื. ืื ืืคืฉืจ ืืืคืื ืืช ืื ืืงืืืคืื ื ืืืช ืจืืืงื ืืืชืื ืงืืืกืื ืืืชืื ืคืื ืงืฆืืืช ื Hooks ืืืื ืืื.
ืืืืฆื ืืืชืจ ืืจืืืืช ืืื ืืขืฉืืช ืืช ืืืชืืืืช ืจืง ืขื ืงืื ืืืฉ ืฉืืืชืืื, ืืื ืืื ืื ืชืืื ืืฉืืื. ืืคืขืืื ื ืื ืืงืื ืืืฉ ืืขืฉืืช ืฉืืืืฉ ืืืืจ ืืงืื ืืฉื, ืืืืืืช ืืขื ืืื ืฆืจืื ืืขืืื ืืื ืฉืขืืื ืคืขื. ืืืคืขืืื ืงืื ืืืฉ ืืฉืชืืฉ ื Data ืืฉื ืื ืฆืจืื ืืืืืช ืขืงืื ืขื ืฆืืจืช ืขืืืื ืืฉื ื, ืืื ืฉืื ืื ืืคืฉืจ ืืฉื ืืช ืืืชืงื ืืขืืืืช.
ืืืงืื ืืืืื ืืช ืืื ืื ืคืขื ืฉืืืืืชื ืืจื ืืืื ืืืชืจ ืืืืชืขืฆืื ืฉืื ืืคืฉืจ ืืืืฉื ืืืชื, ืืืื ืืื ืืช ืืขืฆืืื ืืขืจืืช ืืืื ืชืืืืงื ืืคืจืืืงื ืฉืชืขืืืจ ืืฆื ืืื ืื ืืืชืืฉ ืืช ืขืฆืืื ืืื ืืฆื ืฉื ื ืื ืชืขืืื ืฉืืชืื ืืชื ืืขื ืงืืืื. ืืืืืื ืืคืฉืจ ืืืืืื ืฉ:
1. ืคืขื ืืืืืฉ ืืงืืืฉืื ืืื ืืฉืืจืื ืชืืืืืช.
2. ืคืขื ืืฉืืืข ืืงืืืฉืื ืฉืขืชืืื ื Refactoring ืฉื ืงืื ืืื ืฉืืืื ืงื ืืืชืจ ืืฉืื ืืืชื ืืฉืืืืช ืขืืืื ืืืฉืืช.
3. ืืคื ื ืฉืืชืงื ืื ืืื ืืงืืืฉืื ืฉืขื ืืืชืืืช ืืืืงื ืืืืืืืืช ืฉืืืืืืช ืืช ืืืื ืืื ืืืช ืืชืืงืื. ืื ืื ืืกืคืงื ื ืืฉืขื ืืืืชืจืื ืขื ืืืืืงื.
4. ืื ืืื ืืงืืืฉืื ืจืืข-ืฉืขื ืืงืจืืืช ืืืืจ ืืงืฆืืขื ืืื ืืืืืฉืฃ ืืฉืืืืช ืขืืืื ืืืฉืืช ืืืืืืช ืืืชืจ.
5. ืคืขื ืืจืืขืื ืืืืืื ืืื ืก ืื ืืงืืจืก ืืงืฆืืขื ืืื ืืืืืฉืฃ ืืฉืืืืช ืขืืืื ืืืฉืืช ืืืืืืช ืืืชืจ ืืฆืืจื ืืจืืืืช.
ืืืื ืขืืืื ืืกืืืจืื ืฉืืฉืืืื ืืช ืืืืืื ืืืืชืืงืฆืขืืช ืืชืื ืืืื ืืื ืื ืืืคืชื ืืืชืคืชืืืช ืืงืฆืืขืืช ืฉืื ืชืืืื ืืืืืืืฆืื - ืืื ืฉืืืคืฉืจื ืืื ืืืคืจืืืงื ืืืืช ืืืืื ืืืืจื ืืื.
1 419
# ืืื ืืืืืื
ืืืื ืืื, ืืฉ HDMI.
ืืืช ืืืชื ืืืืฉืื ืืจืืฉืื ื ืฉืื ืืฉืืืขืชื ืืืืชืช ืืืืจืื ืขื ืืืืฉื ืืืชืื HDMI ืืืื. ื ืืื HDMI ืื ืืืจ ืื ืกืื ืืจื ืืื ืขืืืื ืืฉ ืงืืจืืช ืขื ืืืืืจื VGA ืืืืืจ ืืืืจืื ืฉืืชื ืจืืฆื ืื ืืืืืข ืืงืืจืก ืืื ืืืชืื ืื ืืื.
ืืฆื ืฉื ื ืื ืืงื ืจืง ืืื ืฉื ืืืช ืืืจื ืฉืืืืจืชื ืืช ืืืืฉื ืืฉืืื ืืืื ืืช ืืืฆื ืจืื. ืืืงืจื ืขื ื HDMI ืืชืืื ืืืืื.
ื IT ืืืืงื ืืื ืจืืืขืื ืืืืจื ืฉืืืจ ืชืงืืคื ืฉืืฉ ืืื ืืขืืืช ืขื ืืืงืจื ืืื ืืืืืืฆื ืืขืืืจ ืืืชื. ืขืืจื ื ืจืง ืืฉืืื ืืืืืช ืฉืื ืืืืชื ืืืืฉื ืืืงืจื ืืืืื ืืื ื ืคื ืื ืืืกืืืื ืฉืืืื ืืืขืื ืืืื ืืืืืจืืช ืืืืฉื. ืืืจืืช ื Refresh Rate ื 30 ืืจืฅ ืชืืงื ื ืืช ืืื, ืืื ืขืืฉืื ืืืจ ืืืื ื ืืืืชื ืืฉื ืื.
ืื ืืฆืขื ืืื? ืืืืจืื ืืืงืจื ืืจืืฉืื ืื ื ืฉืืจืื?
ื Debugging ืฉื ืืืงืจื ืื ืืื ืฉืื ื ืืืจืื ืกืฆืื ืืช Debugging ืฉืื ื ืขืืืจ ืืชืืจ ืืคืชื: ืื ืกืื ืืฉืื ืงืื, ืืื ืขืื ืืื, ืืื ืขืื ืืื ืขื ืฉืืกืืฃ ืืืืขืื ืืืืจืกื ืฉื ืืืขืจืืช ืฉืขืืืืช. ืืื ืขืืืืช ืื ืื ืืกืคืืง.
ืืื ืืืืืื ืืงืื ืืืืจ ืฉืื ืื ื ืจืืฆืื ืืืื ืืก ืืืขืจืืช ืจืง ืืช ืื ืฉืืืขืจืืช ืฆืจืืื. ืืื ืกืช "ื ืืกืืืื" ืฉืื ืืืืช ืขืืจื ืขืืืื ืืืืกืืฃ ืขืื ืืืืื ืืขืื ืกืืืื ืืงืื, ืฉืืืจื ืื ืืืื ืื ื ืงืฉื ืืืืคืืจ ืืื. ืื ืงืืื ืฉืืืขืจืืช ืขืืืืช ืืื ื ื ืงืืืช ืืกืืื. ืืืจืื ืฆืจืื ืืืืืช ืื ืืืืืง ืงืจื ืฉื, ืืื ืืื ืื ืขืืื ืงืืื ืืืืื ืฉืื ืื ืืืืืง ืืื ืื ืฉืืืจืื ืืื ืฉืืงืื ืืชืืื ืืขืืื, ืืืกืืฃ ืืืืฉืื ืืืืคืฉ ืืช ืืืจื ืืคืฉืืื ืืืืืืืงืช ืืืืชืจ ืืืฆืข ืืช ืืืชื ืฉืื ืื.
ืขืืืื ืืืืืงืช ืืื ืืืืืคืืื ืื ืฉื ืืชืื ืชืื ืืืืื ืืืื ืืืืืื ืืงืื ืืื ืืืคืืื ืืื ืฉื ืืขืจืืืช ืืืืืช. ืืื ืฉื ื ืืืจืื ืฉืื ืฉืืื ืืืชืคืฉืจ ืขืืืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
