Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발일지

리액트 함수 선언 본문

Front-end/React

리액트 함수 선언

YUDENG 2023. 5. 4. 11:41

< 함수형 컴포넌트 >

새로 만들 컴포넌트가 라이프사이클 API와 state를 사용하지 않고, props만 전달해주면 뷰를 렌더링 해주는 역할일 경우 주로 사용한다.

function 함수명 (파라미터) {
	//코드 블럭
}

장점

  • 클래스형보다 선언하기 편함
  • 메모리 자원 절약

리액트 공식 메뉴얼에서는 컴포넌트를 작성할 때 함수형 컴포넌트 + Hooks를 사용하도록 권장하고 있다고 한다.

 

< 화살표 함수 >

ES6부터 도입된 새로운 함수 선언 방식으로, 간단하고 간결한 문법으로 함수를 선언할 수 있다.

화살표 함수가 기존 function()을 완전히 대체할 수는 없다. 일반 함수는 자신이 종속된 객체를 this로 가리키고, 화살표 함수는 자신이 종속된 인스턴스를 가리킨다. 화살표 함수는 값을 연산하여 바로 변환해야 할 때 사용한다.

(param1, param2, ..., paramN) => {statements}

//기존의 함수 표현식
const multiply = function(x, y) {
	return x * y;
};

//화살표 함수
const multiply = (x, y) => x * y;
  • 화살표 함수는 함수 내부에서 실행될 문장이 한 줄일 경우, '{ }'와 'return'을 생략할 수 있다.
  • 화살표 함수는 일반적으로 콜백 함수나 배열의 'map()', 'filter()', 'reduce()' 등과 함께 사용된다.

< 리액트 함수 선언 >

 

일반적으로 함수형 컴포넌트를 선언할 때 함수 표현식을 사용하고, 메소드에서는 화살표 함수 표현식을 사용한다.

 

리액트에서 함수형 컴포넌트는 UI를 렌더링하는 함수로, 상태나 라이프사이클 메소드를 사용할 수 없다. 이러한 제한적인 환경에서 함수형 컴포넌트가 복잡한 기능을 수행하게 되면 코드가 복잡해지고 유지보수가 어려워질 수 있다. 따라서 함수형 컴포넌트에서는 복잡한 기능을 구현하는 대신, 간단하고 명료한 코드를 작성하는 것이 좋다.

 

함수 표현식은 함수 이름을 지정하여 선언할 수 있기 때문에 코드 가독성을 높일 수 있다. 함수형 컴포넌트에서는 이러한 함수 표현식을 사용하여 컴포넌트 내부에서 사용할 함수를 간단하게 선언할 수 있다.

 

반면, 메소드에서는 'this' 키워드를 사용해야 하는데, 'this'는 함수가 호출될 때 동적으로 결정된다. 'this'는 함수가 호출될 때 동적으로 결정되기 때문에 일반적인 함수 표현식으로 메소드를 작성하면, 'this'가 부모 컴포넌트를 가리키지 않는 경우가 있다. 이러한 문제를 해결하기 위해 화살표 함수를 사용한다.

 

 

함수식 표현

  • 함수의 이름 직접 지정할 수 있음
  • 'this' 키워드가 함수 호출 시 동적으로 바인딩

화살표 함수식 표현

  • 'this' 키워드가 함수를 정의할 때 정적으로 바인딩
  • 함수형 컴포넌트에서는 'useState' 훅을 사용하여 상태를 관리하므로, 함수형 컴포넌트 안에서 메소드가 필요한 경우 화살표 함수식 표현을 사용하여 간단하게 작성할 수 있음
728x90

'Front-end > React' 카테고리의 다른 글

Axios 사용법  (0) 2023.05.21
컴포넌트 export  (0) 2023.05.07
LocalStorage  (0) 2023.05.04
JSX  (0) 2023.04.19
리액트를 사용하는 이유  (0) 2023.04.17