-
Notifications
You must be signed in to change notification settings - Fork 10
week2 tech
hyeonggyu ham edited this page Nov 15, 2019
·
4 revisions
์์ฑ์: ํจํ๊ท, ์กฐ์๋
react ์ปดํฌ๋ํธ์์ canvas ํ๊ทธ๋ฅผ ์ด์ฉํด์ ์ปค๋ค๋ ํ๋๋ฅผ ํ๋ ๋ง๋ค๊ณ , ๊ทธ ์์ ์บ๋ฆญํฐ๋ค์ ๋ณด์ฌ์ค ์ ์๊ฒ ํ์!
- canvas์ ์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ ค๋ฉด, canvas DOM์ context๋ฅผ ๋ง๋ค๊ณ context๋ฅผ ์ด์ฉํด์ drawImage ํจ์๋ฅผ ๋ถ๋ฌ์ฃผ์ด์ผ ํ๋ค.
- ๊ทธ๋ฐ๋ฐ react๋ ์ปดํฌ๋ํธ๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์, DOM ์กฐ์์ ํผํด์ผ ํ๋ค.
- ref๋ก ํด๊ฒฐ!
react์์ ์ง์ ์ ์ธ DOM ์กฐ์์ด ๋ถ๊ฐํผํ ๊ฒฝ์ฐ, ref๋ฅผ ์ฌ์ฉํ๋ค.
html์ id์ฒ๋ผ, react ๋ด๋ถ์์ ref๋ฅผ ์ฌ์ฉํด์ DOM์ ์ด๋ฆ์ ๋ง๋ค ์ ์๋ค.
ref์ ์ฌ์ฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ, DOM ์์ ํน์ ํด๋์ค ์ปดํฌ๋ํธ๋ฅผ ์ฐธ์กฐํ๋ ํ ํจ์ํ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ref ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค.
- ์ปดํฌ๋ํธ ๋ด๋ถ์์ ref๋ฅผ ๋ง๋ ํ DOM์ ref๋ฅผ ์ค์ ํด์ฃผ๋ฉด, ์ปดํฌ๋ํธ ๋ด๋ถ์์ ref.current๋ก ์ ๊ทผํ ์ ์๋ค. ๋จ, ์ปดํฌ๋ํธ๊ฐ ๋ก๋๋ ํ DOM์ ๊ฐ์ ธ์์ผ ํ๋ฏ๋ก useEffect ํจ์๋ฅผ ์ด์ฉํ๋ฉด ์ข๋ค.
-
cavas ํ๊ทธ์ width/height๋ฅผ css๋ก ์ ์ฉํ๊ณ , drawImage๋ก ์บ๋ฆญํฐ๋ฅผ ํ์ํ์ ์บ๋ฆญํฐ๊ฐ ์๋ํ๋ ์ฌ์ด์ฆ์ ์ ํ ๋ค๋ฅด๊ฒ ํ์๋๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ...?
-
html ์์ฑ์ผ๋ก ํด๊ฒฐ
css๋ก ์บ๋ฒ์ค์ ๋๋น์ ๋์ด๋ฅผ ์กฐ์ ํ๋ฉด, ์ค์ ์บ๋ฒ์ค๊ฐ ๋์ด๋๊ฑฐ๋ ์์ถ๋์ด ๋ด์ฉ์ด ํ๋/์ถ์ ๋๋ค.
๋์ ์ด์ HTML ๋๋น ๋ฐ ๋์ด ์์ฑ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋น์จ์ด ๋ง๊ฒ ์กฐ์ ๋์๋ค.
- ์บ๋ฆญํฐ ์ด๋ฏธ์ง๊ฐ ๊ฐ๋์ฉ ์์ ํ์๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- canvas context์ drawImage ํจ์๊ฐ image๊ฐ ๋ก๋๋๊ธฐ ์ ์ ์คํ๋ ๊ฒฝ์ฐ, ๊ทธ๋ฆด image๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ์๋์ง ์์๋ ๊ฒ์ด์๋ค.
- onload๋ก ํด๊ฒฐ
drawImage ํจ์ ํธ์ถ์ ํด๋น image์ onloadํจ์์ ์ฝ๋ฐฑํจ์๋ก ์ฃผ๋ฉด, image๊ฐ ๋ก๋๋ ํ์ draw๋ฅผ ํ๊ธฐ๋๋ฌธ์ ํญ์ ์ด๋ฏธ์ง๊ฐ ํ์๋๋ค.