ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-230 kunlar
Postlar arxiv
1 419
# ืืืค JavaScript: ืขืืืื ืคืจืืืจืื ืฉื ืฉืืจืช ืืชืืืช
ืืชืืืช ืืื ืืจื ื ืืืืื ืืืืื ืคืจืืืจืื ืืืจื ืกืืื ืฉืืื ืฉืืืืขืื ืืคืืจืื ืฉื ืฉื ืืคืจืืืจ ืืื ืกืืื ืฉืืื ืืื ืืขืจื ืฉืื - ืืืฉื ืืืชืืืช ืืืื ืืฉ ืฉื ื ืคืจืืืจืื ืืฉืืืช foo ื bar ืขื ืืขืจืืื 10 ื 20:
http://www.tocode.co.il?foo=10&bar=20
ืื ืืชื ืขืืืื ืืฉืชืืฉืื ืืืืืืืื ืจืืืืืจืืื ืื ืคืื ืงืฆืืืช ืืขืจืืืช ืืงืกื ืืื ืืงืื ืืืขืืื ืืช ืืขืจืืื ืฉื ืืืชื ืคืจืืืจืื, ืชืฉืืื ืืฉืืืข ืฉืืืื ืืฉ ืคืืชืจืื ืืืฉ ืฉืขืืื ืืจืื ืืืคืืคื ืื ืื ืงืจื URLSearchParams. ืืฉืืื ืืืฉืชืืฉ ืื ืื ื ืืืฆืจ ืืืืืงื URL ืืืืชืืืช, ืืื ืงืืจื ืืคืื ืงืฆืื searchParams ืฉื ืืืชื ืืืืืงื. ืืฉืืฉ ืื ืืื searchParams ืื ื ืืืื ืืืคืขืื ืืช ืืคืื ืงืฆืืืช ืฉืื ืืื ืืงืจืื ืืืขืืื ืืช ืืฉืชื ื ืืืืคืืฉ. ืืคืื ืงืฆืืืช ืืืขื ืืื ืืช ืื:
1. ืคืื ืงืฆืืืช get ืฉืืงืืืช ืฉื ืฉื ืคืจืืืจ ืืืืืืจื ืืช ืืขืจื ืืจืืฉืื ืฉืืงืืฉืจ ืืืื
2. ืคืื ืงืฆืืืช append ืฉืืืกืืคื ืขืจื ืืืฉ ืืคืจืืืจ (ืืืืืื ืืืืืช ืืื ืืืคืขืื ืฉื ืืืชื ืคืจืืืจ, ืื ืฉืืื ืื ืืงืจืื ืื ืืื ืคืขืืื ืจืง ืื ืืชื ืืืืช ืฆืจืืืื - ืืืฉื ืืฉืืื ืืืืฆื ืืขืจื).
3. ืคืื ืงืฆืืืช set ืฉืืขืืื ืช ืขืจื ืฉื ืคืจืืืจ ืืืฉืืืจื ืจืง ืืืคืข ืืื ืฉืื.
ืืช ืฉืืจ ืืคืื ืงืฆืืืช ืืคืฉืจ ืืืฆืื ืืชืืขืื ืืื:
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
ืืขืืจืช ืืืชื ืคืื ืงืฆืืืช ืื ื ืืืื ืืฉืืืฃ ืืืืืคืืก ืืช ืืขืจืืื ืฉื foo ื bar ืืืืชืืืช ืืงืืืืช:
const url = new URL("http://www.tocode.co.il?foo=10&bar=20");
> url.searchParams.get('foo')
'10'
> url.searchParams.get('bar')
'20'
ืื ืืขืืื ืืช ืืื ืืขืจืืื, ืืืืกืืฃ ืคืจืืืจ ืืืฉ ืืืงืื ืืช ืืืชืืืช ืืืขืืืื ืช:
> url.searchParams.set('foo', 'new value')
> url.searchParams.set('newKey', 12)
> url.toString()
'http://www.tocode.co.il/?foo=new+value&bar=20&newKey=12'1 419
# ืืืจื ืืฉื ืื
ืืฉืืืืืื ืืื ืืืืืื ืืืฉื ืืคืขื ืืจืืฉืื ื ืื ืืื ืืืืขืืช ืืื ืืืคืฉ "ืืื ืขืืฉืื ืืืจืื". ืืจืืข ืืื ืื ืืขื ืืื ืืืชื ืืืขืช ืฉืืฉ 3 ืืจืืื ืืืืืืจ ืคืื ืงืฆืื ืื 5 ืืจืืื ืืืืืืจ ืืฉืชื ื. ืืืจื ืืฉื ืื ืจืง ืชืืืื ืืืชื ืืืชืจ, ืื ืขืื ืื ืืื ืชื ืืช ืืืจื ืืจืืฉืื ื.
ืืืขืื ืืชืืืื ืืฉืืืจื ืฉืืืื ื ืืช ืืืจื ืืจืืฉืื ื ืื ืื ื ืขืืฆืจืื ืืืืฉืืื ืฉืื ืืืจื ืืื "ืคืฉืืื", ืืื "ืืืื", ืืื "ืืื ืืืืืืืืืช" ืื ืืื "ืืืืจื" ืืขืฉืืช ืืืจืื. ืฉืื ืืื ืืืจืืื ืฉืืื ืืืื ืืช ืื ืืฆื ืฉืืืืชื ืืช ืืืจื ืืืกืืืืช ืืืืช, ืืื ืืืชื ืื ืกืืื ืืืื ืืืื ืืืื ืืืืฉืื ืืืฉืชืืฉ ืื.
ืืื ืื ืื ื ืืชืืืืื ืืืฆืืืง ืืืืจื ืืืืจืืช ืืื ืืืืืืืช, ืืืฉื "ืืฆืื ื ืืืชืืื ืืช ืืืืฆืจ ืืคืจืืืืืืจืง X ืื ืืื ืืื ืงื ืืืืืื", ืื "ืื ืื ื ืื ืืฉืชืืฉืื ืืืื Y ืื ืื ืจืง ืืื ืืืชื ื", ืืื "ื ืืื ืฉืืืื ืืืขื ืื ืฉืฉืืื Z ื ืืชื ืช ืืืฆืืขืื ืืืชืจ ืืืืื, ืืื ืืฉืืื ืืืืฆืจ ืฉืื ื ืฉืืื X ืืกืคืืง ืืืื". ืืื ืืืื ืืืืชื ืฉืืืื ืืืืืจ ืื ืืช ืืืจืืื ืืืืจืืช, ืืื ืืจืืข ืืืชืืฉื ืืืืฆืจ, ืืชืงืืืช, ืืกืืจื ืืขืืืคืืืืช ืืฉืืจ ืืืืืืฆืื ืฉื ืืขืืื, ืื ืขืืฉืื ืืืืื ืขืื ืืจื ืืขืฉืืช ืืืืืง ืืช ืืืชื ืืืจ? ืื ืืื ืขื ืืืื?
ืืืื. ืืื ืืฉ ืขืื ืืคืฉืจืืืืช-
ืืืื ืื ืื ืืืงื ืื ืื ืืจืื ืืื, ืื ืืืจื ืฉืืืืจืื ืืจื ืืืช ืืืชืจ ืงื ืืืืื ืืจืืื ื ืืกืคืืช?
ืืืื ืืืจื ืืฉื ืื ืืืืช ืืืชืจ ืืืื?
ืืืื ืืืืจืืช ืขื ืขืื ืืจื ืชืขืืืจ ืื ืืืืื ืืื ืืืชืจ ืืช ืืงืื ืฉื ืืืจื ืืจืืฉืื ื?
ืืืื ืืืืชื ืจืืข ืฉื ืืชืืื ืืืืช ืืืจื ืืจืืฉืื ื ืืืชื ืืืื ืืืชืจ ืขืืืจื, ืืื ืื ืื ืืืืจ ืฉืืื ืชืืฉืืจ ืืืืช ืืชืืื. ืืืืืง ืืจืืข, ืืืชืืฉื ืืืืฆืจ, ืืชืงืืืช ืืืกืืจื ืืขืืืคืืืืช, ืืืจื ืืฉื ืื ืืื ืืืจื ืงืืืื.
1 419
ืืขืืช ืืืื ืืืจืืช ืฉืคืืืช ืืืจืืื ืืคืฉืจ ืืจืืืช ืืงืื ืืื:
function TitleEditor() {
const [title, setTitle] = useState(document.title);
useEffect(() => {
document.title = title;
}, [title]);
function handleChange(e) {
setTitle(e.target.value);
}
return (
<input type="text" value={title} onChange={handleChange} />
);
}
ืื ืงืืืคืื ื ืื ืฉืืฆืืื ืชืืืช ืืงืกื, ืืื ืฉืื ืื ืฉื ืืืงืกื ืืชืืื ืื ืืขืืื ืืช ื title ืฉื ืืขืืื. ืืงืื ืขืืื ืืื ืืฉืืืืฉ ืืืคืงื ืืื ืฆืืจื: ืืื ืคื ืืืืช ืกืื ืืจืื ืืื ืืฉืื ืืืฆืื ื ืืืฉืชื ื ืจืืืงื, ืืื ืคืื ืงืฆืืืช ื ืืงืื ืืืคืงื ืื ืืื ืฉืื ืืงืจื ื ืืง ืื ื ืจืืฅ ืืช ืืืคืงื ืืื ืคืขืืื ืืื ืืชืื'ืก ืื ืืจืฆื ื ืืกืคืช ืฉื ืืืคืงื ืืฉื title ืืืจ ืืชืืื ืืืฉืชื ื ืืกืืืื ืืื ืคืฉืื ืืืืชืจืช.
ืืืงืื ืื ืืคืฉืจ ืืืืชืจ ืขื ืืืคืงื ืืืืชืื ืืช ืืงืืืคืื ื ืื ืืฆืืจื ืืืื ืืืืืชืจ ืืขืืื:
function TitleEditor() {
const [title, setTitle] = useState(document.title);
function handleChange(e) {
setTitle(e.target.value);
document.title = e.target.value;
}
return (
<input type="text" value={title} onChange={handleChange} />
);
}
ืืงืืื ืฉืืคืืกื ืืื ืืขืืืจ ืืื ืืืขืืช ืคืืืช ืขื useEffect ืืืืฉืื ืขืืื ืืื ืฉืืื - ืื ืื ืื ืกืื ืืจืื ืืื ืงืื ืจืืืงื ืืืฆื ืขื ืืื ืื ืืืฆืื ื ืฉืงืืจื ืืืคืืคื. ืืืืืื ืื ื ืชืงืืชื ืืืขืืืืช ื ืืกืคืืช ืืขืืืื ืขื useEffect ืฉืื ืืฉืืชื ืขืืืื ืืื, ืืฉืื ืืฉืืืข ืืชืืืืืช.1 419
}}
>
Click me!
</button>
</div>
)
(ืืชืืื ืื ืืงืืื ืืจืืื ืขื ืืืืืื ืืืืช).
ืืืกืจ ืชืืืื ืืื ืคืื ืงืฆืืืช ืืืคืงื ืืืขืจื ืืชืืืืืช ืืื ืชืงืื ืื ืื ื ืคืืฆื ืฉืืฉ ืคืืืืื ื eslint ืฉืืืื ืืืชื ืืืืืืฅ ืืืื ืืืฉืชืืฉ ืื ืืคืจืืืงื ืฉืืื:
https://www.npmjs.com/package/eslint-plugin-react-hooks.
## ืืืฉืชืืฉ ืืืืืืงื ืืงืื ื ืืืขืจื ืืชืืืืืช
ืืื ืขืืื ื ืืกืฃ ืืืืื ื ืคืืฅ ืขื ืืขืจื ืืชืืืืืช ืงืืจื ืืฉืื ื ืืฉืชืืฉ ืืืืืืงื ืืงืื ื ืืชืื ืืขืจื ืื. ืืืขืื ืืื ืืื ืฉืฉืื ืื ืืฉืื ืคื ืืื ืฉื ืืืืืงื ืื ืืืจื ืืจืืขื ืื ืืืคืงื, ืืืื ื ืืื ืื ื ืฉืืืคืงื ืืกืื ืืจื ืืฉืืขืฆื ืืื ืื. ืื ื ืืืืื ืคืฉืืื ืฉืฆืืืขืช ืืช ืืจืงืข ืฉื ืืคืืกืงื ืืืืื ืจืง ืคืขื ืืืช ืืื ืืจืขื ื ืช ืืช ืืฆืืข ืื ืืคืืกืงื ืืฆืืืจืช ืืืืฉ:
function BadRef() {
const ref = useRef(null);
const [visible, setVisible] = useState(true);
useEffect(() => {
if (ref.current) {
ref.current.style.backgroundColor = 'red';
}
}, [ref]);
return (
<div>
<input type="checkbox" checked={visible} onChange={(e) => setVisible(e.target.checked)} />
{visible && <p ref={ref}>just some text</p>}
</div>
);
}
ืืืชืืงืื ืืื ืคืฉืื:
function BadRef() {
const ref = useRef(null);
const [visible, setVisible] = useState(true);
useEffect(() => {
if (ref.current) {
ref.current.style.backgroundColor = 'red';
}
}, [ref.current]);
return (
<div>
<input type="checkbox" checked={visible} onChange={(e) => setVisible(e.target.checked)} />
{visible && <p ref={ref}>just some text</p>}
</div>
);
}
## ืืฉืืื ืืืืืืจ ืคืื ืงืฆืืืช ื ืืงืื
ืืขืืช ืฉืืืฉืืช ืืจืฉืืื ืืื ืืืชืื ืืคืงื ืืื ืคืื ืงืฆืืืช ื ืืงืื. ืขื ืจืืืงื 18 ืื ืื ืืื ืืืฉ ืืขืืช ืื ืืคืขืืื ืืคื ืืขืจื ืืชืืืืืช ืืื ืืคืฉืจ ืืืขืช ืืชื ืืืคืงื ืืจืืฅ, ืืื ืืื ืืจืืืงื 18 ืื ืื ื ืฆืจืืืื ืืืฉืื ืขื ืืคืงืืื ืืชืืจ ืืฉืื ืฉืืคืฉืจ ืชืืื ืืืกืืจ ืืืืืกืืฃ ืืืชื ืืืืฉ, ืืืกืืจ ืื ื ืืื ืื ืฉืืคืงื ืืจืืฅ ืจืง ืคืขื ืืืช. ืืืฆื ืคืืชืื ืจืืืงื ืืคืืื ืืืืื ืืืชื ื ืืืืืื ื ืืจืืฅ ืืช ืื ืืืคืงืืื ืคืขืืืื ืืื ืืืืื ืฉืืงืื ืฉืื ื ืื ืืกืชืื ืขื ืื.
ืืื ืงืืืคืื ื ืื ืืืืช ืืืจ ืืกืืจ ืืืชืื ืืจืืืงื 18:
function WindowSize(props) {
const [width, setWidth] = useState(window.innerWidth);
const [height, setHeight] = useState(window.innerHeight);
const { updateMs=1000 } = props;
useEffect(() => {
const handleResize = _.debounce(function handleResize() {
setWidth(window.innerWidth);
setHeight(window.innerHeight);
}, updateMs);
window.addEventListener('resize', handleResize);
}, []);
return (
<p>Window Size: {width}x{height}</p>
);
}
ืืคืืื ืฉืืขืจื ืืชืืืืืช ืจืืง, ืขืืืื ืื ืืืืื ืื ื ืฉืืืคืงื ืืจืืฅ ืจืง ืคืขื ืืืช.
## ืืฉืืื ืืชื ืืคืงื ืจืฅ
ืืจืืข ืฉืืฉ ืฉืื ืื ืืืืืืงื ืืืขืจื ืืชืืืืืช, ืืฉืื ืื ืืื ืืืจื ืืจืืืงื ืืจื ืืจ ืืืืฉ ืืช ืืงืืืคืื ื ืื ืืจืง ืืืจื ืืจืื ืืืจ ืืืืฉ ืืืคืขืื ื ืืกืคืช ืฉื useEffect ืจืืืงื ืืืื ืฉืฆืจืื ืืืจืืฅ ืืืืฉ ืืช ืืืคืงื. ืืื ืืคืงื ืืจืืฅ ืชืืื ืืืจื ืืจืื ืืืจ ืฉื ืืขืจื ืฉืืจื ืื.
ื ืชืืื ื ืืืืืื ืืืื:
function EvenOdd() {
const [count, setCount] = useState(0);
const [isEven, setIsEven] = useState(true);
useEffect(() => {
setIsEven(count % 2 === 0);
}, [count]);
return (
<div>
<p>{isEven ? "Even" : "Odd"}</p>
<button onClick={() => setCount(c => c + 1)}>Clicks: {count}</button>
</div>
);
}
ืืงืืืคืื ื ืื ืขืืืืช ืืืฆืืื ืืื ื ืืืืฆืืช ืืืขืืื ืืืงืกื - ืืฉืืืกืคืจ ืืืื ืืืคืืขื ืืืืื Even ืืืฉืื ืืืื ืืืคืืขื ืืืืื Odd.
ืืืขืื ืืื ืืื ืฉืื ืืืืฆื ืขื ืืืคืชืืจ ืืืฆืจืช ืืกืคืจ ืืคืื ืฉื render-ืื. ืืืงืื ืืขืืื ืืช ืืขืจื ืฉื count ืืืจื ืืจ ืืช ืืงืืืคืื ื ืื ืืืืฉ ืืื ืืืฆืื ืืช ืืขืจื ืืืขืืืื, ืื ืื ื ืืขืืื ืื ืงืืื ืื ืืช count, ืืฆืืืื ืืืชื, ืืื ืืขืืื ืื ืืช isEven ืืฉืื ืืจื ืืจืื ืืช ืืงืืืคืื ื ืื.
ื ืฉืื ืื ืื ืฉืืืคืงื ืืื ืืื ืคืื ืงืฆืืืช ื ืืงืื ืืืื ืื "ืืกื ืืจื" ืืฉืชื ื ืจืืืงื ืขื ืืฉืื ืฉื ืืฆื ืืืืฅ ืืื ืืื ืคืฉืื ืืืืจ ืืกื ืืจื ืืื ืฉื ื ืืฉืชื ื ืกืืืื ืืืืชื ืงืืืคืื ื ืื. ืืืงืจื ืืื ืืจืื ืืืชืจ ืืขืื ืืื ืืืฉืชืืฉ ืืืฉืชื ื ืกืืืื ืืืื. ืืคืืื ืื ืืืืืื ืืืฉืชืืฉ ืืืื ืืฉืชื ื ืกืืืื, ืขืืืฃ ืืขืืื ืืืชื ืืื ืืืืชื ืคืื ืงืฆืื ืขื ืืื ืงืจืืืืช ื setState ืืื ืืจื ืืคืงื.1 419
# ืืจืืข ืืขืืืืช ื ืคืืฆืืช ืืฉืืืืฉ ื useEffect
ืืืขืืจ ืืขืืืื ืืฉืืืช ื Hooks ืืื ื ืฉืืื ืืจืืืื ืขืืืจ ืืชืื ืชื ืจืืืงื ืจืืื, ืืืงืืจ ืืืืฅ ืขืืืจ ืืืจืื. ืืื ืืงืจื ืืขืืจ ืื ืืจืฉ ืฉืื ืื ืฉืืืช ืืฉืืื ืืืืืื ืืงืื ืจืืืงื ืฉื ืืชื ืืืจืช. ืืคืื ืงืฆืื useEffect ืืืชื ืื ืจืื ื Hook ืืืกืืื ืืืืื, ืืืืจ ืืืื ืืืืืคื ืืกืคืจ ืคืื ืงืฆืืืช ืืืืืจ ืืืื ืฉืืืืขื ืืคื ืื ืืขืืืื ืขืืื ืงืฆืช ืืืจืช ืืืฉืืืื ืฉื ืืืื. ืืคืืกื ืื ืืกืงืืจ 4 ืืขืืืืช ื ืคืืฆืืช ืืฉืืืืฉ ื useEffect ืฉืื ื ืืงืืื ืฉืืขืืจื ืืื ืืืฉืชืืฉ ืื ื ืืื ืืืืชืื ืงืืืคืื ื ืืืช ืจืืืงื ืืืืืช ืืืชืจ.
## ืืขืืื ืงืื ืืืฉืืื ืืขืืื ืืช ืืขืจื ืืชืืืืืช
ืืขืืช ืืกืคืจ ืืืช ืืื ืคืืฆื ืืืืชืจ ืืขืืืื ืขื useEffect ืืื ืืืื ืืืืื ืืืจื ืืื ืืฉืื ืื ื ืืขืืื ืื ืงืื ืงืืื, ืืืจืืช ืฉืืืืื ืืงืจืืช ืื ืืืชืืืช ืืคืงื ืืืฉ. ืืจืขืืื ืืื ืคืฉืื, ืืื useEffect ืื ืื ื ืฆืจืืืื ืืืขืืืจ ืืชืืจ ืคืจืืืจ ืฉื ื ืืขืจื ืฉื "ืชืืืืืช", ืืืืืจ ืืืจืื ืฉืืฉืื ืืฉืชื ืื ืืฉ ืืืฆืืจ ืืืืฉ ืืช ืืืคืงื. ืืืขืื ืฉืืฉืืขืืื ืื ืงืื ืงืืื ืืจืื ืคืขืืื ืื ืื ื ืฉืืืืื ืืขืืื ืืช ืืขืจื ืืชืืืืืช, ืื ืฉืืืืฆืจ ืืืืื ืฉืืคืขืืื ืงืฉื ืืืชืจ.
ื ืชืืื ื ืืงืืืคืื ื ืื ืืืื ืฉืืฆืืื ืืช ืืืื ืืืืื, ืืื ืืขืืื ืช ืืช ืืชืฆืืื ืื ืคืขื ืฉืืืืื ืืฉืชื ื:
function WindowSize() {
const [width, setWidth] = useState(window.innerWidth);
const [height, setHeight] = useState(window.innerHeight);
useEffect(() => {
const handleResize = _.debounce(function handleResize() {
setWidth(window.innerWidth);
setHeight(window.innerHeight);
}, 1000);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
}
}, []);
return (
<p>Window Size: {width}x{height}</p>
);
}
ืืงืืืคืื ื ืื ืืฉืชืืฉืช ื _.debounce ืืื ืืขืืื ืืช ืืชืฆืืื ืื ืืืชืจ ืืคืขื ืืฉื ืื. ืขืืฉืื ืืืื ื ื ืื ืฉืืืฉืื ืืขืชืื ืจืืฆื ืืืคืื ืืช ืืงืื ืืื ืืืืชืจ ืื ืจื, ืืืงืื ืืืืืฅ ืืช ืืคืจืืืจ ื debounce. ืืงืื ืืืขืืืื ืขื ืืืื ืืืื:
function WindowSize(props) {
const [width, setWidth] = useState(window.innerWidth);
const [height, setHeight] = useState(window.innerHeight);
const { updateMs=1000 } = props;
useEffect(() => {
const handleResize = _.debounce(function handleResize() {
setWidth(window.innerWidth);
setHeight(window.innerHeight);
}, updateMs);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
}
}, []);
return (
<p>Window Size: {width}x{height}</p>
);
}
ืื ื ืืฆืืจ ืืช ืืงืืืคืื ื ืื ืื ืขืืืจ ืื ื props ืืช ืืขืจื ืฉื updateMs ืืื ื ืขืืืจ ืขืจื ืืืจ ืืืงืื, ืืืคืงื ืื ืืชืขืืื ืืชืืื ืืฉืชืืฉ ืืขืจื ืืจืืฉืื ืฉืขืืจ.
ืืืืื ื ืืกืคืช ืืงืฆืช ืืืชืจ ืขืืื ื ืืื ืืงืื ืืื:
function WrongCounter() {
const [clickCount, setClickCount] = React.useState(0)
React.useEffect(() => {
const timeout = setTimeout(() => {
alert(clickCount)
}, 5000)
return () => clearTimeout(timeout)
}, [])
return (
<div>
<h1>Hello!</h1>
<button onClick={() => setClickCount((prevCount) => prevCount + 1)}>
Click me!
</button>
</div>
)}
ืืคืขื ืืืคืงื ืืฉืชืืฉ ืืขืจื ืฉื clickCount ืืื ืืืชื ืืฉืชื ื ืกืืืื ืื ื ืืฆื ืืืขืจื ืืชืืืืืช. ืืื ืืืจื ืฉืืขืืื ืื ืืช ืืขืจื ืืืคืงื ืื ืืฉืชื ื ืื alert ืชืืื ืืืคืืก 0.
ืืขืื ืฉืืืืืื ืืจืืฉืื ื ืื ืื ืฉืฆืจืื ืืฉืืื ืืชืงื ืืช ืืงืื ืืื ืืชืงื ืืช ืืขืจื ืืชืืืืืช. ืืืืืื ืืฉื ืื ืืกืืคืืจ ืืืชืจ ืขืืื ืื ืื ืื ื ืืืกืืฃ ืืช clickCount ืืืขืจื ืืชืืืืืช ืืืืืช ืืฆืืจ ืืืืฉ ืืช ืืืคืงื ืื ืคืขื ืฉืืื ืืฉืชื ื ืื ืืืชื ืืืืช ืฉื ืืงืืืคืื ื ืื ืชืฉืชื ื - ืืืงืื ืืืงืคืืฅ ืืช ื alert ืืืฉ ืฉื ืืืช ืืืจื ืฉืืงืืืคืื ื ืื ื ืื ืกื ืืืกื, ืืื ืชืืงืคืฅ 5 ืฉื ืืืช ืืืจื ืืืืืฆื ืืืืจืื ื ืขื ืืืคืชืืจ. ืืฉืืื ืืฉืืืจ ืขื ืืืชื ืืืืช ืื ื ืืืืงื ืื ืฆืจืื ืืช ืืขืจื ืืชืืืืืช ืจืืง, ืืื ืขืืื ืืืื ืืช ืืชืืืช ื clickCount. ืืฉืืื ืื ืื ื ืืืื ืืฉืืืจ ืืช ืืกืคืจ ืืืืืฆืืช ืืืฉืชื ื Ref:
const [clickCount, setClickCount] = React.useState(0)
const countRef = React.useRef()
React.useEffect(() => {
const timeout = setTimeout(() => {
alert(countRef.current)
}, 5000)
return () => clearTimeout(timeout)
}, [])
return (
<div>
<h1>Hello!</h1>
<button
onClick={() => {
countRef.current = clickCount + 1
setClickCount((prevCount) => prevCount + 1)1 419
# ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื
ืื ืืงืฉืืชื ืืืชืจ ืืื ืืืืช ืกืคืจ ืืชื ืขืืืืื ืืืฉืื ืฉืืจืขืืื ืืช ืืฉ ืขืจื ืจืง ืื ืื ืขืืืืื. ืืฆืืื ืฉืชืงืืื ืืืืื ื ืงืืข ืืคื ืืกืคืจ ืืชืฉืืืืช ืื ืืื ืืช ืฉืืชืืชื, ืืื ืืคื ืืกืคืจ ืืชืฉืืืืช ืืืืื ืฉืขื ืืชื ืืฉืืื (ืืืืื ืื ื ืื ืืืฉื ืฉืืืฉืื ืืืืช ืกืคืจ ืื ืคืขื ืืืงืฉ ืืื ื ืืขื ืืช ืืื ืชืฉืืืืช ืฉืื ืืช ืืืืชื ืฉืืื). ืื ืืืืื ืืืืจื ืืืืืื ืฉื ืืืชื ืืืืืจ ืืช ืืจืขืืื ืฉืขืืื.
ืืืืข ืืืื ืฉื ืชืืืจ ืขื ืืฉืงืจ ืืื.
ืจืขืืื ืืช ืฉืื ืขืืืืื ืื ืืขืื ืขืจื, ืืจืื ืคืขืืื ืืืื ืืืจืื ืืจืขืืื ืืช ืฉืขืืืืื. ืืจืื ืืืงืฆืืขืืช ืืืฆืืจืชืืื ืืืื, ืืืชืื ืืช ืืืืืื, ืจืขืืื ืืช ืฉืื ืขืืืืื ืืืืืื ืืืืืช ืืืง ืืจืืื ืืืืืื ืฉืื ื.
ืื ืชืืงืฉื ืืื ื ืืืชืื ืชืืื ืืช ืฉืืืคืืกื ืขื ืืืกื Hello World ืืฉืคืช ืชืื ืืช ืฉืื ื ืืืืจ ืื ื ืืืื ืฉืืืข ืืื ืืขืฉืืช ืืช ืื. ืืืชื ืืืจ ืื ืื ืกื ืืืชืื ืืฉืืง ืืืจืืก. ืืื ืื ืืฆืืจื ืืืืฉ ืืงืื git ืืืคืก ืื ืืืจ ืืืื ืืืืืช ืงืฉื. ืืฉ ืื ืจืขืืื ืืืื ืืื ืืืชืืื ืืื ืื ื ืื ืืืืข ืื ืืื ืืขืืื, ืืื ื ืื ืืืื ืฉืืืง ืืืืืจืื ืฉืืขืฉื ืื ืืขืืื ืืคืขื ืืจืืฉืื ื. ืืกืืื ืืืืืื ืฉืื ื ืืืื ืืืชืื ืืงืืืช ืืืจืืก ืืื ืื ืืืื ืืื ืืืชืื ืืื ืืื ืฉืืืจ ืืชืืชื ืืฉืืงื ืืืจืืก ืืืื ืฉืคืืช, ืืืฃ ืคืขื ืื ืืชืืชื ืืงืื ืืื. ืืืจื ืงืืืื ืืืชืื ืืืจืื ืฉืขืื ืื ืืชืืชื ืืขืืจ ืขืืืจืช ืืืืจื ืืจื ืจืขืืื ืืช ืฉืขืื ืื ื ืืกืืชื, ืืฉืืืื ืื ืืขืืื. ืืืชื ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืื ืืืคืชื ืืืชืงืืืืช.
ืืืชืจ ืืื, ืื ืืืืจ ืืืืื ืฉืื ื ืขืืฉื ืืขืืืื ืืื ืืืชืื ืจืง ืืืจืื ืฉืื ื ืืืืจ, ืืืจ ืืืื ืืขืืืื ืชืืื ืืืื ืืฉืขืืืช. ืืฃ ืืื ืื ืจืืฆื ืืืืฉืืจ ืขืฉืจ ืฉื ืื ืืืงืื ืฉืื ืื ืืืงืจ ืืืชืืื ืืืืฉ ืืืจืืก. ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืืกืืคืื ืขื ืืื ืืืืฉืจ ืืืืื, ืืื ืืืง ืืืืืจืื ืฉืื ืื ื ืฆืจืืืื ืืื ื ืืื.
ืืืื ืืืช ืจืืื ืืืืชื ื ืืืฉืฉืื ืืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืื ืืืืืื ืืื ืืืืืข ืืืืื ืืืฉืื ืืืชื ืืืื ืืืื ืืื. ืื ื ืฉืืืฉื ืืคืชืืืช ืฉืืขืืจื ืื ื ืืฉืื ืจืขืืื ืืช ืืืื ืืืื ืืืื ืืื:
## ืจืขืืื ืืช ืฉืื ืขืืืืื ืฆืจืืืื ืืื
ืืืคืชื ืืจืืฉืื ืืื ืืืกืืจืช - ืืืงืื ืืืืื, ืฉืื ืืืชืจ ืื ืกืืช ืืืจืื ืฉืื ืืืื ืืขืืื. ืื ืชืืืื ืฉืืื ืืืชื ืฉืืื ืืงืืจืก ืืื ืืฆืคื ืืงืื ืชืฉืืื ืืืื ื. ืืืช ืื ืกืืืืืฆืื ืฉืื ืจืฆืื ืื ืืฉ ืจืขืืื ืฉืื ืืืงืชื. ืืคืืื ืืฉืืืืช ืฉืื ื ืื ืืืืข ืขืืืฃ ืืืืื ืืช ืื ืืฆืืจื ืืฉืืจื, ืืืืื ืฉืืืืืง ืืืืืืจ ืขื ืชืฉืืื ืฉืขืืืืช.
ืืขืืืช ืืืช ืื ืื ื ืืืฉื ืืืืช ืืืื ื ืืงืื ืืื, ืืื ืฉืื ืืขืื ืฉืื ื ืื ืกื ืจืขืืื, ืืจืขืืื ืืื ืื ืืฆืืื. ืืคืฉืจ ืืืืืง ืืช ืื ืืงืื ืืืืชืืื ืืืจ ืฉืื ืืืืืื ืืืจ.
ืืฉืืื ืืฉืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืื ืฉืื ื ืื ืื ื ืจืืฆืื ืืชืช ืืื ืืช ืืืงืื ืืืืื ืฉืื ืื ืืืืื ืืืจืืืฉ ืื ืื, ืืื ืื ื ื ืืื ืืืจืืืฉ ืืืชื ืื ืื.
## ืจืขืืื ืืช ืฉืื ืขืืืืื ืื ืืืืืื ืฉืืืืืื ืืืชื
ืืืคืชื ืืฉื ื ืืื ืืืืจื, ืื ืื ืื ื ืื ืกื ืืืฉืื ืขื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืื ืืืืฉื ืฉืื ืืื ืฉืืื ืฉืืืฉืงืข ืืืชืืืช ืงืื ืืืื "ืืืืืืจ ืืช ืืืฉืงืขื" ืื ืืืื ืื ืงืฉื ืืืื ืืืืื 3 ืฉืขืืช ืขื ื ืืกืืื ืืื ืืช ืืงืื ืืื ืฉืื ืืขืืื. ืกืืืื ืืื ืฉืื ื ืืคืืื ืื ืืชืืื ืื ืืืื ืืืืจ ืืฉืงืขื ืืืื ืืคืฉืจ ืืงืื ืืคืจืืืงื ืืื.
ืืืืืืง ืืืืืฉื ืืืืช ืกืคืจืืช ืืืืช ืื ืื ื ืจืืฆืื ืืืืคืจื.
ืืืืืฉ ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืชืื ืืืงืื ืืืืื ืฉืืืงืืฉ ืืื ืืื ืืืืจื. ืื ื ืืื ื ืืช ืื ืืื ืืื ืืช ืืช ืื, ืืื ืืกืืฃ ืื ืืฆื ืคืจืืืงื ืื ืืืื, ืืื ืื ืื ืื ืื ืืืฉ ืืกืืจ.
ืืืืื ืืื ืืื ืืืืื ืืืฉืืง ืฉืื ืขื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืื ื ืืืชื ืื ืืื, ืืืง ืืืคืืกืืื ืืืืจืื ืืื ืฉืื ืืืืง ืื, ืืื ืืขืืื. ืื ื ืื ืืกืชืื ืืื ืื ืฉืื ื ืื ืกืื ืืงืจืื ืคืืกื ืื ืืฉืชืคืื ืืืชื ืื ืืืช ืื ืืืืจื. ืืืชืืื ืืื ืืืืจื ืฉื ืขืฆืื.
## ืืคืฉืจ (ืืืืื) ืืืืฉื ืจืขืืื ืืช ืฉืื ืขืืืืื ืืื ืชืืื ืืืืื
ืชืจืืื ืขืืืจ, ืืื ืฉืืืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืื ืฉืื ื ืื ืืืืื ืืช ืฉืืืจืฉืช ืชืจืืื. ืืืื ืืืืืช ืฉืืขืืืื ืืืงืฆืืขืืช ืฉืืื ืืชื ืื ืจืืืื ืขืืฉืื ืฉืื ืืงืื ืฉืื ืืคืฉืจ ืื ืกืืช ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืืืื ืืืืืช ืฉืืชื ืืจืืืฉืื ืฉืืืืืื ืื ืฆืขื ืฉืืื ืืฉืืชื ืืืจืืื ืฉืื ืืืคืฉืจ ืืื ืืช ืืืืคืฉ ืฉืืชื ืจืืฆืื. ืืฉ ืืจืื ืืงืืืืช ืืืื.
ืืคืืชืจืื ืืื ืืืชืืื ืืืืืจืื ืืืจืื ืืืืื ืฉืืืื ืืื ืืฉ ืืื ืืืชืจ ืืืคืฉ - ืขื ืืืฉืคืื, ืืฉืขืืช ืืคื ืื, ืืชืืืืืื. ืื ืืฉ ืืื ืืืืื ืงืื ืื ืชืืืื ืืืืืื ืฉืคืขื ืืฉืืืข ืชืืกืคื ืืช ืืืืืื ืืืืกืืจืช ืืคืขืืืืช ืงืฆืจื ืฉืขืืืื ืื ื ืืกืืชื ืืืชื ืืฉืื ืืืื ืื ืืืืื. ืื ืื ืืชื ืืืืืื ืกืคืืจื ืชืืืื ืืืืืื ืฉืคืขื ืืฉืืืข ืื ืฉืืืขืืื ืชื ืกื ืกืื ืืืืื ืืืฉ ืฉืขืื ืื ื ืืกืืชื ืืืืื ืื ืชืืืื.
ืื ืฉืืคื ืืจืขืืื ืืช ืื ืฉืืื ืฉืื ืื ื ื ืืชื ืื ืืื ืืช ืืืงืื ืืืืื, ืืื ืฉืื ืื ื ืื ืืืืืื ืืืชื, ืืืื ืฉืื ืื ื ืื ืกืื ืืืชืจ ืืื, ืื ืืืชืจ ืงื ืืืฉืื ืขื ืจืขืืื ืืช ืืืฉืื. ืืืื ืืื ืืขืื ืืงืกืืื ืืชืจืื ืืื ืื ื ืืืืื ืืช ืืืืฃ ืืืืฉืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืชืจ ืืืืชืจ ืชืืืืื ืืืืื.
1 419
# ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื
ืื ืืงืฉืืชื ืืืชืจ ืืื ืืืืช ืกืคืจ ืืชื ืขืืืืื ืืืฉืื ืฉืืจืขืืื ืืช ืืฉ ืขืจื ืจืง ืื ืื ืขืืืืื. ืืฆืืื ืฉืชืงืืื ืืืืื ื ืงืืข ืืคื ืืกืคืจ ืืชืฉืืืืช ืื ืืื ืืช ืฉืืชืืชื, ืืื ืืคื ืืกืคืจ ืืชืฉืืืืช ืืืืื ืฉืขื ืืชื ืืฉืืื (ืืืืื ืื ื ืื ืืืฉื ืฉืืืฉืื ืืืืช ืกืคืจ ืื ืคืขื ืืืงืฉ ืืื ื ืืขื ืืช ืืื ืชืฉืืืืช ืฉืื ืืช ืืืืชื ืฉืืื). ืื ืืืืื ืืืืจื ืืืืืื ืฉื ืืืชื ืืืืืจ ืืช ืืจืขืืื ืฉืขืืื.
ืืืืข ืืืื ืฉื ืชืืืจ ืขื ืืฉืงืจ ืืื.
ืจืขืืื ืืช ืฉืื ืขืืืืื ืื ืืขืื ืขืจื, ืืจืื ืคืขืืื ืืืื ืืืจืื ืืจืขืืื ืืช ืฉืขืืืืื. ืืจืื ืืืงืฆืืขืืช ืืืฆืืจืชืืื ืืืื, ืืืชืื ืืช ืืืืืื, ืจืขืืื ืืช ืฉืื ืขืืืืื ืืืืืื ืืืืืช ืืืง ืืจืืื ืืืืืื ืฉืื ื.
ืื ืชืืงืฉื ืืื ื ืืืชืื ืชืืื ืืช ืฉืืืคืืกื ืขื ืืืกื Hello World ืืฉืคืช ืชืื ืืช ืฉืื ื ืืืืจ ืื ื ืืืื ืฉืืืข ืืื ืืขืฉืืช ืืช ืื. ืืืชื ืืืจ ืื ืื ืกื ืืืชืื ืืฉืืง ืืืจืืก. ืืื ืื ืืฆืืจื ืืืืฉ ืืงืื git ืืืคืก ืื ืืืจ ืืืื ืืืืืช ืงืฉื. ืืฉ ืื ืจืขืืื ืืืื ืืื ืืืชืืื ืืื ืื ื ืื ืืืืข ืื ืืื ืืขืืื, ืืื ื ืื ืืืื ืฉืืืง ืืืืืจืื ืฉืืขืฉื ืื ืืขืืื ืืคืขื ืืจืืฉืื ื. ืืกืืื ืืืืืื ืฉืื ื ืืืื ืืืชืื ืืงืืืช ืืืจืืก ืืื ืื ืืืื ืืื ืืืชืื ืืื ืืื ืฉืืืจ ืืชืืชื ืืฉืืงื ืืืจืืก ืืืื ืฉืคืืช, ืืืฃ ืคืขื ืื ืืชืืชื ืืงืื ืืื. ืืืจื ืงืืืื ืืืชืื ืืืจืื ืฉืขืื ืื ืืชืืชื ืืขืืจ ืขืืืจืช ืืืืจื ืืจื ืจืขืืื ืืช ืฉืขืื ืื ื ืืกืืชื, ืืฉืืืื ืื ืืขืืื. ืืืชื ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืื ืืืคืชื ืืืชืงืืืืช.
ืืืชืจ ืืื, ืื ืืืืจ ืืืืื ืฉืื ื ืขืืฉื ืืขืืืื ืืื ืืืชืื ืจืง ืืืจืื ืฉืื ื ืืืืจ, ืืืจ ืืืื ืืขืืืื ืชืืื ืืืื ืืฉืขืืืช. ืืฃ ืืื ืื ืจืืฆื ืืืืฉืืจ ืขืฉืจ ืฉื ืื ืืืงืื ืฉืื ืื ืืืงืจ ืืืชืืื ืืืืฉ ืืืจืืก. ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืืกืืคืื ืขื ืืื ืืืืฉืจ ืืืืื, ืืื ืืืง ืืืืืจืื ืฉืื ืื ื ืฆืจืืืื ืืื ื ืืื.
ืืืื ืืืช ืจืืื ืืืืชื ื ืืืฉืฉืื ืืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืื ืืืืืื ืืื ืืืืืข ืืืืื ืืืฉืื ืืืชื ืืืื ืืืื ืืื. ืื ื ืฉืืืฉื ืืคืชืืืช ืฉืืขืืจื ืื ื ืืฉืื ืจืขืืื ืืช ืืืื ืืืื ืืืื ืืื:
## ืจืขืืื ืืช ืฉืื ืขืืืืื ืฆืจืืืื ืืื
ืืืคืชื ืืจืืฉืื ืืื ืืืกืืจืช - ืืืงืื ืืืืื, ืฉืื ืืืชืจ ืื ืกืืช ืืืจืื ืฉืื ืืืื ืืขืืื. ืื ืชืืืื ืฉืืื ืืืชื ืฉืืื ืืงืืจืก ืืื ืืฆืคื ืืงืื ืชืฉืืื ืืืื ื. ืืืช ืื ืกืืืืืฆืื ืฉืื ืจืฆืื ืื ืืฉ ืจืขืืื ืฉืื ืืืงืชื. ืืคืืื ืืฉืืืืช ืฉืื ื ืื ืืืืข ืขืืืฃ ืืืืื ืืช ืื ืืฆืืจื ืืฉืืจื, ืืืืื ืฉืืืืืง ืืืืืืจ ืขื ืชืฉืืื ืฉืขืืืืช.
ืืขืืืช ืืืช ืื ืื ื ืืืฉื ืืืืช ืืืื ื ืืงืื ืืื, ืืื ืฉืื ืืขืื ืฉืื ื ืื ืกื ืจืขืืื, ืืจืขืืื ืืื ืื ืืฆืืื. ืืคืฉืจ ืืืืืง ืืช ืื ืืงืื ืืืืชืืื ืืืจ ืฉืื ืืืืืื ืืืจ.
ืืฉืืื ืืฉืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืื ืฉืื ื ืื ืื ื ืจืืฆืื ืืชืช ืืื ืืช ืืืงืื ืืืืื ืฉืื ืื ืืืืื ืืืจืืืฉ ืื ืื, ืืื ืื ื ื ืืื ืืืจืืืฉ ืืืชื ืื ืื.
## ืจืขืืื ืืช ืฉืื ืขืืืืื ืื ืืืืืื ืฉืืืืืื ืืืชื
ืืืคืชื ืืฉื ื ืืื ืืืืจื, ืื ืื ืื ื ืื ืกื ืืืฉืื ืขื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืื ืืืืฉื ืฉืื ืืื ืฉืืื ืฉืืืฉืงืข ืืืชืืืช ืงืื ืืืื "ืืืืืืจ ืืช ืืืฉืงืขื" ืื ืืืื ืื ืงืฉื ืืืื ืืืืื 3 ืฉืขืืช ืขื ื ืืกืืื ืืื ืืช ืืงืื ืืื ืฉืื ืืขืืื. ืกืืืื ืืื ืฉืื ื ืืคืืื ืื ืืชืืื ืื ืืืื ืืืืจ ืืฉืงืขื ืืืื ืืคืฉืจ ืืงืื ืืคืจืืืงื ืืื.
ืืืืืืง ืืืืืฉื ืืืืช ืกืคืจืืช ืืืืช ืื ืื ื ืจืืฆืื ืืืืคืจื.
ืืืืืฉ ืจืขืืื ืืช ืฉืื ืืืื ืืขืืื ืืชืื ืืืงืื ืืืืื ืฉืืืงืืฉ ืืื ืืื ืืืืจื. ืื ื ืืื ื ืืช ืื ืืื ืืื ืืช ืืช ืื, ืืื ืืกืืฃ ืื ืืฆื ืคืจืืืงื ืื ืืืื, ืืื ืื ืื ืื ืื ืืืฉ ืืกืืจ.
ืืืืื ืืื ืืื ืืืืื ืืืฉืืง ืฉืื ืขื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืื ื ืืืชื ืื ืืื, ืืืง ืืืคืืกืืื ืืืืจืื ืืื ืฉืื ืืืืง ืื, ืืื ืืขืืื. ืื ื ืื ืืกืชืื ืืื ืื ืฉืื ื ืื ืกืื ืืงืจืื ืคืืกื ืื ืืฉืชืคืื ืืืชื ืื ืืืช ืื ืืืืจื. ืืืชืืื ืืื ืืืืจื ืฉื ืขืฆืื.
## ืืคืฉืจ (ืืืืื) ืืืืฉื ืจืขืืื ืืช ืฉืื ืขืืืืื ืืื ืชืืื ืืืืื
ืชืจืืื ืขืืืจ, ืืื ืฉืืืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืื ืฉืื ื ืื ืืืืื ืืช ืฉืืืจืฉืช ืชืจืืื. ืืืื ืืืืืช ืฉืืขืืืื ืืืงืฆืืขืืช ืฉืืื ืืชื ืื ืจืืืื ืขืืฉืื ืฉืื ืืงืื ืฉืื ืืคืฉืจ ืื ืกืืช ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื. ืืืื ืืืืืช ืฉืืชื ืืจืืืฉืื ืฉืืืืืื ืื ืฆืขื ืฉืืื ืืฉืืชื ืืืจืืื ืฉืื ืืืคืฉืจ ืืื ืืช ืืืืคืฉ ืฉืืชื ืจืืฆืื. ืืฉ ืืจืื ืืงืืืืช ืืืื.
ืืคืืชืจืื ืืื ืืืชืืื ืืืืืจืื ืืืจืื ืืืืื ืฉืืืื ืืื ืืฉ ืืื ืืืชืจ ืืืคืฉ - ืขื ืืืฉืคืื, ืืฉืขืืช ืืคื ืื, ืืชืืืืืื. ืื ืืฉ ืืื ืืืืื ืงืื ืื ืชืืืื ืืืืืื ืฉืคืขื ืืฉืืืข ืชืืกืคื ืืช ืืืืืื ืืืืกืืจืช ืืคืขืืืืช ืงืฆืจื ืฉืขืืืื ืื ื ืืกืืชื ืืืชื ืืฉืื ืืืื ืื ืืืืื. ืื ืื ืืชื ืืืืืื ืกืคืืจื ืชืืืื ืืืืืื ืฉืคืขื ืืฉืืืข ืื ืฉืืืขืืื ืชื ืกื ืกืื ืืืืื ืืืฉ ืฉืขืื ืื ื ืืกืืชื ืืืืื ืื ืชืืืื.
ืื ืฉืืคื ืืจืขืืื ืืช ืื ืฉืืื ืฉืื ืื ื ื ืืชื ืื ืืื ืืช ืืืงืื ืืืืื, ืืื ืฉืื ืื ื ืื ืืืืืื ืืืชื, ืืืื ืฉืื ืื ื ืื ืกืื ืืืชืจ ืืื, ืื ืืืชืจ ืงื ืืืฉืื ืขื ืจืขืืื ืืช ืืืฉืื. ืืืื ืืื ืืขืื ืืงืกืืื ืืชืจืื ืืื ืื ื ืืืืื ืืช ืืืืฃ ืืืืฉืื ืจืขืืื ืืช ืฉืื ืืืื ืขืืืืื ืืืืชืจ ืืืืชืจ ืชืืืืื ืืืืื.
1 419
# ืืื ืขืืฉืื ืืืจืื ืคื ืืฆืื ื
ืืชืื ืชืื ืจืืื ืืจืืืฉืื ืฉืืืชืจืื ืืืืื ืืคืจืืืืืืจืง ืืื ืฉืืื ืขืื ื ืขื ืืฉืืื "ืืื ืขืืฉืื ืืืจืื ืคื ืืคืจืืืงื". ืื ืฆืจืื ืืขืฉืืช ืืฉืืื ืืืืกืืฃ ืคืืฆ'ืจ, ืื ืืืงืื ืื ืืื ืืชืงื ืืื, ืืื ืืืชืืื ืืช ืืืืืงืืช ืืืชืืขืื. ืขื ืคืจืืืืืืจืง ืืื ืืชืื ืชืื ืืืฉืื ื ืื ืกืื ืืืจ ืืคืจืืืงื ืืืืืขืื ืืืืืง ืืื ืฆืจืื ืืืชืื.
ืืจืืื ืืืจืื ืืจืืืฉืื ืฉืคืจืืืืืืจืง ืคืืืข ืืชืืืืงื ืืืืจื ืืื. ืฉืฉืืืืฉ ืืคืจืืืืืืจืง ืืืคืฉืจ ืืื ืืช ืืชืืื ืฉื ืืขืจืืช ืืืจ, ืืื ืืื ืฉืืคืจืืืงื ืืื ืืคืจืืืืืืจืง (ืื ืคืจืืืืืืจืง) ืืืคืื "ืงืื ืืื" ืขื ืืคืจืืืงื ืืืืืจื ืคืืฆ'ืจืื ืืชืงืืืื ืืืจืฉื ืืจืื ืืืชืจ ืืืืฅ. ืื ืจืง ืื, ืืื ืฉืฉืืืจืื ืืคื ืืื ืืืื ืื ืฉื ืืคืจืืืืืืจืง ืขืืื ืืืืื ืืื ืฉืืื ืขืืืฃ ืืืฉืงืืข ืืงืื ืฉืื. ืืืชื ืืชืื ืชืื ืืจืืืฉืื ืฉืืฉืืงืื ืืื 100% ืฉืื ื ืื ืื ืื ื ืืืงืื ืืจืื ืืืชืจ ืืื ืืืืืื ืืื ืขืืฉืื ืืืจืื ืคื ืืคืจืืืงื.
ืืืืช ืืื ืฉืืคืจืืืืืืจืง ืืื ืื ืืขื ืืื ืคื.
ืืื ืคืจืืืืืืจืง ืฉืชืืงืื ืืฉ ืืกืคืืง ืคืจืืืงืืื ืฉืืฉืชืืฉื ืื ืืืกืชืืื. ืืฉ ืืกืคืืง ืืชืื ืชืื ืฉืืืืขื ืืคืจืืืงื ืืฉืืจื ืืืงืื ืฉื ืืคืจืืืืืืจืง ืืื ืืืขืช ืืืื ืฉืื ืื ืฉืื ืขืืฉืื, ืืืืื ืืงืืืืช ืืื ืืืืช ืืื ืฆืจืื ืขืงืจืื ืืช ืืกืืกืืื ืืคืจืืืืืืจืง ืืื ืืืชืืื ืืคืจืืืงื. ืืคืจืืืืืืจืง ืื ืืืืื ืฉืืืจืื ืืืืฆืขื ืืฆืืจื ืืกืืืืช.
ืืืฆื ืฉื ื ืืฉืืื ืคืจืืืืืืจืง ืคืจืืืงืืื ืืืจืืืื ืืืคืืื ืืงืืงืืืื, ืืชืื ืชืื ืืืฉืื ื ืื ืกืื ืืืืืืื ืืช ืืกืื ืื ืฉืืื ืืืืืจื ืืื ืงืฉื ืืืื ืืก ืื ืฉืื ืืื ืคืจืืืงืืื ืืื ืืืคืืื ืืืืืจ ืืืฅ ืืืื.
ืคืจืืืืืืจืง ืืื ืื ืืืขืื ืืื ืื ืืคืืชืจืื.
ืืืงืื ืืืชืืงื ืืืืื ืืืื ืืืชืืื ืืชืฉืืื ืืฉืืื "ืืื ืขืืฉืื ืืืจืื ืคื ืืฆืื ื". ืืื ืจืฆืื ืืืืืช ืกืคืฆืืคืืื ืืื ืืืชืื ืืช ืื. ืชืืืื ืืืืกืืฃ ืืืืชื ืืกืื ืืืืืืืช ืืงืจื ืฉื ืฉืื ืืืื ืื ืชืืงืื ืื ืฉืืืื ืกื, ืืชืืืืืืืช ืืื ืืื ืืืคืฆืืืช ืืืกืืจ ืืื ื ืืืจื ืืืืคืฆืื ืฉื ืืืจื. ืืื ืืฉ ืืืฉืืืจ ืืช ืืืกืื ืื ืืืกืฃ ืืืกืืืื ืืื ืื ืขื ืืื ืขืืืื ืฉืืืฃ ืฉืื.
ืืืืจื ืฉืื ื ืืื ืฉืชืืื ืืื ืืชืื ืช ืืืชืื ืชืช ืืฆืืืช ืชืฉืืืืช ืืืื ืืช ืืฉืืื "ืืื ืขืืฉืื ืืืจืื ืคื ืืคืจืืืงื", ืืฉืืชืฉืืืืช ืืืื ืืืื ืืื ืฉืืืชืจ ืขืงืืืืช.
1 419
# ืืืงืื ืื ืืื ืืชืืงืื
ืืฉืืชื ืจืืืื ืกืจื ืืืืืืื ืืจืืฆืื ืืืืืืจ ืืช ืืืืืืื ืืฉ ืฉื ื ืืคืชืืจืื ืฉืืคืฉืจ ืืืืืฅ ืขืืืื: ืืฉ ืืช ืืคืชืืจ ืืืืืืื ืืงืื ืืื ืืกืจื, ืืืช ืืคืชืืจ ืืืืืืื ืืจืืฉื ืฉื ืืืืฉื. ืืืืืจื ืืช ืืื ื ืืื ืืืกืจื ืืืื ื ืืชืืื ืืืืจ ืืืง ืืืชืจ, ืืื ืื ืื ืืืืคืืงืฆืื ืืืื ืฉืชืงืืื ืขืืืื ืืขืฉืืช ืจืขืฉ ืืืชืจ ืืืืื ืืื ืฉืืชื ืจืืืืื.
ืืื ืืื ืฉื ืคืืืชืื ืืฉืงืจ. ืืฉืื ืืืชืืื:
> There should be one-- and preferably only one --obvious way to do it.
ืื ืื ืืืืช ืืชืืืื ืื ืืื, ืื ืื ืืคืืืชืื ืืื ืืื ืฉืคืช ืชืื ืืช ืฉื ืืืจ, ืืืืืง ืืื ืืืืืืื ืืืืืืื, ืืฉ ืืจืื ืืจืืื ืืขืฉืืช ืื ืืืจ ืืืื ืืจื ืืฉ ืืช ืื ืืืื ืกืื ืฉืื. ืืืืืืง ืืื ืืืืืืื ืืืืืืื, ืืืืชื ืจืืข ืฉืืกืจื ืืืฉ ืื ืืืืจื ืืจืืจ ืื ืืืืื ืืื ืืืจืืื. ืฉื ื ืืืคืชืืจืื ืขืืฉืื ืจืืฉื ืฉื ืืืืืืจ.
ืื ืชืืื ืืขืืช "ืืืชืขืื" ืืืืคืฆืื ืืืช, ืืืืื "ืื ื ืชืืื ืืืืืจ ืื ืื ืืื ืืจื ืืืคืชืืจ ืฉืืื ืืกืจื" (ืื ืืืืื ืฉื ืืืืฉื). ืืืืจื ืฉืื ื ืืื ืฉื ืืงืฆืืข ืืื ืืืคืฉ ืืช ืืคืจืืื. ืืืืื ืืื ืฉืืืชืจ ืืจืืื ืืื ืืคืฉืจ ืืชืงื ืืื ืื ืืื ืืช ืคืืฆ'ืจ, ืืืืื ืืช ืืืืืืื ืืืงืื ืืื ืืืจืืื ืืืืืืจ ืืช ืืืจื ืฉืืชืืืื ืืืืชืจ ืืืฆื ืืืกืืื ืฉืื ื.
ืืื ืืืืฉืื ืฉื ืื ืขื ืืื ืฉื ืคืืืชืื, ืืคืฉืจ ืืืืื ืฉืืฉ ืืจื ืืจืืจื ืืชืงื ืืช ืืืื ืื ืืื ืืช ืืช ืืคืืฆ'ืจ ืืชืื Use Case ืกืคืฆืืคื, ืืื ืืฉืืื ืืจืืืช ืืืชื ืฆืจืื ืืจืื ืขืืืืช ืืืงืจ (ืื ืืืืืืื ืืืื ืืื).
1 419
# ืืืค ืจืืืงื: ืืืคืื ืืืืจืืขืื ืืืืืืืืื
ืืจืืืงื ืืืื ืงื ืืืคื ืืืืจืืขืื ืืจืืช ืืงืืืคืื ื ืื - ืฆืจืื ืจืง ืืืืกืืฃ ืืืคืืื
on ืืฉื ืืืืจืืข. ืืืฉื ืืฉืืื ืืืคื ืืืืจืืข keydown ืขื ืืืื ื ืืชืื ืงืืืคืื ื ืืช ืจืืืงื ืื ื ืืืื ืืืชืื:
export default function App() {
const [keys, setKeys] = useState("");
function handleKeyDown(e) {
setKeys(keys + e.key);
}
return (
<div className="App" onKeyDown={handleKeyDown}>
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<p>{keys}</p>
<input type="text" />
</div>
);
}
ืืื ืื ืจืง ืืฆื ืขืืื: ืงืื ืืื ืืคืขืื ืืช ืคืื ืงืฆืืืช ืืืืคืื ืืืืจืืข ืจืง ืื ืืฉืื ืืชืื ืืงืืืคืื ื ืื ื ืืฆื ืืคืืงืืก. ืืื ืืฉืชืืืช ืืืงืกื ืืคืืงืืก ืืื ืื ื ืืืชืืื ืฉื ืืงืกื ืื ืืฉืชื ื ื state ืืชืขืืื, ืืื ืืืฆืืื ืืืจืื ืืฉืื ื ืคืฉืื ืืืืฅ ืขื ืืคืชืืจืื ืืงืืืคืื ื ืื ืชืชืขืื ืืืืืืฆืืช.
ืืคืืชืจืื ืืื ืืื ืืจืื ืืืชืจ ืงื ืืื ืฉืืคืฉืจ ืืืืืื. ืื ืื ื ืืจื ืืืืขืื ืฉืื ืืืจืืข ืืืืืืื ืืืืข ื body, ืืืคืจื ืืืจืืขื keydown, ืืฉืืื ืืฃ ืืืื ื ืืคืืงืืก ืคืฉืื ืืืืคืืื ืืจืืช ื body. ืื ืื ืฉืฆืจืื ืืื ืืื ืืืืกืืฃ ืืคืงื ืฉืืชืืืจ ืืืืจืืข ื keydown ืฉื ื body ืืื ืืกื ืืืกื ืฉื ืืงืืืคืื ื ืื, ืืืชื ืชืง ืืืฆืืื.
ืืฉืืื ืฉืืืื ื ืื ืืืฉืชืืฉ ืืงืื ืืื ืืงืื ืืืืฉืื, ืื ื ืืืื ืืืชืื ืงืื "ืืคืงื" ืืื ืืชืื ืงืืืคืื ื ืื ื ืคืจืืช, ืืื ืืฉืชืื ืืช ืืงืืืคืื ื ืื ืืื ืืงืื ืฉืฆืจืื ืืืชื. ืืื, ืืคืฉืจ ืื ืืืชืื Custom Hook ืืืงืื ืืืืืง ืืช ืืืชื ืืคืงื. ืื ืืงืื ืืืจื ืืชืืงืื:
import { useEffect, useState } from "react";
import "./styles.css";
function GlobalKeyboardEvents({ onKeyDown }) {
useEffect(() => {
document.body.addEventListener("keydown", onKeyDown);
return function () {
document.body.removeEventListener("keydown", onKeyDown);
};
}, [onKeyDown]);
return <></>;
}
export default function App() {
const [keys, setKeys] = useState("");
function handleKeyDown(e) {
setKeys(keys + e.key);
}
return (
<div className="App" >
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<p>{keys}</p>
<input type="text" />
<GlobalKeyboardEvents onKeyDown={handleKeyDown} />
</div>
);
}
ืืืคืฉืจ ืืฉืืง ืืืชื ืืืื ืืืจืื ืืืื ืืงืืฉืืจ:
https://codesandbox.io/s/frosty-violet-llfo2g?file=/src/App.js:0-7111 419
# ืืืฉืืืช ืฉืืืืืช ืืืชื
ืืคื ื ืฉืขืืืชื ืืช ืืขืืืื ืืชืืจ ืฉืืืจ ืืฉืืืจ ืืืืชื ืขื ืจืื ืืืช ืืืืฅ, ืชืคืก ืืืชื ืืืจ ืืืขืืืื ืฉื ืืฉืืื. "ืืื ืืฉ ืื ืืืืฅ?" ืืื ืฉืื, "ืืื ืื ืื ืืฆืืื?", "ืืช ืืืกืฃ ืฉืชืคืกืื ืขื ืื ืืกืืื ืืืื ืืขืืื ืื ืชืงืื ืืืจื. ืืชื ืืกืื ืืช ืื ืืขืชืื ืฉืื".
ืงื ืืจืืืช ืืื ืืืฉืื ืืืืช ืืืฆืจืช ืคืืืื, ืืจืืืช, ืืืืฆืืื ืืช ืืืืืืืฆืื ืื ืกืืช. ืืืื ืื ืกืืช ืงืฉื ืืืื ืืืฆืืื. (ืืฉืืืชื ืฉื ืืืชื ืืืจ ืืกืืคื ืฉื ืืืจ ืื ืืื ืืชืืืจ ืขื ืืคืื, ืคืชื ืกืืืจื-ืืค ืืฉืื ืืื ืืกืชืื ืืืืจื).
"ืืขื ืืช ืืขืืช ืื ืืืชืจ ืืจืืข ืืื ืืขื ืืช ืืืื" ืืื ืขืื ืืืฉืื ืืืกืื ืืื, ืืืืืชื ืืงืื ื "ืขืืืฃ ืืืืืช ืขื ืฉืืืื ืืืืื". ืฉืชื ืืืืฉืืืช ืืืื ืืืฆืจืืช ืืงืืื ืจืืฉื ืฉื ืคืื ืืืืืืืช ืืืืฉืื ืืืชื ืืจืืืื ืขืืืื ืืืชืจ ืืื ืฉืืื ืฉื ืืืจืืืื ืช. ืืืชืจ ืืจืืข, ืื ืฉืื ืฉืืืืื ืื ืืื ืืืืชืจื ืขื ืืฉืืื ืงืืจืืช ืืืื ืืืฉืจื ืื ืื ืื ืขืื ืื ืขื ืื ืืงืจืืืจืืื ืื ืืืืืขื ื 150%, ืื ืฉืืืจ ืกืืืจ ืืจืืฉ ืืจืื ืืืืื ืืืืช.
ืืชืื ืชืื ืืืชืื ืชืืช ืจืืื ืืืืืื ืฉ"ืืืืืื ืืื ืืื ืืื ืืจื ืืชืืืช ืงืื" ืืืื "ืงืจืืืช ืชืืขืื ืื ืงืื ืืงืืจ ืฉื ืกืคืจืื ืื ืืืืื ืืื", ืื ืืืืืช ืืงืื ื ืฉืื "ืืื ืฉืขืืื ืืืฉืจื ืืืื ืืื ืืื ืืืืื". ืืืื ืืช ืืืื ืืืืคืืช ืืืชื "ืื ืื" ืืืืงืืืง ืืืงืื ืืืฆืื ืืจืื ืืืืื ืืืขืฉืจื ืฉืืชืืืื ืืื"ื ืฉืื.
ืืืชืื ืชืืช ืจืืืช ืืจืืืฉืืช ืฉ"ืืฉืืื ืืืชืงืื ืฆืจืื ืืชืช ืืืชืจ ืฉืขืืช" ืืฉ"ืืฉืจื ืขื ืืืชืจ ืืืจืืืช ืชืืื ืขื ืืฉืืื ืืืจืื ืืืจืื ืฉืืฉืืืื ืื ืืืืื". ืขื ืืืื ื ืืืืช ืงืฉื ืื ืฆื ืืืืื ืืืืช ืื ืืฉืื ืืืคืืขืืช, ืืืืื ื ืืื ืืืชืืงื ืืืืืืืืช ืฉื ืื ืฉืื ืฉืขืืืืื ืืืชืจ ืืื ืฉืขืืช ืขื ืืฉืืื ืืืืื ืืคืจืืืื ืจืง ืืฉืืื ืืืืง ืืช ืืืชื ืืืื ืืช.
ืื ืื ืงื ืืฉื ืืช ืืืื ื ืฉืืืื ืืืชื ืื ืืจืื ืืืงืจืื ืืืื ืืืฉ ืืชื ืื ืืืื ืฉืื ืื. ืืืื ืืืช ืจืื ืืืื ืฉืืื ืืืฆืื ืืช ืืืจื ืืืืืช ืืืฉื ืืช ืืช ืืืชื ืืืฉืืืช. ืืฉืืื ืคืืขื ื ืืื ืืจืื ืืืชืจ ืงืฉื ืืืชืงืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
