React.js์์ ์ฝ๊ฒ drag and drop ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ react-beautiful-dnd์ ๊ณต์ ํํ ๋ฆฌ์ผ ๋น๋์ค์ ๋ด์ฉ์ ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ฉด์ ์ ๋ฆฌํ๋ ๋ธ๋ก๊ทธ ๊ธ์ ์ฌ์ฉ๋ ๋ธ๋ก๊ทธ ๋ ์๋ถ๋ค์ ๋์๋๋ฆฌ๊ธฐ ์ํ Github Repo ์ ๋๋ค.
์ด ๋ ํฌ์งํ ๋ฆฌ๋ yarn berry zero-install์ ์ฌ์ฉํฉ๋๋ค. git clone
์ ํตํด์ clone ํ ์ดํ์ ์๋์์ ์๊ฐํ ํ๊ทธ๋ค์ ํ์ฉํด์ checkout
ํด์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
Create-react-app์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ์, ์คํ ํด๋ณด๋ ค๋ฉด yarn start
๋ก ์คํํ๋ฉด ๋ฉ๋๋ค.
์ต์ ๋ฒ์ Ubuntu 22.04์์ Visual Studio Code๋ก ์๋์ด ๋จ์ ํ์ธํ์์ต๋๋ค. ๋ง์ฝ, ์คํ์ด ์๋๋ ํ๊ฒฝ์ด ์์ผ๋ฉด issue๋ฅผ ๋จ๊ฒจ ์ฃผ์ธ์!
๊ฐ์ ๋ด์ฉ์ ๋ฐ๋ผ์ค๋ฉด์, ์ฌ์ฉํ ์ฝ๋๋ฅผ ์ง์ ํ์ธํด๋ณด์๊ณ ์ถ๋ค๊ณ ์? ์ด ๋ ํฌ์์ ์ ์๊ฐ ๋ฌ์๋์ ์ฝ๋๋ฅผ ํ์ฉํด์ ํ์ํ ๋ถ๋ถ์ ์ฒดํฌ์์ํด์ ํ์ธํด ๋ณด์ธ์.
git checkout <ํ๊ทธ ๋ช
>
- init : ์ด๊ธฐ repo ์ค์ ๋ฐ ์คํ์ผ๋ง
- intro : ์ฒซ๋ฒ์งธ ์๊ฐ ๊ธ์์ ๋ค๋ฃฌ ๋๋ถ๋ถ
- resultPersistence : ๋๋ฒ์งธ ์๊ฐ ๊ธ์์ ๋ค๋ฃฌ
onDragEnd
์์ฑํ๊ธฐ ๋ถ๋ถ - styleUsingSnapshot : ๋๋ฒ์งธ ์๊ฐ ๊ธ์์ ๋ค๋ฃฌ snapshot ์ธ์๋ฅผ ์ด์ฉํ ์คํ์ผ๋ง ๋ถ๋ถ
- callbackGlobalStyle : ๋๋ฒ์งธ ์๊ฐ ๊ธ ๋ค๋ฃฌ
DragDropContext
์ ์ฝ๋ฐฑ์ ์ด์ฉํ ์คํ์ผ๋ง ๋ถ๋ถ - specificDrag : ์ธ๋ฒ์งธ ์๊ฐ ๊ธ์์ ๋ค๋ฃฌ Drag Handle ๋ฐ๋ก ์ง์ ํ๊ธฐ ๋ถ๋ถ
- multipleColumn : ์ธ๋ฒ์งธ ์๊ฐ ๊ธ์์ ์ฌ๋ฌ Column๊ฐ item ์ด๋ ๋ถ๋ถ
- isDragDisabled : ์ธ๋ฒ์งธ ์๊ฐ ๊ธ์์
isDragDisabled
๋ฅผ ์ด์ฉํด์ ๋๋๊ทธ ์ ํํ๊ธฐ ๋ถ๋ถ - controlWithType : ์ธ๋ฒ์งธ ์๊ฐ ๊ธ์์
TYPE
์ ์ด์ฉํด์ drag๋ฅผ ๋ ์์ธํ ์ ์ดํ๊ธฐ ๋ถ๋ถ - isDropDiabled : ์ธ๋ฒ์งธ ์๊ฐ ๊ธ์์ isDropDisabled๋ฅผ ์ด์ฉํ ์ ์ด ๋ถ๋ถ
- horizontalDnd : ๋ค๋ฒ์งธ ์๊ฐ ๊ธ์์ ์ํ๋ฐฉํฅ dnd ๋ง๋ค๊ธฐ ๋ถ๋ถ
- columnReorder : ๋ค๋ฒ์งธ ์๊ฐ ๊ธ์์ Column ์ฌ์ ๋ ฌ ๋ถ๋ถ
๋ณธ ๋ ํฌ์งํ ๋ฆฌ์์๋ ์๋์ ๊ฐ์ ํ ํฌ ์คํ์ ์ฌ์ฉํฉ๋๋ค.