react 상품 등록 폼 만들기
react 상품 등록 폼 만들기
onClick, onChange, e.target.value/name 이나 함수 관련 내용을 내것으로 만들기 위해서 간단히 제작.
useRef() 사용해서 input 태그상태 조절해보기
1. useRef() 생성해서 변수에 저장
2. ref={변수}를 원하는 배열에 집어넣어서 제어 -> 자꾸 넣는걸 까먹는다.
두 경우 모두, useRef는 렌더링 사이에도 값이 유지되는 "상자"처럼 작동합니다. 그러나 대부분의 사용 사례에서는 DOM 요소를 참조하기 위해 null로 초기화하는 것이 일반적입니다. useRef는 리렌더링을 발생시키지 않으며, .current 속성을 통해 현재 참조된 값을 얻을 수 있습니다.
input 내용 List에 전달해서 추가하기
input 데이터를 추가하기 위해서 코드를 작성중 모르는 부분이 나왔다.
이렇게 매개변수로 전달한 값이 바로 객체에 저장된다고?
=> 된다.
이것이 바로. 속성 단축
속성 단축(Property Shorthand)은 ES6에서 도입된 자바스크립트 문법으로, 객체 리터럴을 생성할 때 속성의 키(key)와 값을 할당하는 변수의 이름이 같을 경우, 코드를 더 간결하게 작성할 수 있게 해줍니다.
속성 단축(Property Shorthand)이란?
속성 단축을 사용하면, 객체 리터럴에서 키와 값을 할당하는 변수가 같은 이름을 가질 때, 키:값 쌍을 한 번만 쓰면 됩니다. 즉, { key: key } 대신 { key }만 써도 됩니다.
매개변수 값들은 키에 저장되나요, value(값)에 저장되나요?
함수의 매개변수로 받은 값들은 객체 생성 시 해당 키의 값으로 저장됩니다.
객체 구조 분해 할당을 통한 '객체리스트.map(({함수 속성})=>(<div>{함수속성}<div>))'으로 객체 데이터 추출
코딩 테스트 때 객체 출력에 굉장히 애먹던 적이 많아서 객체 관련해서 정리를 하게되었다.
객체 구조 분해 할당은 객체의 특정 속성을 변수로 직접 추출할 수 있게 해주는 JavaScript의 기능입니다. 이를 사용하면 각 객체의 속성을 쉽게 추출하여 사용할 수 있습니다.
log({ 키속성 } )으로 출력 => {key: value } 형태로 출력
log(키속성) 으로 출력 => value 값만 출력
List 컴포넌트, props로 옮기기.
Listdata 전체가 it의 인자로 받아져서 다시 {...인자}로 감싸져서 나가진다.
이러면 it 은 ListData의 인자로서 속성값: value 이런식으로 옮겨지나?
그럼 다시 it을 굳이 {...it}을 해줘서 감싸주는 이유가 뭐지?
그리고 이번건 props 할때 왜 it={...it} 이런식으로 안해줘도 되는거지?
이 코드는 React에서 배열의 각 요소를 컴포넌트로 변환하는 방법을 보여줍니다. 여기서 ListData.map((it) => (...))는 ListData 배열의 각 요소를 it이라는 변수로 순회하면서, 각 요소를 BudgetItem 컴포넌트의 prop으로 전달합니다.
it의 역할
it는 ListData 배열의 각 요소를 나타냅니다. 예를 들어, ListData가 다음과 같은 객체의 배열이라고 가정해 봅시다
map 함수가 실행될 때, it는 배열의 각 객체를 차례대로 가리킵니다.
여기 setData()를 자세히봐보자.
괜히 []로 객체들을 감싸서 객체를 갱신시켜주는게 아니였다. 와....
전개 연산자(...)의 역할과 사용 이유에 대해 정리
객체의 각 속성을 개별 props로 전달하기 위해 사용:
- map 함수를 사용할 때, it은 ListData 배열의 각 객체를 나타냅니다. <BudgetItem key={it.상품코드} {...it}/>에서 ...it는 전개 연산자를 사용하여 it 객체의 모든 속성(키-값 쌍)을 BudgetItem 컴포넌트의 개별 props로 전달합니다.
전개 연산자(...) 사용의 이유:
- 전개 연산자를 사용하면 각 속성을 개별적으로 나열할 필요 없이, 객체의 모든 속성을 한 번에 컴포넌트의 props로 전달할 수 있습니다. 이 방식은 코드를 더 간결하고 명확하게 만듭니다.
it={...it} 대신 {...it}를 사용하는 이유:
- it={...it} 형태를 사용하면, 모든 속성이 it라는 단일 prop에 객체로 전달됩니다. 반면, {...it}를 사용하면 각 속성이 개별적인 prop으로 전달됩니다. 이렇게 되면 BudgetItem 컴포넌트 내에서 this.props.상품코드, this.props.상품이름 등과 같이 직접 각 속성에 접근할 수 있게 됩니다. 이는 컴포넌트의 사용성과 가독성을 높여줍니다.