템플릿 리터럴

Henrique·2024년 10월 3일

JS 짧막 지식들

목록 보기
9/14

background-color: ${(props) => props.btncolor};

그렇다면 해당 부분의 화살표 함수 부분에 대해 설명해줄 수 있어??
달러사인의 의미랑 중괄호 그런 것들

해당 부분에서 사용된 화살표 함수와 달러($), 중괄호({})의 의미는 styled-components템플릿 리터럴(Template Literals) 문법을 함께 사용하는 방법을 나타냅니다. 아래에서 각각의 의미를 하나씩 설명해 드릴게요.

1. 화살표 함수 (props) => props.btncolor

  • 이 화살표 함수는 styled-components가 제공하는 컴포넌트 스타일링 안에서 사용되는 함수입니다.
  • props는 컴포넌트에 전달된 props 객체를 의미합니다.
  • (props) => props.btncolorprops 객체에서 btncolor라는 값을 추출하는 함수입니다.
    • propsStyledButton에 전달된 모든 속성을 담고 있습니다.
    • props.btncolorStyledButton에 전달된 btncolor라는 속성 값을 가져옵니다.
    • 예를 들어, btncolor="#68DDC1"가 전달되었으면, props.btncolor#68DDC1을 반환합니다.

2. ${}: 템플릿 리터럴

  • ${}JavaScript의 템플릿 리터럴(Template Literals) 문법에서 변수를 문자열 안에 삽입하기 위한 구문입니다.

  • 백틱(`)으로 감싼 문자열 내에서 ${}를 사용하면, JavaScript 표현식을 실행할 수 있습니다.

  • 여기서는 ${(props) => props.btncolor}를 통해 props.btncolor 값을 스타일 속성인 background-color에 동적으로 삽입합니다.

    예시:

    const name = 'John';
    const message = `Hello, ${name}`;  // 결과: "Hello, John"

    이와 같이 템플릿 리터럴을 사용하면 코드 안에서 동적으로 값을 삽입할 수 있습니다.

3. background-color: ${(props) => props.btncolor};

  • styled-components는 이 부분에서 템플릿 리터럴을 활용해 CSS 스타일을 동적으로 설정할 수 있습니다.
  • 백틱(`)으로 감싼 CSS 코드 내에서 ${}를 사용해 JavaScript 표현식을 실행할 수 있으며, 이 경우 props.btncolor 값을 background-color에 삽입하게 됩니다.
  • 이렇게 하면 StyledButton이 렌더링될 때 전달된 props에 따라 배경색이 동적으로 결정됩니다.

4. $의 의미

  • 여기서 달러($) 기호는 템플릿 리터럴 문법의 일부로, 템플릿 리터럴 내부에서 JavaScript 코드를 실행할 수 있게 하는 구문입니다.
  • ${} 안에 JavaScript 표현식을 넣어서 동적으로 값을 설정할 수 있습니다.

예시 전체 흐름:

const StyledButton = styled(Button)`
    background-color: ${(props) => props.btncolor};
    // 기타 스타일들...
`;
  1. StyledButton이 렌더링될 때, props 객체가 전달됩니다.
  2. props 객체에서 btncolor라는 속성 값을 추출합니다.
  3. 추출한 값을 템플릿 리터럴을 통해 background-color에 동적으로 삽입하여 버튼의 배경색을 설정합니다.

예를 들어, btncolor="#68DDC1"로 전달되면, 실제 렌더링된 CSS는 다음과 같습니다:

background-color: #68DDC1;

이렇게 하면 각 버튼마다 다른 배경색을 쉽게 적용할 수 있습니다.

0개의 댓글