코드네임 :
Udemy - 리액트 컴포넌트 스타일링 본문
흠 근데 한번 더 들어야할듯 ㅜㅜㅜ
일단!!! 스코핑이 무엇이느냐
스타일을 해당 컴포넌트 내부에서만 작동하게 만드는 기법
이를 통해, 컴포넌트끼리 스타일이 서로 간섭하지 않게 만드는 것
목표에 있길래,,,
if 문 (컴포넌트 내부에서)
if (isLoggedIn) {
return <p>환영합니다!</p>;
} else {
return <p>로그인 해주세요.</p>;
}
삼항연산자 (주로 JSX안에서)
<p>{isLoggedIn ? "환영합니다!" : "로그인 해주세요."}</p>
3) 논리 AND 연산자 (&&) – 조건이 true일 때만 렌더링
{isLoggedIn && <p>환영합니다!</p>}
흠 강의만 들어서 모르겟늠 좀 읽어봅시다
https://velog.io/@kdeun1/React-가이드-4편-Component-Styling
https://joseph0926.tistory.com/22#2.%20styled-component-11
[React] React 스타일링 하는 방법 3개 (인라인&일반CSS, styled-components, CSS 모듈)
리액트를 스타일링하는 방법으로는 3개가 존재한다. 인라인&일반CSS는 논외로 치고, 보통 styled-components 와 css module를 많이 비교하는데, 해외 사이트에서 비교한 글들을 몇개 가져와 보았다. https:/
joseph0926.tistory.com
조건부적으로 스타일 적용하기
태그 내부 스타일링 이런식으로
const emailNotValid = submitted && !enteredEmail.includes('@');
...
return (
<input
...
style = {{
backgroundColor: emailNotValid ? '#fed2d2' : '#d1d5db'
}}
/>
)
뭔 동적 값으로 추가하라고?
조건부 클래스를 적용하지 않으려면 반드시 undefined 사용하기
className={emailNotValid ? 'invalid' : undefined}
110번 강의 약간 뭔소리지?
className={`label ${emailNotValid ? 'invalid' : ''}`}
styled-components
JS 파일 안에서 CSS를 직접 작성할 수 있게 해주는 라이브러리
즉, CSS-in-JS 방식의 대표적인 도구
Header.module.css : 기본 빌드 프로세스에 대한 신호
이거 하면 스코핑 된다는데??
(다른 컴포넌트에서 이름 겹쳤을때 간섭 받지 않게?)
import logo from '../assets/logo.png';
import classes from './Header.module.css';
export default function Header() {
return (
<header>
<img src={logo} alt="A canvas" />
<h1>ReactArt</h1>
<p className={classes.paragraph}>A community of artists and art-lovers.</p>
</header>
);
}
styled components >> wrapper 생성하여 재상용 할수 있도록
별도로 아웃소싱
const ControlContainer = styled.div`
display: flex;
flex-diraction: colum;
gap:0.5rem;
margin-bottom:1.5rem;
`
...
<ControlContainer>
~~
</ControlConatiner>
로 적용
스타일 컴보넌트 를 스타일링 하구 싶다면?
(동적으로 변경시켜보기)
ㄴ 흠.... 이거 일단 what? 인가 싶긴한데 ㅋㅋㅋㅋㅋ
invalid = { }
color:${({invalid}) => invalid ? '#f87171' : '#6b7280'};
어떤 것이든 타깃 : &
(스타일 컴포넌트에 해당 규칙들이 보관되게 함)
TailWind Css
클래스를 조합해서 빠르게 UI를 만들 수 있는 CSS 프레임워크
<style>
.button {
background-color: blue;
color: white;
padding: 10px 20px;
border-radius: 5px;
}
</style>
<button class="button">버튼</button>
대신
미리 만들어진 유틸리티 클래스들을 조합해서 원하는 디자인 빨랑 구설하기
<button class="bg-blue-500 text-white px-4 py-2 rounded">버튼</button>
?????? 안되는데 읭
'👥Club > ☁️9oormthon univ☁️' 카테고리의 다른 글
React - HTTP 요청 보내기 (ex. 데이터베이스 연결) (0) | 2025.05.08 |
---|---|
Udemy - 양식 및 사용자 입력 작업 (폼) (0) | 2025.05.04 |
React 토?론주제 - 리스트 렌더링과 key (0) | 2025.04.30 |
Udemy - React 핵심 - 컴포넌트, JSX, 속성, 상태 등 (1) | 2025.04.27 |
Udemy - React : 자바스크립트 새로고침 (0) | 2025.04.20 |