κΈ°λ₯ μ μμ²νκ±°λ λ²κ·Έλ₯Ό λ³΄κ³ νμκ² μ΅λκΉ?
λ²λ
νμ¬ νλμ 무μμ
λκΉ?
key
λ₯Ό κ° item μμμ κ³ μ ν μμ±μΌλ‘ μ€μ νμ¬ νλͺ© λͺ©λ‘μ λ λλ§ν λ μ΄μ λ λλ§μμ νλͺ© μμκ° λ³κ²½λλ©΄ μΈλ±μ€κ° λ³κ²½λ νλͺ© μμκ° λ€μ λ λλ§λμ§ μκ³ λ€μ λ λλ§(μ μΈμ€ν΄μ€ μμ±)λ©λλ€. -κΈ°μ‘΄ μΈμ€ν΄μ€ μ¬μ©(ν€λ₯Ό ν΅ν΄ 맀νλ¨).
μλ₯Ό λ€μ΄ https://codesandbox.io/s/r5p48kzop
id
, top
, left
& color
μνμ΄ μλ κ° μμλ‘ boxes
λͺ©λ‘μ λ λλ§ν©λλ€. 750ms
λ§λ€ boxes
λ°°μ΄ λ΄μ λͺ¨λ μμμ λν ( top
, left
) κ°μ μ
λ°μ΄νΈν©λλ€.
μ λ°μ΄νΈνλ λμ μμμ μμκ° λ³κ²½λμ§ μμΌλ©΄ λͺ¨λ μμκ° μ μμΉλ‘ μ λλ©μ΄μ λ©λλ€. κ·Έλ¬λ μμλ₯Ό μλ 31νμ μ£Όμμ μ κ±° νλ©΄ μ΄μ λ λλ§μμ μμΉλ₯Ό μ μ§νλ μμλ§ μ μμΉλ‘ μ λλ©μ΄μ λ©λλ€.
μλλ°μ€μμ μ΄ λμμ κ΄μ°°ν μ μμ΅λλ€. _shuffle
λ₯Ό μΌλ©΄ μμκ° μ μμΉλ‘ μ ννλ λ°λ©΄ _shuffle
κΊΌμ Έ μμΌλ©΄ νμ μ λλ©μ΄μ
μ΄ μ μ©λ©λλ€.
νμ¬ λμμ΄ λ²κ·ΈμΈ κ²½μ° μ¬ννλ λ¨κ³μ κ°λ₯ν κ²½μ° λ¬Έμ μ λν μ΅μνμ λ°λͺ¨λ₯Ό μ 곡νμΈμ. μλμ JSFiddle(https://jsfiddle.net/Luktwrdm/) λλ CodeSandbox(https://codesandbox.io/s/new) μμ μ λν λ§ν¬λ₯Ό λΆμ¬λ£μ΅λλ€.
https://codesandbox.io/s/r5p48kzop
μμλλ λμμ 무μμ
λκΉ?
boxes
μ μμμ κ΄κ³μμ΄ λͺ¨λ μμ μμλ κ³ μ ν key
μμ±μ΄ μ€μ λμ΄ μμΌλ―λ‘ μ μμΉμ μ λλ©μ΄μ
ν¨κ³Όλ₯Ό μ μ©ν΄μΌ ν©λλ€.
μ΄λ€ λ²μ μ Reactμ μ΄λ€ λΈλΌμ°μ /OSκ° μ΄ λ¬Έμ μ μν₯μ λ°λμ?
λ°μ 16.3.2
& 16.4.1
, Chrome, MacOS.
μλ νμΈμ @dhruvparmar372μ λλ€!
μ΄κ²μ DOMμ νκ³μΈ κ² κ°μ΅λλ€. μ΄λ₯Ό 보μ¬μ£ΌκΈ° μν΄ λ DOM λ Έλμ μμλ₯Ό λ³κ²½ν λ€μ μ νμ νΈλ¦¬κ±°νλ ν΄λμ€λ₯Ό μ μ©νλ μ΄ JSFiddle μ λ§λ€μμ΅λλ€.
μμλ₯Ό λ³κ²½νκ³ μ λλ©μ΄μ μμ±μ μ λ°μ΄νΈνλ μ¬μ΄μ 리νλ‘μ° λ₯Ό νΈλ¦¬κ±°νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
<Box />
λ₯Ό ν΄λμ€ κ΅¬μ± μμλ‘ λ³κ²½νκ³ μμ±μμμ κ³ μ IDλ₯Ό μμ±νμ¬ Reactμ μν΄ κ΅¬μ± μμκ° λ€μ μμ±λ λ CodeSandboxμ μ½κ°μ μ½λλ₯Ό μΆκ°νμ΅λλ€. 보μλ€μνΌ IDλ μΌκ΄λκ² μ μ§λ©λλ€. https://codesandbox.io/s/jn42wvl343
κ·Έ μΈμλ μ
λ°μ΄νΈλ₯Ό λ κ°μ setState
λ‘ λΆν νμ¬ μμ μ 리νλ‘μ° ν΄κ²° λ°©λ²μ μ μ©νμ΅λλ€. 첫 λ²μ§Έλ μμλ₯Ό λ³κ²½ν λ€μ 리νλ‘μ°λ₯Ό νΈλ¦¬κ±°νκ³ λμ€μ μμΉλ₯Ό λ³κ²½ν©λλ€. μ΄κ²μ Chrome, Firefox, Safari λ° Edgeμμ μ λλ‘ μλνλ κ² κ°μ΅λλ€(CodeSandboxλ IE11μ μ§μνμ§ μμΌλ―λ‘ ν΄λΉ λΈλΌμ°μ μμ ν
μ€νΈν μ μμ).
μλ νμΈμ @philipp-spies λ¬Έμ μ ν΄κ²° λ°©λ²μ λν μλ₯Ό λͺ νν ν΄ μ£Όμ μ κ°μ¬ν©λλ€.
μλ νμΈμ, @philipp-spies
λͺ©λ‘ μ λ ¬κ³Ό κ°μ λ¬Έμ κ° μμ΅λλ€ π
λΆννλ μμ Codesandbox μμ λ λ μ΄μ μλνμ§ μμ΅λλ€(
λ€μμ μμ
λλ€.
https://jsfiddle.net/9odLvbrx/
κ°λ¨ν CSS μ νμΌλ‘ ν΄λ¦ μ νλͺ©μ μ λ ¬ν©λλ€.
λ¬Έμ λ μ νμ΄ μ νν νλͺ©μλ§ λνλκ³ λλ¨Έμ§ νλͺ©μ μλ΅λλ€λ κ²μ
λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μκ³ μμ§λ§(μ½λμ μ£Όμ μ²λ¦¬λ¨) νλͺ© μλμ΄ μ λ λ³κ²½λμ§ μλ λͺ©λ‘μμλ§ μ λλ‘ μλν©λλ€. λ°λΌμ νλͺ©μ μΆκ°νκ±°λ μ κ±°νλ €λ©΄ νλͺ©μ΄ μμ²λκ² λ³΅μ‘ν΄μ§λλ€. 리νλ‘μ° κ³ΌλΆν μ루μ μ μ¬μ©νμ¬ λ΄ μμμ λ°μνλλ‘ νλ €λ©΄ μ΄λ»κ² ν΄μΌ ν©λκΉ?
미리 κ°μ¬λ립λλ€! π
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ @dhruvparmar372μ λλ€!
μ΄κ²μ DOMμ νκ³μΈ κ² κ°μ΅λλ€. μ΄λ₯Ό 보μ¬μ£ΌκΈ° μν΄ λ DOM λ Έλμ μμλ₯Ό λ³κ²½ν λ€μ μ νμ νΈλ¦¬κ±°νλ ν΄λμ€λ₯Ό μ μ©νλ μ΄ JSFiddle μ λ§λ€μμ΅λλ€.
μμλ₯Ό λ³κ²½νκ³ μ λλ©μ΄μ μμ±μ μ λ°μ΄νΈνλ μ¬μ΄μ 리νλ‘μ° λ₯Ό νΈλ¦¬κ±°νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
<Box />
λ₯Ό ν΄λμ€ κ΅¬μ± μμλ‘ λ³κ²½νκ³ μμ±μμμ κ³ μ IDλ₯Ό μμ±νμ¬ Reactμ μν΄ κ΅¬μ± μμκ° λ€μ μμ±λ λ CodeSandboxμ μ½κ°μ μ½λλ₯Ό μΆκ°νμ΅λλ€. 보μλ€μνΌ IDλ μΌκ΄λκ² μ μ§λ©λλ€. https://codesandbox.io/s/jn42wvl343κ·Έ μΈμλ μ λ°μ΄νΈλ₯Ό λ κ°μ
setState
λ‘ λΆν νμ¬ μμ μ 리νλ‘μ° ν΄κ²° λ°©λ²μ μ μ©νμ΅λλ€. 첫 λ²μ§Έλ μμλ₯Ό λ³κ²½ν λ€μ 리νλ‘μ°λ₯Ό νΈλ¦¬κ±°νκ³ λμ€μ μμΉλ₯Ό λ³κ²½ν©λλ€. μ΄κ²μ Chrome, Firefox, Safari λ° Edgeμμ μ λλ‘ μλνλ κ² κ°μ΅λλ€(CodeSandboxλ IE11μ μ§μνμ§ μμΌλ―λ‘ ν΄λΉ λΈλΌμ°μ μμ ν μ€νΈν μ μμ).