유쨈미 2024. 7. 29. 18:14

1. JavaScript Spread Operator

Spread Operator(...)는 ES6에서 도입된 문법으로, 배열이나 객체의 요소를 개별적으로 확장하는 데 사용된다.
React에서 이 연산자는 props 전달, 상태 업데이트, 배열 조작 등에 자주 사용된다.

 

💡 주요 용도

  1. 배열 요소 확장
  2. 객체 속성 복사
  3. 함수 인자 전달
사용 케이스 설명
배열 복사 새 배열 생성 시 기존 배열 요소 포함
객체 병합 여러 객체의 속성을 하나로 결합
props 전달 컴포넌트에 여러 props를 간편하게 전달

 

💻 예시 코드

// 배열 사용 예
const numbers = [1, 2, 3];
const newNumbers = [...numbers, 4, 5]; // [1, 2, 3, 4, 5]

// 객체 사용 예
const person = { name: 'John', age: 30 };
const updatedPerson = { ...person, age: 31 };

// React 컴포넌트에서의 사용 예
function ParentComponent() {
	const additionalProps = { color: 'red', size: 'large' };
    return <ChildComponent {...additionalProps} />;
}
 

자바스크립트 ES6 - 스프레드 연산자(spread operator) 이해

자바스크립트 ES6에 새로 도입된 스프레드 연산자(spread operator) 이해하기

mycodings.fly.dev

- 참고 : mycodings.fly.dev

 

[JS] 📚 전개 연산자(Spread 문법) 정리

전개 구문(Spread Syntax) ​전개 구문(Spread Syntax)는 ECMAScript6(2015)에서 새로 추가된 문법으로, 간단하게 이 문법은 문법 이름 그대로 객체 혹은 배열들을 펼칠 수 있게 해 준다. // 펼칠 대상이 객체인

inpa.tistory.com

- 참고 : inpa

 

스프레드 연산자(spread operator)

JavaScript spread 연산자(...)를 사용하면 기존 배열이나 객체의 전체 또는 일부를 다른 배열이나 객체로 빠르게 복사할 수 있습니다.위 내용은 w3schools에서 spread 연산자를 설명하는 내용입니다.위의

velog.io

- 참고 : 순성이의 개발


2. render()

render() 메소드는 클래스 컴포넌트에서 UI를 정의하는 핵심 메소드이다.

이 메소드는 컴포넌트의 출력을 반환하며, 매번 state나 props가 변경될 때마다 호출된다.

 

💡 주요 특징

  1. JSX 반환
  2. 순수 함수여야 함 (side-effect 없어야 함)
  3. 조건부 렌더링 가능

 

📌 render() 메소드 내에서 할 수 있는 작업

작업 설명
JSX 반환 화면에 표시될 요소 정의
조건부 렌더링 조건에 따라 다른 JSX 반환
리스트 렌더링 배열 데이ㅓㅌ를 기반으로 요소 생성

 

💻 예시 코드

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

class ConditionalRendering extends React.Component {
  render() {
    const isLoggedIn = this.props.isLoggedIn;
    return (
      <div>
        {isLoggedIn ? (
          <h1>Welcome back!</h1>
        ) : (
          <h1>Please sign up.</h1>
        )}
      </div>
    );
  }
}
 

[React] render() 함수

render함수에 대한 궁금증은 오늘 컴포넌트에 관한 리액트 공식문서를 보다가 시작됐다. 함수형 컴포넌트와 클래스형 컴포넌트의 차이에 대해서 공부를 하다가 render함수에 대한 의문이 생겼다.

minjoo-space.tistory.com

- 참고 : minjoo-space


3. eslint-disable

eslint-disable는 ESLint 규칙을 특정 라인이나 파일에서 비활성화하는 데 사용되는 주석이다.

때로는 ESLint 규칙을 무시해야 할 정당한 이유가 있을 수 있으며, 이때 이 주석을 사용한다.

 

🚀 사용 방법

문법 설명
// eslint-disable-next-line 다음 라인의 모든 규칙 비활성화
// eslint-disable-line 현재 라인의 모든 규칙 비활성화
/* eslint-disable */ 파일의 나머지 부분에 대해 모든 규칙 비활성화

 

💻 예시 코드

// eslint-disable-next-line react/no-unescaped-entities
const element = <div>Don't use this too often!</div>;

const value = 'some value'; // eslint-disable-line no-unused-vars

/* eslint-disable react/prop-types */
function Component(props) {
  return <div>{props.value}</div>;
}
/* eslint-enable react/prop-types */
 

리액트 eslint-disable 적용법

리액트로 코드를 작성하다보면 오류가 나는것은 아니지만 밑의 사진처럼 warning 메세지가 뜨는 경우가 있다.변수를 선언해놓고 사용하지 않는다던지, 사진을 import 해와놓고 사용하지 않는다던

velog.io

- 참고 : brgndy


4. State

State는 React 컴포넌트의 데이터를 저장하고 관리하는 객체이다.

컴포넌트의 동적인 데이터를 다루며, state가 변경되면 컴포넌트가 다시 렌더링 된다.

 

💡 주요 특징

  1. 컴포넌트 내부에서 관리
  2. 변경 가능 (mutable)
  3. setState() 메소드로 업데이트

 

📌 State 관리 방법

방법 설명
클래스 컴포넌트 this.state와 this.setState() 사용
함수형 컴포넌트 useState Hook 사용

 

💻 예시 코드

// 클래스 컴포넌트에서의 state
class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }

  increment = () => {
    this.setState(prevState => ({ count: prevState.count + 1 }));
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.increment}>Increment</button>
      </div>
    );
  }
}

// 함수형 컴포넌트에서의 state (hooks)
function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}
 

컴포넌트 State – React

A JavaScript library for building user interfaces

ko.legacy.reactjs.org

- 참고 : ko.legacy.reactjs.org

 

[리액트] state를 사용하는 이유

리액트에서 state를 사용하는 이유가 뭘까?

velog.io

- 참고 : biyam.log