๐์ค๋ ๋ฐฐ์ด ๊ฒ
new Image
: ์๋ก์ด HTMLImageElement ์ธ์คํด์ค๋ฅผ ๋ง๋ ๋ค.
document.createElement('img')์ ๋์ผํ๊ฒ ์๋ํ๋ค.
์ด๋ฒคํธ ํธ๋ค๋ฌ
- onAbort: ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ค๊ฐ์ ๋ฉ์ถ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- onError: ์ด๋ฏธ์ง ๋ก๋ฉ ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋
- onLoad: ์ด๋ฏธ์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋ฉ๋์์ ๋
const [loaded, setLoaded] = useState(false);
useEffect(() => {
const image = new Image();
image.src = src;
image.onload = () => setLoaded(true);
}, [src]);
Array.from
:์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์๊ฒ ๋ณต์ฌํด ์๋ก์ด Array ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค.
Array.from(Array(line), (_, index) =>
...
)
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ - ๋ฐฐ์ด๋ก ๋ณํํ๊ณ ์ ํ๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด
๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ - ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๋ํด ํธ์ถํ ๋งตํ ํจ์
(์ธ๋์ค์ฝ์ด(_) ๋ถํ์ํ ์ธ์์ ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํ ์ฉ๋)
<select> <options> ํ๊ทธ hidden ์์ฑ
์ฝค๋ณด๋ฐ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด select, option ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ placeholder๋ฅผ ์ง์ ํ๊ธฐ ์ํด์ hidden์ ์ค์ ํ๊ณ ๋ชฉ๋ก์ ๋งจ ์์ ๋๋ฉด placeholder์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ชฉ๋ก์๋ ๋ณด์ด์ง ์๊ฒ ๋๋ค.
if (placeholder) {
options.unshift(
<option key="placeholder" value="" hidden>
{placeholder}
</option>
);
}
React.children
this.props.children์ ๋ค๋ฃจ๋ ์ ํธ๋ฆฌํฐ ํจ์๋ค์ ์ ๊ณตํ๋ค.
React.Children.map
React.Children.map(children, function[(thisArg)])
React.Children.forEach
React.Children.forEach(children, function[(thisArg)])
React.Children.count
React.Children.count(children)
Children์ ํฌํจ๋ ์ปดํฌ๋ํธ์ ๊ฐ์๋ฅผ ๋ฐํ
React.Children.only
React.Children.only(children)
Children์ด ๋จ ํ๋์ ์์์ ๊ฐ๋์ง ํ์ธํ๊ณ ํด๋น ์์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํ
React.Children.toArray
React.Children.toArray(children)
๊ฐ ์์์ key๊ฐ ํ ๋น๋ 1์ฐจ์ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
React.isValidElement
React.isValidElement(object)
๊ฐ์ฒด๊ฐ React ์๋ฆฌ๋จผํธ์ธ์ง ํ์ธ. true ํน์ false๋ฅผ ๋ฐํ
React.cloneElement
React.cloneElement(
element,
[config],
[...children]
)
์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ์์์ ์ผ๋ก ์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ณต์ ํ๊ณ ๋ฐํ
[config]: ์๋ณธ ์๋ฆฌ๋จผํธ์ ๋ํด์ ๋ณต์ ๋ ์๋ฆฌ๋จผํธ์ ์ถ๊ฐ๋ props
[...children]: ๋ณต์ ๋ ๊ฐ์ฒด์ children
- ์๋ ์๋ฆฌ๋จผํธ์ props์ ์ props๊ฐ ์๊ฒ ๋ณํฉ๋๋ค.
- ์ child๊ฐ ๊ธฐ์กด child๋ฅผ ๋์ฒดํ๋ค.
- ์๋ ์๋ฆฌ๋จผํธ์ key์ ref๊ฐ ์ ์ง๋๋ค.
ํ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค!
๋ง์ฐ์ค ์ด๋ฒคํธ
- mousedown: ํด๋น element์์ ๋ง์ฐ์ค ๋ฒํผ์ ๋๋ ์ ๋ ๋ฐ์
- mousemove: ํด๋น element์์ ๋ง์ฐ์ค๋ฅผ ์์ง์์ ๋ ๋ฐ์
- mouseup: ํด๋น element์์ ๋๋ ๋ ๋ง์ฐ์ค ๋ฒํผ์ ๋ ๋ ๋ฐ์
๐ญ๋ฐฐ์ด ์
React์ ์ต์์ API๋ฅผ ์จ๋ณธ ์ ์ด ๊ฑฐ์ ์์๋๋ฐ ์ด๋ฒ ๊ธฐํ์ ์กด์ฌ๋ฅผ ์๊ฒ ๋๊ณ ์ฌ์ฉํด๋ณผ ์ ์์ด์ ์ข์๋ค. ๊ณต์๋ฌธ์ ๋ณด๋ ์ฐ์ต๋ ํ ๊ฒธ ๊ณต์๋ฌธ์ ๋ณด๋ฉด์ ํด๋น ๋ด์ฉ์ ๋ํด ๋ ๊ณต๋ถํด๋ณด๊ณ ์ถ๋ค.
'์ผ์ > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ๋ธ์ฝ์ค Day 50] 2022.12.23 (0) | 2022.12.23 |
---|---|
[๋ฐ๋ธ์ฝ์ค Day49] 2022.12.22 (0) | 2022.12.22 |
[๋ฐ๋ธ์ฝ์ค Day 47] 2022.12.20 (0) | 2022.12.20 |
[๋ฐ๋ธ์ฝ์ค] 2๊ฐ์ ์ฐจ ํ๊ณ (4) | 2022.12.15 |
[๋ฐ๋ธ์ฝ์ค] ํ ๋ฌ ์ฐจ ํ๊ณ (0) | 2022.11.18 |
๐์ค๋ ๋ฐฐ์ด ๊ฒ
new Image
: ์๋ก์ด HTMLImageElement ์ธ์คํด์ค๋ฅผ ๋ง๋ ๋ค.
document.createElement('img')์ ๋์ผํ๊ฒ ์๋ํ๋ค.
์ด๋ฒคํธ ํธ๋ค๋ฌ
- onAbort: ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ค๊ฐ์ ๋ฉ์ถ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- onError: ์ด๋ฏธ์ง ๋ก๋ฉ ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋
- onLoad: ์ด๋ฏธ์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋ฉ๋์์ ๋
const [loaded, setLoaded] = useState(false);
useEffect(() => {
const image = new Image();
image.src = src;
image.onload = () => setLoaded(true);
}, [src]);
Array.from
:์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์๊ฒ ๋ณต์ฌํด ์๋ก์ด Array ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค.
Array.from(Array(line), (_, index) =>
...
)
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ - ๋ฐฐ์ด๋ก ๋ณํํ๊ณ ์ ํ๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด
๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ - ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๋ํด ํธ์ถํ ๋งตํ ํจ์
(์ธ๋์ค์ฝ์ด(_) ๋ถํ์ํ ์ธ์์ ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํ ์ฉ๋)
<select> <options> ํ๊ทธ hidden ์์ฑ
์ฝค๋ณด๋ฐ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด select, option ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ placeholder๋ฅผ ์ง์ ํ๊ธฐ ์ํด์ hidden์ ์ค์ ํ๊ณ ๋ชฉ๋ก์ ๋งจ ์์ ๋๋ฉด placeholder์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ชฉ๋ก์๋ ๋ณด์ด์ง ์๊ฒ ๋๋ค.
if (placeholder) {
options.unshift(
<option key="placeholder" value="" hidden>
{placeholder}
</option>
);
}
React.children
this.props.children์ ๋ค๋ฃจ๋ ์ ํธ๋ฆฌํฐ ํจ์๋ค์ ์ ๊ณตํ๋ค.
React.Children.map
React.Children.map(children, function[(thisArg)])
React.Children.forEach
React.Children.forEach(children, function[(thisArg)])
React.Children.count
React.Children.count(children)
Children์ ํฌํจ๋ ์ปดํฌ๋ํธ์ ๊ฐ์๋ฅผ ๋ฐํ
React.Children.only
React.Children.only(children)
Children์ด ๋จ ํ๋์ ์์์ ๊ฐ๋์ง ํ์ธํ๊ณ ํด๋น ์์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํ
React.Children.toArray
React.Children.toArray(children)
๊ฐ ์์์ key๊ฐ ํ ๋น๋ 1์ฐจ์ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
React.isValidElement
React.isValidElement(object)
๊ฐ์ฒด๊ฐ React ์๋ฆฌ๋จผํธ์ธ์ง ํ์ธ. true ํน์ false๋ฅผ ๋ฐํ
React.cloneElement
React.cloneElement(
element,
[config],
[...children]
)
์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ์์์ ์ผ๋ก ์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ณต์ ํ๊ณ ๋ฐํ
[config]: ์๋ณธ ์๋ฆฌ๋จผํธ์ ๋ํด์ ๋ณต์ ๋ ์๋ฆฌ๋จผํธ์ ์ถ๊ฐ๋ props
[...children]: ๋ณต์ ๋ ๊ฐ์ฒด์ children
- ์๋ ์๋ฆฌ๋จผํธ์ props์ ์ props๊ฐ ์๊ฒ ๋ณํฉ๋๋ค.
- ์ child๊ฐ ๊ธฐ์กด child๋ฅผ ๋์ฒดํ๋ค.
- ์๋ ์๋ฆฌ๋จผํธ์ key์ ref๊ฐ ์ ์ง๋๋ค.
ํ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค!
๋ง์ฐ์ค ์ด๋ฒคํธ
- mousedown: ํด๋น element์์ ๋ง์ฐ์ค ๋ฒํผ์ ๋๋ ์ ๋ ๋ฐ์
- mousemove: ํด๋น element์์ ๋ง์ฐ์ค๋ฅผ ์์ง์์ ๋ ๋ฐ์
- mouseup: ํด๋น element์์ ๋๋ ๋ ๋ง์ฐ์ค ๋ฒํผ์ ๋ ๋ ๋ฐ์
๐ญ๋ฐฐ์ด ์
React์ ์ต์์ API๋ฅผ ์จ๋ณธ ์ ์ด ๊ฑฐ์ ์์๋๋ฐ ์ด๋ฒ ๊ธฐํ์ ์กด์ฌ๋ฅผ ์๊ฒ ๋๊ณ ์ฌ์ฉํด๋ณผ ์ ์์ด์ ์ข์๋ค. ๊ณต์๋ฌธ์ ๋ณด๋ ์ฐ์ต๋ ํ ๊ฒธ ๊ณต์๋ฌธ์ ๋ณด๋ฉด์ ํด๋น ๋ด์ฉ์ ๋ํด ๋ ๊ณต๋ถํด๋ณด๊ณ ์ถ๋ค.
'์ผ์ > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ๋ธ์ฝ์ค Day 50] 2022.12.23 (0) | 2022.12.23 |
---|---|
[๋ฐ๋ธ์ฝ์ค Day49] 2022.12.22 (0) | 2022.12.22 |
[๋ฐ๋ธ์ฝ์ค Day 47] 2022.12.20 (0) | 2022.12.20 |
[๋ฐ๋ธ์ฝ์ค] 2๊ฐ์ ์ฐจ ํ๊ณ (4) | 2022.12.15 |
[๋ฐ๋ธ์ฝ์ค] ํ ๋ฌ ์ฐจ ํ๊ณ (0) | 2022.11.18 |