styled-components 빠르게 하기(tsx 대응)

좋아하지만 능숙하게 사용할 수 없는 스타일드컴포니스가 힘들어 소개도 겸사겸사 적어봤다.

상용


CSS는
import styled from "styled-components";

const StyledComponent = styled.div`
  width: 300px;
  height: 100px;
  background-color: skyblue;
  padding: 12px;
  margin: 8px;
`;

export default function Box() {
  return (
    <StyledComponent>
      <p>styled-componentsで装飾</p>
    </StyledComponent>
  );
}
<StyledComponent>로 둘러싸인 범위 내에서만 적용됩니다.조카

props에 따라 스타일 바꾸기


import React, { useState } from "react";
import styled from "styled-components";

const StyledComponent = styled.div`
  width: 300px;
  height: 100px;
  padding: 12px;
  margin: 8px;
  background-color: ${({ isRed }) => (isRed ? "tomato" : "skyblue")};
  /* これでもOK */
  /* background-color: ${(props) => (props.isRed ? "tomato" : "skyblue")}; */
`;

export default function ChangeBox() {
  const [isRed, setIsRed] = useState(false);
  return (
    <StyledComponent isRed={isRed}>
      <p>styled-componentsで可変に装飾</p>
      <button onClick={() => setIsRed(!isRed)}>色を変化</button>
    </StyledComponent>
  );
}
<StyledComponent>props, CSS에 사용되는 조건문 등을 수신할 수 있습니다.이쪽.

유형(Type Script 시)


프롬프트를 받으면 정형화법이 필요해요.(곤란하다)
const StyledComponent = styled.div<{isRed:boolean}>`
`
모델이 styled.div 다음에 있으니 주의하세요!

Code Sandbox


이번에 몇 마디를 썼으니 언젠가는 완전히 공략된 글을 쓸 날이 있을 것이다.

좋은 웹페이지 즐겨찾기