์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๋ก์ด ES7 ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ์ฌ์น๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค. ์๋ก์ด ์ธ์ด ๊ธฐ๋ฅ (ํนํ ES7 ๋ฐ์ฝ๋ ์ดํฐ์ ๊ฐ์ ์คํ์ ๊ธฐ๋ฅ)์ ๋ชจ๋ ๋์ ํ์ง ์์ ๋ช ๊ฐ์ง ์์ ์์ ๊ฐ ์๋ค๋ฉด ์๋ก์ด ์ ๋ณด ๊ณผ๋ถํ์ ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์์์. ์์ ์ ์ ์ฉ์ฑ์ ์คํ์ ์ธ์ด ๊ธฐ๋ฅ์ผ๋ก ์ด์์ ํด์ง๋ฉด ํฌ์๋ฉ๋๋ค.
๊ด๋ฆฌ์์ ํธ์ง : ์ฌ๊ธฐ์์ ์ถ์ ํ์ญ์์ค :
https://github.com/vkbansal/react-dnd-es5-examples
๊ทธ๋ฌํ ๊ณตํ์ ๊ธฐ๊บผ์ด ๋ฐ์๋ค์ ๋๋ค.
ํํ ๋ฆฌ์ผ ์์ ๋ ๋ชจ๋ ES5, ES6 ๋ฐ ES7๋ก ์ ๊ณต๋ฉ๋๋ค.
http://gaearon.github.io/react-dnd/docs-tutorial.html
๋ชจ๋ ๋ฌธ์ ํ์ด์ง์๋ ES5, ES6 ๋ฐ ES7์ ์์ ๋ ์์ต๋๋ค.
http://gaearon.github.io/react-dnd/docs-drag-source.html
http://gaearon.github.io/react-dnd/docs-drop-target.html
๊ธฐํ
๋ถํํ๋ ๋ชจ๋ ์์ ์ฝ๋๋ฅผ ์ด์ ํ ์๊ฐ์ด ์์์ง๋ง ์์ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋ฌธ์ ์ฌ์ดํธ์ ES5 ์์ ๊ฐ ์์ต๋๋ค. http://gaearon.github.io/react-dnd/docs-overview.html
๋๋ github repo์ ์์ ํ๊ณ ๊ธฐ๋ฅ์ ์ธ ์์ ๋ฅผ ์ธ๊ธํ๊ณ ์์ต๋๋ค.
ES6 / 7์ด ์ฃผ๋ฅ๊ฐ ๋ ๋๊น์ง ES6 / 7 ์ต์ ์ด์๋ ES5 ์์ ๊ฐ ๋ ๋ฐ๋์งํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋์์ ๋ฐฐ์ธ ํ์๊ฐ์๊ณ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํด ES5๋ก ํธ๋์ค ํ์ผ ํ ํ์๊ฐ ์๋ค๋ฉด react-dnd๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
ES6๋ ์ด๋ฏธ ์ธ์ด๊ฐ ์์ฑ๋๊ณ Babel์ด ์๋ง์ ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ์ฃผ๋ฅ๋ก ์ด๋ฏธ ์ฃผ๋ฅ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋น์ ์ ์์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ํด ์ฌ๋๋ค์ด ES6 (๊ทธ๋ฆฌ๊ณ ๋ ๋์ ๊ฒ์ ES7) ๊ตฌ๋ฌธ์ ๋ฐฐ์ฐ๋๋ก ๊ฐ์ํ๋ ๊ฒ์ _best_์์ _hostile_์ ๋๋ค. ์ด๊ฒ์ ๋๋ผ์ด ๋ชจ๋์ฒ๋ผ ๋ณด์ ๋๋ค. ์์ํ์ง ์์ ์ฌ๋๋ค์ ์ํด ES5 ๋ฒ์ ์ _one_ ์์ ๋ฅผ ES5 ์์ ํด๋๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ ์ด๋ป์ต๋๊น? PR์ ์๋ฝํ๊ฒ ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋์์ด๋์ง ์์ต๋๋ค. ์์ ๋ฅผ ์์ฒญํ๋ ์ฌ๋๋ค์ ์ฒ์๋ถํฐ ES6 ๋ฐ ES7์ ์ต์ํ์ง ์์ ์ ์์ต๋๋ค.
๋ฅด ํ์จ.
๋๋ ์ฌ๊ธฐ ์ฌ๋๋ค์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. @gaearon ๋น์ ์ ์ฌ๋๋ค์ด ๋จ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๊ธฐ ์ํด ES6 / ES7์ ๋ฐฐ์ฐ๋๋ก ๊ฐ์ํด์๋ ์๋ฉ๋๋ค. ์ด๊ฒ์ ์ฌ๋๋ค์ด ๋์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ด๋ ์ ์์ต๋๋ค.
์ด ๋์๊ด์ ๋๋์ต๋๋ค. ์ ๊ฐ ๊ทธ๊ฒ์ ๋ฐ๋ ํ ์ ์ผํ ๊ฒ์์ด ์ฃผ์ ์
๋๋ค. ์ ๋ JS ์ ๋ฌธ๊ฐ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ (์ ๋ Ruby ๊ฐ๋ฐ์์
๋๋ค) ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ ๋ฅผ ์ดํดํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค (๋๋ ์๋ก์ด ๊ตฌ๋ฌธ์ ๋ฐ๋ํ์ง๋ ์์ง๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ ๋ ์ฃผ๋ฅ ํ์ค ์ฑํ).
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ React์ ํ์ค DnD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋๋๋กํ๋ ค๋ฉด์ด๋ฅผ ์์ ํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ๋๋ค์ด ๋น์ ๋ณด๋ค ์ข๋ ๋์ ๋ ๊ฐ์ ๋ค๋ฅธ "์ฌ์ด"์๋ฃจ์
์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์
๋๋ค ..
๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์
์ฐธ๊ณ ๋ก, ์ด๊ฒ์ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ด ์๋๋๋ค. JavaScript ์ธ ES6์ ๋๋ค. ES6 ๊ตฌ๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ค์ ๋ก ๋ค๋ฅธ ๊ตฌ๋ฌธ์ด๊ธฐ ๋๋ฌธ์ react์๋ ๋ฌธ์ ๊ฐ ์์ด์ผํฉ๋๋ค.
ํ์ง๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ ๋๋ ์ฃผ๋ฅ ํ์ค์ ์ฑํํด์ผํฉ๋๋ค.
ES6๊ฐ ์ฃผ๋ฅ๊ฐ๋๊ณ ์์ต๋๋ค. io.js ๋ฐ react ์์ฒด๋ ES6๋ฅผ ์ง์ํฉ๋๋ค.
๋น์ ์ ์ฐฉ๊ฐ์ ๋๋ค.
์ปดํจํฐ ๊ณผํ์์ ์ปดํจํฐ ์ธ์ด์ ๊ตฌ๋ฌธ์ ํด๋น ์ธ์ด์์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์กฐํ ๋ ๋ฌธ์ ๋๋ ์กฐ๊ฐ์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ธฐํธ์ ์กฐํฉ์ ์ ์ํ๋ ๊ท์น ์งํฉ์ ๋๋ค.
๊ณผ:
ECMAScript 2015 (6th Edition)๋ ECMAScript ์ธ์ด ์ฌ์ ํ์ค ์ ์ต์ ๋ฒ์ ์ ๋๋ค.
์, ES5์ ES6์ ๋ชจ๋ JS์ด์ง๋ง ๊ตฌ๋ฌธ์ด ๋ค๋ฆ
๋๋ค.
2.
ES6๊ฐ ์ฃผ๋ฅ๊ฐ๋๊ณ ์์ต๋๋ค. io.js ๋ฐ react ์์ฒด๋ ES6๋ฅผ ์ง์ํฉ๋๋ค.
"Becoming"๊ณผ "Support for"๋ ES6๊ฐ ์์ง ์ฃผ๋ฅ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์์ ๋ํ๋ ๋๋ค. ๊ฒฐ๊ตญ์๋ ๊ทธ๋ด ๊ฒ์ด์ง๋ง ๊ทธ ๋์ ES5์์ ์์ ๋ฅผ ์ ๊ณตํด์ผํฉ๋๋ค.
ES5 ์์ ๋ฅผ ๋๋ฌด๋๋ ์ํ๋ค๋ฉด ์ง์ ๊ธฐ์ฌํ๋ ๊ฒ์ด ์ด๋ป์ต๋๊น? @gaearon ์ ๋งค์ฐ ๋ฐ์ ์ฌ๋์ด๋ฉฐ ์ฌ๊ฐ ์๊ฐ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ์ฌ๋๋ค๋ ํํ์ ๋ณผ ์ ์๋๋ก ๊ธฐ์ฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์ ๋ ธ๋ ฅํ์ญ์์ค.
ํ๋ก์ ํธ ์ค๋ ๊ฐ ์๋ก ์ ๋๊ตฌ์๊ฒ๋ ๊ฐ์ํ์ง ์์ต๋๋ค.
gaearon์ ์ด๋ฏธ์ด lib์์ ์์ฒญ๋ ์์ ์ํ์ต๋๋ค. ํ๋ก์ ํธ๋ ์คํ ์์ค์ด๋ฉฐ ๋ฌด๋ฃ๋ก ์ ๊ณต๋ฉ๋๋ค. ๊ทธ๋ฅผ ์ ๋์ ์ด๋ผ๊ณ ๋น๋ํ๊ฑฐ๋ ๊ทธ๊ฐ ์ฌ์ฉ์๋ฅผ ์์ ํ๊ณ ์๋ค๊ณ ๋น๋ํ๋ ๊ฒ์ ๋ค์ ์ ๋์ ์ธ IMHO์ ๋๋ค.
๊ทธ๋ ์์ ๋ฅผ es5๋ก ํฌํ ํ ์๊ฐ์ด ์์ผ๋ฉฐ ๊ธฐ์ฌํ ์ ์๋ค๊ณ ๋งํ์ต๋๋ค. es5 / 6 / 7์๋ ์ด๋ฏธ ์์ ๊ฐ ์์ต๋๋ค. ์์งํ ๋งํด์ ๊ตฌ๋ฌธ์ ๊ทธ๋ ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค.
๋ํ babel๊ณผ ๊ฐ์ ํธ๋์ค ํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ es6 / 7 ์ฝ๋๋ฅผ es5๋ก ๋ณํํ๊ณ ์ฌ์ฉํ๊ฑฐ๋ ๊ฒ์ฌํ๊ฑฐ๋ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์๋ฌด๋ ์ฌ๋๋ค์๊ฒ react-dnd๋ฅผ ์ฌ์ฉํ๋๋ก ๊ฐ์ํ์ง ์์ผ๋ฉฐ,์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ชฉ์ ์ด '์ ์ผํ'์๋ฃจ์ ์ด๋๋ ๊ฒ๋ ์๋๋๋ค.
@hakanderyal ์ ํํ ๋ด ์์ !
@hakanderyal ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผ์ํ์ง ์์ต๋๋ค. ๋น์ ๋ง์ด ๋ง์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋์ด ํ๋ก์ ํธ์์ ์์ฒญ๋ ์์ ์ ํด์ฃผ์
ES6์์ ์์ ๋ฅผ ์์ฑํ๋ ค๋ ์ ์์ ์ธ ์๋๊ฐ ์์์ ์๊ณ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋๋ ์ด๊ฒ์ ๋ํด ์๋ฌด๋ ๋น๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด ๋ฌธ์ ๋ ES5 ์์ ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
์, ์ฐ๋ฆฌ๋ Babel์ ์ฌ์ฉํ ์ ์์ง๋ง, ์ด๋ค ๊ฒฝ์ฐ์๋ ๋น์ ์ด ํ์๋กํ๋ ์์ ๋๋ฌธ์ ๋ ๋ง์ lib๋ฅผ ์ถ๊ฐํ๋ ํ๋ก์ ํธ์ ๋ ๋ง์ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ ๋ Rails ํ๋ก์ ํธ์์ React์ ReactDnD๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์์งํ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํด ๋ ๋ง์ ํธ๋์ค ํ์ผ๋ฌ๋ฅผ ๋ค๋ฃจ๊ณ ์ถ์ง ์์ต๋๋ค.
๋ํ ์ด๋ค ์ฌ๋๋ค (๋ ์์ ์ ํฌํจ)์ JS ์ ๋ฌธ๊ฐ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ํ ๋จ์ํ๊ฒ ์ ์งํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ธฐ์กด ๊ธฐ์ฌ์ ๋๋ ์๋ก์ด ๊ธฐ์ฌ์๊ฐ์ด ๋ฌธ์ ๋ฅผ ์ฃผ๋ํ๊ณ @gaearon๋ฟ๋ง ์๋๋ผ ๋ช ๊ฐ์ง ์๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
@BTS_twt แ แ แ แ แ แ แ แ
: +1 : ๋ฐ์ด๋ @vkbansal! ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฌํฉ๋๋ค, @vkbansal- ๋น์ ์
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ.
์ ๋์ด ํ๋ก์ ํธ์ ๋ฌธ์ ์น ์ฌ์ดํธ์์ ๋ช ์ฃผ์ ๋ฐค์ ๋ณด๋์ต๋๋ค.์ด ์น ์ฌ์ดํธ๋ ์ผ๋ถ ์ฝ๋๊ฐ ํฌํจ ๋ ๋ชจ๋ ๋ฌธ์ ํ์ด์ง์ ES5, ES6 ๋ฐ ES7 ์ฝ๋ ์์ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ ์ผํ JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์น ์ฌ์ดํธ์ ๋๋ค. ์์ ์์ฒด๋ก ๊ธฐ๋์ ๋ถ์ํ์ง ๋ชปํด ์ฃ์กํฉ๋๋ค!
React Europe ํ ํฌ์์ ๊ฐ์ธ ๋ฌด๊ธ ์๊ฐ์ ๋ช ์ฃผ์ ๋ฐค์ ๋ณด๋ธ ํ ์์ ์๊ฐ์ด ์๊ธฐ๋ฉด ๊ทํ์ ์์ฒญ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋๊ตฐ๊ฐ์๊ฒ ES5 ์์ ๋ก ๋์์ ์์ฒญํ์ญ์์ค.
์ฌ๊ฐ ์๊ฐ์ด์์ ๋ ์ ์ํ๋ ๋ช ๊ฐ์ง ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ฌ.
PS @vkbansal ๋๋ถ์ ์์ฒญ๋๊ฒ ๊ฐ์ฌํฉ๋๋ค.
์๋ Gaearon,
๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ๊ณต๊ฐํ๋ ๊ฒ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๋๋ค์์ ์ฌ๋๋ค์๊ฒ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๋น์ ์ ์ผ์ '์์ผ๋ก'๋ฐ์ด ๋ถ์ด๊ณ ๊ณต๊ฐ์ ์ผ๋กํ๊ณ ์์ต๋๋ค. .. ์ด๋ ์ชฝ๋ '์ฌ์ด'๊ฒ์ด ์๋๋๋ค.
๋๋ ๋น์ ์ด๋ฐ์ ๋น๋์ ์์ ํ ๋๋์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค)
์ : '๊ฐ์ '์ฌ๋ .. '์ ๋์ '
... ํนํ ๊ธฐ์ฌ๋ฅผ ์ด๋ ํ ๊ฒฝ์ฐ
์ด ๊ณต๊ฒฉ์ ๋ํ ๋น์ ์ ๋์์ ์ ์ ๊ฐ์ ๋๋ฐ์๋ฐ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ ํ์ ์ ๋๋ค.
์ด ๋ถ์ ์ ์ธ ์์์ ์ํด ๋ฏธ๋ฃจ์ง ๋ง์ญ์์ค
์ฝ๋์ ์์ด๋์ด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
Stu
์ด ํ ๋ก ์ ๊ณ์ํ์ง _ ์์ผ๋ ค๋ _ ๋์ ์์์ ์กด์ค ํด์ฃผ์ญ์์ค. ๋ ์ด์์ด ์ ์ฅ์๋ฅผ๋ณด๊ณ ์๋ ์ฌ๋๋ค์๊ฒ ์คํธ ๋ฉ์ผ์ ๋ณด๋ด๊ณ ์ถ์ง ์์ต๋๋ค.
๋๋ ๋ฌธ์ ๋ฅผ ์ ๊ทธ์ง๋ ์์ง๋ง, ๋ค๋ฅธ ์ฝ๋ฉํธ๊ฐ ๊ฒ์๋๋ค๋ฉด ์ด๊ฒ์ดโํ ๋ก โ์ฝ๋ฉํธ๊ฐ ์๋๋ผ ๋ ๋ง์ PR์ด๋ ์ผ์ข ์ ๋ฌด์ธ๊ฐ๋ก ์ฐ๊ฒฐ๋๋ ์ ์ฉํ ์ฝ๋ฉํธ๊ฐ ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ ๋ง์ ์์ํ ๋คํ์ด "์์ชฝ์ ๋ชจ๋๋ค์"์ ์์ง๋ง ์์ ์ ๋ณด์ด์ง ์์ต๋๋ค.
์ฐ๋ ค ์ฌํญ์ ์ดํดํฉ๋๋ค. ES5 ์์ ๊ฐ ํ์ํ๊ณ ํ์ฌ ES6 / 7์ ๋ฐฐ์ฐ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ฐ์ง ์์๋ ์์ ํ ์ ํจํ ์์น. ํ์ฌ ์ ์ ์ฅ์ ์ ๊ฐ์ด ์์ ๋ฅผ _ ์ ์ฒด์ ์ผ๋ก ์์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ๋ฏธ๋์ ํ ์์์ ๊ฒ์ด๋ค. ์ง๊ธ ๋น์ฅ์ ์ด ํ๋ฅญํ ES6 ํ์ต ์๋ฃ ๋ฅผ ์ง์ ํ๋ ๊ฒ ์ธ์๋ ๋น์ ์ ๋์ธ ์์๋ ์ผ์ด ์์ต๋๋ค (์ ๊ฐ ์ง์ ๋ฐฐ์ด ๋ฐฉ๋ฒ์ ๋๋ค).
๊ฒ๋ค๊ฐ์ด ์์ ์ ์ง์คํ๋ค๋ฉด 1.0์ ์ ํ ์ถ์ํ์ง ์์์ ๊ฒ์ ๋๋ค. ๊ทธ ํ ๋ฐ๋ก ํ ํฌ ์์ ์ ์์ํด์ผํ๊ธฐ ๋๋ฌธ์ 1.0์ ๋ด๊ธฐ ์ํด ํ์ํ ์ปท์ด์์ต๋๋ค. ES5 ์์ ๊ฐ์๋ ์ต์ ๋ฒ์ ์ธ React DnD 0.9.2๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. 1.0๊ณผ ํฌ๊ฒ ๋ค๋ฆ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ํน์ ์คํ ์์ค ์ํฐ์ผ์ด ์์ผ๋ฉฐ ์ ๋๊ธ์ ์ผ๋ถ ๋ฌธ๊ตฌ๊ฐ์ด๋ฅผ ์๋ฐํฉ๋๋ค. ๋น์ ์ด ๊ทธ๊ฒ์ ๋ณด์ง ๋ชปํ๋ค๋ฉด ์ด๊ฒ์ ๋น์ ์ ๋ฌธ์ ์ด์ง ๋ด ๊ฒ์ด ์๋๋๋ค. ์ด ์ํฐ์ผ์ ์ด๊ธฐ๋ ๊ฒ์ด ๋ฉ์ธํ ์ด๋๊ฐ ์ธ๊ธฐ ํ๋ก์ ํธ๋ฅผ ํ์ ๋ฒ๋ฆฌ๋ ์ด์ ์ค ํ๋์ ๋๋ค. _ ๊ทํ์ _ ๋ถ๋ง์ด ํ๋นํ๊ณ _ ์๋ฏธ๊ฐ ์ข๋ค _ ๊ณ ์๊ฐํ ์๋ ์์ง๋ง ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ์์ ์ ํ๋ก์ ํธ์ ๋๊ณผ ํผ๋ฅผ ์๊ณ ๋น์ทํ ๋ฌธ์ ๊ฐ ์๊ธธ ๋๊น์ง ์ด๊ฒ์ ์ง์ ์ผ๋ก ์ดํดํ๊ธฐ๊ฐ ์ ๋ง ์ด๋ ต์ต๋๋ค.
์์ฝํ์๋ฉด ์ด๊ฒ์ด ๋ ์์ฐ์ ์ธ ์ค๋ ๋๋ผ๋ฉด ๊ธฐ์ฉ๋๋ค. "๋๊ฐ ์๋ชป ๋์๋๊ฐ"๋ผ๋ฉด ์ ๊ทธ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ.
@stooboo ์ @gaearon์ด ์์ ํ ๋ง์ต๋๋ค. ์์ ์๊ฒฌ์ด์ด ์ํฐ์ผ์ ์ด ๊ธฐ๊ณ ๋น๋์ ๋ฐ์๊ฑฐ๋ ๋ด๊ฐ ๋น์ ์๊ฒ ๋ฌด๋กํ๋ค๊ณ ๋๋๋ค๋ฉด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ ๋ ๊ทธ๋ฌํ ํ๋ก์ ํธ๋ฅผ ์ ์งํ๋ ๋ฐ ๋ง์ ๋
ธ๋ ฅ๊ณผ ์๊ฐ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ง๊ธ๊น์ง ํ๋ฅญํ๊ฒ ์ํํ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ๊ฐ์ฌํฉ๋๋ค. ๋ด ์๋๋์ด ๋ฌธ์ ๋ง ์ง์ ํ๋ ๊ฒ์ด์๋ค.
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋์ด ๊ฐ๊ณ ์ด ์ค๋ ๋๊ฐ ํ์์ ๊ฐ์ด ์งํํ๋๋กํด์ผํ๋ค๊ณ ๋งํ๋ค ..
๋ถ๋๋ฝ๊ณ ๋ถ๋๋ฝ์ต๋๋ค. ์ ๋๊ธ @gaearon ์ ๋ง ์ฃ์กํฉ๋๋ค. ๋ณ๋ช ์ ์ฌ์ง๊ฐ ์์ง๋ง ์ด๋ฒ์ฃผ๋ ์ ์๊ฒ ํ๋ ์ผ์ด์๊ณ , ๋ต๋ตํ ์๊ฐ์ ๋๋ ํ๋ฅผ ๋์ต๋๋ค. ์ ๋ง ์ฃ์กํฉ๋๋ค. ์ด ๋๋ผ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค .
๋ํ ๋ช ๊ฐ์ง ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค. ES5์์ ์์ ๊ฐ ์์ฑ๋์ง ์์ ์ด์ ๋ ๋ด๊ฐ 1.0์ ์์ฑํ ์ฃผ๋ _reason_์ ES6 ํด๋์ค์์ 0.x๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ์๋ ์ฌ๋๋ค ์ด์๊ธฐ ๋๋ฌธ์ ๋๋ค : # 109.
์์ ์์ ES6 ํด๋์ค์์ด ES6 ํด๋์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ 1.0์ ๋ฆด๋ฆฌ์คํ๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค. ๋ฐ๋ผ์ ES6๋ฅผ ๋ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
React๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ _ ์ด๋ฏธ _ ๋น๋ ๋จ๊ณ๊ฐ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. JSX๋ฅผ ์ปดํ์ผํด์ผํ๋์? (๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฌ์ฉํฉ๋๋ค.) ์ด๋ฏธ ๋น๋ ๋จ๊ณ๊ฐ์๋ ๊ฒฝ์ฐ JSX ๋น๋ ๋จ๊ณ๋ฅผ Babel ๋น๋ ๋จ๊ณ๋ก ๋์ฒดํ๋ ๋ฐ ๋น์ฉ์ด ๋ค์ง ์์ต๋๋ค. ์ฌ์ค ๊ทธ๊ฒ ํ์ด์ค ๋ถ๋ ํ ์ผ์ ๋๋ค.
์ ๋ ์ ๊ฐ ๊ฐ์ฐ์ํด์ผํ๋ค๋ ๊ฒ์ ์๊ณ ์์๊ธฐ ๋๋ฌธ์ ์ ์ ๋์์ด ๋์๊ด์ "๊ฑธ๊ธฐ ์ํด"๋ ๋์ผํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ _ ๋ค๊ฐ ์๋ ์์ ๋ด๋ค ๋ณด๋ฉฐ '๊ตฌ์ถํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๊ทธ๋์ ๋ด ๊ฐ์ญ์์ด ์ค์ค๋ก ์๊ฐ์ ๋ณด๋ผ ์์๋ค.
@jeffreywescott ๋ฌธ์ ์์ต๋๋ค. ํ์ํฉ๋๋ค. ๋ฏธ์ํ๋ค๊ณ ๋งํด์ค์ ๊ณ ๋ง์. ๋๋ ์ ๋ง๋ก ๊ฐ์ฌํ๊ณ ํ๋ ธ๋ค๋ ๊ฒ์ ์ธ์ ํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
: +1 :
@BTS_twt แ แ แ แ แ แ แ แ
๋๋ ํํ ๋ฆฌ์ผ ๋๋ถ๋ถ ES5 (I ๋๋ฌด ES6์ ๋ฐฐ์ธ ์ฒ์ฒํ,ํ์ง๋ง ๋๋ ๊ฒฐ๊ตญ ๋ด๊ฐ ๋ถ๋ช ํ JSX๋ฅผ ์ฌ์ฉํ๊ณ ์์ด ๋๋ฌธ์ ํจ๊ป ๋ค์ destructuring :) https://github.com/jehoshua02/react-dnd-experiment
์ฌ๊ธฐ์์ ES5 ์์ ๋ฅผ ์ถ์ ํ์ญ์์ค.
https://github.com/vkbansal/react-dnd-es5-examples
@vkbansal์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ง์นจ๋ด ์๋ฃ ํ ์๊ฐ์ด ์๊ฒผ์ต๋๋ค : http://vkbansal.github.io/react-dnd-es5-examples/
์ฌ๋๋ค์ ๊ฐ์ ์ ๋ถ๋ฌ ์ผ์ผํค๋ ค๋ ์๋๊ฐ ์๋์๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๊ทผ ํ ์ ์๋๋ก ๋๊ณ ์ถ์๊ณ , ES6๋ก ์ ํํ๋๋ผ๋ ์ฌ์ ํ ์ฌ์ฉํ์ง ์์ ์คํ์ ์ธ ES7 ๊ธฐ๋ฅ์ด ํฌํจ ๋ ์์ ์ ๋ํด ์ฃผ๋ก ์ฐ๋ คํ์ต๋๋ค. ES6๊ฐ ์์ฑ๋์์ผ๋ฏ๋ก ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ES6๋ก ๊ณ์ ๋ฐ์ด ๋ถ์ด๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. @ gearon ์ด ES6 ์ฝ๋๋ฅผ ์ฐ์ ์์๋ก ์ทจ๊ธํ๋ ๋ฐ ์ฌ๋ฐ๋ฅธ ์ ํ์ํ๋ค๊ณ ์๊ฐ ๋งํ๋ฉด ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๋น๋ ๋จ๊ณ์ ๋ํด ์ค๋ช ํ๊ธฐ ์ํด ๋น๋ ํ๊ฒฝ์๋ JSX ๋น๋ ๋จ๊ณ๊ฐ ์์ง๋ง, ๋น๋ ํ๊ฒฝ์ Node.js๊ฐ ์๋๋ผ ๋ค๋ฅธ ์ธ์ด๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ JSX ๋์ Babel์ "์ฐ๊ฒฐ"ํ๋ ๊ฒ๋ง ํผ ๊ฐ๋จํ์ง๋ ์์ต๋๋ค. ๋น๋์ ๋ํด ๋ฐ๋์ ์ฑ ์์ง์ง ์๋ ํ์์ ์ผํ๊ณ ์์ต๋๋ค.
@vkbansal ์ ๊ฐ์ฌ ๋๋ฆฌ๋ฉฐ ์ฒ์๋ถํฐ ๋ชจ๋ ์์ ์ ๋ํด @gaearon ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ตฌ๋ฌธ ์ ๋จ์์ฑ / ๊ฐ๊ฒฐํจ์ ์ํด ES7์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ด๋ จ๋ ๋ชจ๋ ์ฌ๋์ด ๊ตฌ๋ฌธ์ ์ญ์ฌ์ ๋ณํ์ ์๊ณ ์๋ ๊ฒฝ์ฐ์๋ง ์๋ํฉ๋๋ค.
@vkbansal ์์ ๋ฅผ ๋ชจ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋ ๋ฒ์งธ ํญ๋ชฉ์ ์ :
var DragSourceDecorator = DragSource(ItemTypes.CARD, cardSource,
function(connect, monitor) {
return {
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
};
});
var DropTargetDecorator = DropTarget(ItemTypes.CARD, cardTarget,
function(connect) {
return {
connectDropTarget: connect.dropTarget()
};
});
module.exports = DropTargetDecorator(DragSourceDecorator(Card));
Card = (0, _reactDnd.DragSource)(_ItemTypes2['default'].CARD, cardSource, function (connect, monitor) {
return {
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
};
})(Card) || Card;
Card = (0, _reactDnd.DropTarget)(_ItemTypes2['default'].CARD, cardTarget, function (connect) {
return {
connectDropTarget: connect.dropTarget()
};
})(Card) || Card;
return Card;
ํธ์ง : ์ค์๋ก @emergentcypher ๋ฅผ es5 ์์ ์์ฑ์๋ก ์ฐธ์กฐ
์ทจ ํ์ด?
์ฃ์กํฉ๋๋ค! ์๋ชป๋ ์ฅ์์ ๋๊ธ์ ๋ฌ์์ต๋๋ค!
@adamellsworth ์๋ฌด๋ ES7์ ์ฌ์ฉํ๋๋ก ๊ฐ์ํ์ง
์ฌ๋๋ค์ ๋๊ธ์ ๋ฌ ๊ถ๋ฆฌ๊ฐ ์์ต๋๋ค! ์ด๊ฒ์ด ์คํ ์์ค์ ์ข์ ์ ์ ๋๋ค. ๋๋ "์ ๊ฑฐํด์ฃผ์ธ์"๋ผ๋ ๋ง์ด ์ ์๋ฅผ ๊ดด๋กญํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์์ฑ์๊ฐ ๋๊ธ๊ณผ ์์ฒญ์ ๋ฐ๊ณ ์ถ์ง ์๋ค๋ฉด github์ ์์ ์ ๊ฒ์ํด์๋ ์๋ฉ๋๋ค.
์ด์ ES5 ์์ ๊ฐ ์์ผ๋ฏ๋ก ์ง์ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. :)
์ฌ๋๋ค์ ๋๊ธ์ ๋ฌ ๊ถ๋ฆฌ๊ฐ ์์ต๋๋ค! ์ด๊ฒ์ด ์คํ ์์ค์ ์ข์ ์ ์ ๋๋ค.
@emergentcypher ๋น์ ์ด ๋ง์ต๋๋ค.
@gaearon ์ ๋ชจ๋ ์ฌ๋๋ค์ด ES7์ ์ฌ์ฉํ๋ ๋ฐ ์ต์ํ์ง ์๋ค๋ ๊ฒ์ ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์น ์ฌ์ดํธ์ ES6 ๋ฐ ES5 ์์ ๋ฅผ ๋ฃ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ์ต๋๋ค.
์์ฑ์๊ฐ ๋๊ธ๊ณผ ์์ฒญ์ ๋ฐ๊ณ ์ถ์ง ์๋ค๋ฉด github์ ์์ ์ ๊ฒ์ํด์๋ ์๋ฉ๋๋ค.
์, ์์ฑ์๋ ์๊ฒฌ๊ณผ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ง๋ง ๊ฑด์ค์ ์ ๋๋ค.
๋น์ ์ด ๊ทธ / ๊ทธ๋ ์ ์ผ๊ตด์ ์ซ์ดํด์ ๋น์ ์ด ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ง์ผ๋ก ์์ ํ ๋ญ๊ฐ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ ์๋ฅผ ์๊ตฌํ๋ฉด ์์ฌ์๊ฒ ๊ฑธ์ด์ ๋๋ฃ์ ๋ถ ํ๋์ ๊ทธ์๊ฒ ๋ฌป๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น์ ์ ์์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ํด ์ฌ๋๋ค์ด ES6 (๊ทธ๋ฆฌ๊ณ ๋ ๋์ ๊ฒ์ ES7) ๊ตฌ๋ฌธ์ ๋ฐฐ์ฐ๋๋ก ๊ฐ์ํ๋ ๊ฒ์ _best_์์ _hostile_์ ๋๋ค. ์ด๊ฒ์ ๋๋ผ์ด ๋ชจ๋์ฒ๋ผ ๋ณด์ ๋๋ค. ์์ํ์ง ์์ ์ฌ๋๋ค์ ์ํด ES5 ๋ฒ์ ์ _one_ ์์ ๋ฅผ ES5 ์์ ํด๋๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ ์ด๋ป์ต๋๊น? PR์ ์๋ฝํ๊ฒ ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋์์ด๋์ง ์์ต๋๋ค. ์์ ๋ฅผ ์์ฒญํ๋ ์ฌ๋๋ค์ ์ฒ์๋ถํฐ ES6 ๋ฐ ES7์ ์ต์ํ์ง ์์ ์ ์์ต๋๋ค.
๋ฅด ํ์จ.