[TIL]21.06.10

박주홍·2021λ…„ 6μ›” 10일
0

Today I Learned

λͺ©λ‘ 보기
32/104

πŸ‘¨β€πŸ’» 였늘 κ³΅λΆ€ν•œ 것

Section1 HAμ‹œν—˜μ„ λ‹€μ‹œ 보고..

ν•œμΈ΅ 더 μˆ˜μ›”ν•΄μ§„ 덕인지 문제 해결을 ν•˜λŠ” 데, 쑰금 더 μΉ¨μ°©ν•˜κ³  μ²΄κ³„μ μœΌλ‘œ μ‹œκ°„μ„ μ‚¬μš©ν•œ 것 κ°™λ‹€. 빨리 배우고 μˆ˜λ£Œν•΄μ„œ μ·¨μ—…ν•˜κ³  싢은 마음이 λ°”λ‹€κ°™μ§€λ§Œ 페인트λ₯Ό μ’€ 더 μ°ν•˜κ²Œ μΉ ν–ˆλ‹€λŠ” λΏŒλ“―ν•œ λ§ˆμŒκ°€μ§μœΌλ‘œ λ‹€μŒ μ„Ήμ…˜μ„ μ€€λΉ„ν•˜μž...



  • μ΄λ²€νŠΈν•Έλ“€λŸ¬ μ‚¬μš©λ²•
  • 1. μ΄λ²€νŠΈν•Έλ“€λŸ¬μ— ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•˜κ³ , κ·Έ ν•¨μˆ˜μ•ˆμ— μ½œλ°±ν•¨μˆ˜λ‘œ stateλ₯Ό κ°±μ‹ ν•˜λŠ” ν•¨μˆ˜λ₯Ό(useState둜 μ„ μ–Έν•œ) λ¦¬ν„΄ν•˜λ©΄ ꡳ이 이벀트 객체λ₯Ό μ“°μ§€μ•Šκ³ λ„ aνƒœκ·Έκ°™μ€κ²½μš° 뭐가 ν΄λ¦­λ¬λŠ”μ§€ μ½œλ°±ν•¨μˆ˜μ˜ 인자둜 μ•Œ 수 μžˆλŠ”, 확인할 수 μžˆλŠ” 값을 λ„£μ–΄μ£Όλ©΄ 동적인 κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆλ‹€.

    onClickμ΄λž€ μ΄λ²€νŠΈν•Έλ“€λŸ¬μ— ν•¨μˆ˜ ν•˜λ‚˜λ₯Ό ν• λ‹Ήν•΄μ£Όκ²Œλ˜λ©΄ κ·Έ ν•¨μˆ˜λŠ” 인자둜 μ΄λ²€νŠΈκ°μ²΄ν•˜λ‚˜λ§Œ μ‚¬μš©λ˜λ―€λ‘œ λ‹€λ₯Έ 인자λ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•˜λ©΄λœλ‹€. (ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” κ³ μ°¨ν•¨μˆ˜κ°œλ…μ„ μ‚¬μš©ν•œ 것)

    λ˜ν•œ 그럴 ν•„μš”κ°€ 없을 λ•ŒλŠ” 이벀트객체λ₯Ό μ‚¬μš©ν•΄λ„ λ¬΄λ°©ν•˜λ‹€. μ„ΌμŠ€μžˆκ²Œ μ‚¬μš©ν•˜μž.

    const [value, setValue] = useState(0);
    
    const handleValue = (_value) =>{
    	console.log(_value);
    }
    
    {
      for(let i = 0; i < 3; i++){
    	<a onClick={function(){
      	handleValue(`${i + 1}번클릭`);
      }}></a>
       }
    }
  • Element.appendChild()
  • λ§Œμ•½ document.create('li')둜 λ§Œλ“  liνƒœκ·Έμ— 각 μ΄λ²€νŠΈν•Έλ“€λŸ¬μ™€ ν΄λž˜μŠ€μ΄λ¦„μ„ 가지고 μžˆλŠ” νƒœκ·Έλ“€μ„ append, μΆ”κ°€ν•˜κ³  μ‹Άλ‹€λ©΄ μ²˜μŒμ—λŠ” append해도 λ˜μ§€λ§Œ λ‘λ²ˆμ§ΈλΆ€ν„° μΆ”κ°€ν•  λ•Œμ—λŠ” appendChild()둜 μΆ”κ°€ν•  것



  • Dom으둜 μ΄λ²€νŠΈν•Έλ“€λŸ¬μ— ν•¨μˆ˜ν• λ‹Ήν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 법

  • let arr = ['Ha', 'Park', 'Caerin', 'Juhong']
    
    const printName = (_value) => {
    	console.log(_value);
    }
    
    function makeLi(arr){
    	let liMaker = document.createElement('li');
      	for(let i = 0; i < arr.length; i++){
          	   let aMaker = document.createElement('a');
          	   aMaker.classList.add = 'arr[i]';
          	   aMaker.onclick = function(){
               	printName(arr[i]);
               } // κ³ μ°¨ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•¨, printNameλ₯Ό μ½œλ°±ν•¨μˆ˜λ‘œ μ‚¬μš©ν•¨
          	   liMaker.append(aMaker);
        }
    }

    λ‹€μŒκ³Ό 같이 DOM으둜 onclick에 ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•˜κ³  싢은 데 λ³€μˆ˜λ₯Ό 인자둜 λ°›κ³ μ‹Άλ‹€? κ·Έλ ‡λ‹€λ©΄ κ³ μ°¨ν•¨μˆ˜, μ½œλ°±ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€. 예λ₯Όλ“€μ–΄ onClick에 ν•¨μˆ˜ ν•˜λ‚˜λ§Œ ν• λ‹Ήν•˜κ²Œ 되면 인자λ₯Ό 받을 수 μ—†κΈ°λ•Œλ¬Έμ΄λ‹€. (μ™œ μΈμ§€λŠ”...)

    λ‹€μŒκ³Ό 같이 였λ₯˜λ‚˜λŠ” μ½”λ“œλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œ ν›„ κ·Έ ν•¨μˆ˜μ˜ μ£Όμ†Œλ₯Ό onClick에 ν• λ‹Ήν•œλ‹€.

    그럼 인자λ₯Ό 써버린 후에 append둜 μΆ”κ°€λ˜κΈ° λ•Œλ¬Έμ— 막상 htmlμ—μ„œλŠ” 인자λ₯Ό μ‚¬μš©ν•˜μ§€ λͺ»ν•˜λ―€λ‘œ, undefinedκ°€ μ½˜μ†”μ— 좜λ ₯될 것이닀.

    였λ₯˜λ‚˜λŠ” μ½”λ“œ
    aMaker.onClick = printName(arr[i]);
    profile
    κ³ ν†΅μ—†λŠ” μ„±μž₯은 μ—†λ‹€κ³  ν•  수 μžˆκ² λ‹€....

    0개의 λŒ“κΈ€